کتابخانه ها یکی از مهم ترین ابزارهای نرم افزاری جهت پیشبرد پروژه ها به شمار می ورند. به کمک کتابخانه، از نوشتن مجدد کدها جلوگیری شده و می توان با سرعت بیشتری پروژه های خود را پیش ببریم. کتابخانه ها در حقیقت جهت افزایش سرعت توسعه و تمرکز برنامه نویس به اصل پروژه، طراحی شده است. در این آموزش قصد داریم تا به یکی از کتابخانه های کلیدی و کاربردی آردوینو بپردازیم. کتابخانه Tasker.h یک کتابخانه بی نظیر کلیدی و کاربردی است. این کتابخانه می توان به شکل یک سیستم عامل ساده، چندین برنامه را همزمان مدیریت و اجرا کند. در این آموزش به تحلیل و بررسی این کتابخانه خواهیم پرداخت. در ادامه بررسی کتابخانه Tasker.h با مرجع تخصصی کتابخانه آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
نصب کتابخانه Tasker.h
پس از بررسی سگمنت های مختلف، نوبت به نصب کتابخانه می رسد. جهت نصب، ابتدا در منوی Tools گزینه Manage Libraries را انتخاب کنید. سپس در کادر جست و جو، مطابق تصویر زیر عبارت Tasker.h را تایپ کنید. سپس کتابخانه مشخص شده در تصویر را نصب کنید.
الزامات و نکات فنی کتابخانه Tasker.h
پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی آن می رسد. در ابتدا توجه داشته باشید که کتابخانه Tasker.h بر روی بردهای آردوینو مبتنی بر میکروکنترلر AVR و بردهای ESP8266 قابلیت اجرا دارد. در کنار این، کتابخانه Tasker.h از تابع millis جهت زمانبندی استفاده می کند.
توابع کلیدی و کاربردی کتابخانه
پس از آشنایی با الزامات و نکات فنی، نوبت به تحلیل و بررسی توابع کلیدی و کاربردی می رسد. جدول زیر لیست توابع را همراه با تشریح عملکرد و ورودی ها، نمایش می دهد.
شرح | ورودی ها | تابع |
این تابع در حقیقت تابع سازنده کلاس کتابخانه است. ورودی این تابع از نوع بولین بوده و برای تعیین اولویت Task است. | ورودی از نوع بولین | Tasker(bool prioritized = false) |
این تابع در حقیقت مدت زمان Timeout را معرفی می کند. ورودی prio اختیاری است. | ورودی اول تابع جهت اجرا
ورودی دوم: مدت زمان جهت اجرای تابع برای هر چند ثانیه یکبار ورودی سوم: پارامتر ورودی برای تابع اجرا ورودی چهارم: تابع جهت تعیین اولویت Task |
bool setTimeout(TaskCallback1 func, unsigned long interval, int param, byte prio = TASKER_MAX_TASKS) |
این تابع در حقیقت مدت زمان interval را معرفی می کند. ورودی prio اختیاری است. | ورودی اول تابع جهت اجرا
ورودی دوم: مدت زمان جهت اجرای تابع برای هر چند ثانیه یکبار ورودی سوم: پارامتر ورودی برای تابع اجرا ورودی چهارم: تابع جهت تعیین اولویت Task |
bool setInterval(TaskCallback1 func, unsigned long interval, int param, byte prio = TASKER_MAX_TASKS) |
این تابع در حقیقت مدت تعداد دفعات تکرار Task را معرفی می کند. ورودی prio اختیاری است. | ورودی اول تابع جهت اجرا
ورودی دوم: مدت زمان جهت اجرای تابع برای هر چند ثانیه یکبار ورودی سوم: پارامتر ورودی برای تابع اجرا ورودی چهارم: تابع جهت تعیین اولویت Task |
bool setRepeated(TaskCallback1 func, unsigned long interval, unsigned int repeat, int param, byte prio = TASKER_MAX_TASKS); |
این تابع اجرای Task را کنسل می کند. | ورودی اول تابع جهت اجرا
ورودی دوم : پارامتر ورودی |
bool cancel(TaskCallback1 func, int param) |
این تابع سیستم عامل را اجرا می کند. | بدون ورودی | loop |
اجرای یک نمونه برنامه
پس از بررسی توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه با کتابخانه Tasker.h می رسد. در برنامه زیر یک Task ساده تعریف شده و سپس اجرا می گردد.
#include "Tasker.h" //اضافه کردن کتابخانه Tasker tasker; //ایجاد یک شی از کلاس کتابخانه void task1() //تابع Task شماره ۱ { Serial.print(millis()); Serial.println(F(": task1 called")); } void setup() { Serial.begin(115200); Serial.println("Tasker: Demo of setInterval()"); // اجرای تابع task1 برای مدت هر سه ثانیه یکبار tasker.setInterval(task1, 3000); } void loop() { tasker.loop(); //اجرای Task }
لوازم مورد نیاز
لینک خرید انواع برد آردوینو، کلیک کنید
لینک خرید انواع برد ESP، کلیک کنید
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه Tasker پرداختیم. این کتابخانه می تواند به سادگی به شکل یک سیستم عامل ساده عمل کرده و چندین Task را به طور تقریبا همزمان اجرا کند. در این آموزش ابتدا به نصب کتابخانه پرداختیم. سپس در ادامه، الزامات و نکات فنی کتابخانه را مرور کردیم. پس از این توابع کلیدی و کاربردی و در نهایت با یک مثال، بحث را پایان بردیم.