قبل از شیلد های نرم افزاری من یک کلاس نوشتم که کد برنامه آردینو خودم رو به حداقل برسونم و شیلد های نرم افزاری بتونن از داخل کد خودشون به توابع اصلی بدنه برنامه (setup و loop) دسترسی پیدا کنند.
در این کتابخانه دو کلاس تعریف شده و در یک فایل با نام "softShield.h" قرار دارند در ادامه به توضیح این کلاس ها می پردازیم
کلاس softModule :
این کلاس چیزی نیست جز یک صف حلقوی که تمامی شیلد ها در این صف قرار میگیرند. این کار بدین منظور انجام می شود که توابع setup و update شیلدها در یک حلقه تکرار توسط توابع این کلاس فراخوانی شوند.
توابع setup مربوط به شیلد ها توسط تابع setup این کلاس و توابع loop شیلد ها توسط تابع loop این کلاس فراخوانی می شوند.
کلاس softShield :
تمامی شیلد های نرم افزاری که توسط من نوشته و یا ویرایش میشن از این کلاس ارث می برن.
ارث بری از این کلاس بخاطر اینه که شیلد ها به صورت خودکار به صف softModule افزوده بشن.
این کتابخانه و ارث بری از softShield باعث میشه همه شیلد های نرم افزاری برای خودشون توابع setup و loop رو داشته باشن تا از کد نویسی تکراری جلوگیری بشه.
حال ما میتونیم به این طریق توابع setup و update همه شیلد هایی که در برنامه ازشون استفاده کردیم رو فرخوانی کنیم:
کد PHP:
#include <softShield.h>
void setup(){
softModule::setup();
}
void loop(){
softModule::update();
}
کد درون setup باعث فراخوانی تابع setup همه شیلد های نرم افزاری میشه و کد درون loop باعث فراخوانی تابع update همه شیلد های نرم افزاری میشه.
بهمراه این کتابخانه نمونه کدی داخل پوشه baseShield وجود دارد که ساختار کتابخانه هایی که از softShield ارث می برند را نشان میدهد.
توجه داشته باشید که داشتن این کتابخانه و افزودن این دو خط کد در توابع setup و loop از الزامات استفاده از کتابخانه هایی هست که من در این تاپیک ارسال میکنم و اگه کتابخانه ای بجز softSheild به کتابخانه ی دیگه ای نیاز داشته باشه در پست مربوطه به اون اشاره خواهد شد.
نام شیلد |
softSheild |
سایر شیلد های مورد نیاز این شیلد |
ندارد |