تحلیل کتابخانه

تحلیل و بررسی کتابخانه DateConvLight

DateConvLight-arduino-library-digispark
نوشته شده توسط معین صابری

تقویم و زمانبندی یکی از مهم ترین پروسه ها در برنامه نویسی پیشرفته به شمار می رود. در پروژه های سطح بالا و کاربردی، زمانبندی بسیار هم است. یکی از تراشه های بسیار کلیدی و کاربردی در زمینه زمان سنجی، DS1307 است. این تراشه می تواند به سادگی هرچه تمام تر، تاریخ را به صورت روز، ماه، سال در اختیار کاربر قرار دهد. اما این تراشه تاریخ را به صورت میلادی به در خروجی خود قرار می دهد. در بسیاری از موارد نیاز است تا تاریخ را به صورت میلادی تعیین شود. برای این مورد، یک کتابخانه سبک طراحی شده و توسعه یافته است. در این آموزش به تحلیل و بررسی کتابخانه DateConvLight می پردازیم. در ادامه بررسی کتابخانه DateConvLight با مرجع تخصصی کتابخانه آردوینو به زبان فارسیدیجی اسپارک همراه باشید.

 


نصب کتابخانه DateConvLight


پس از بررسی سگمنت های مختلف، نوبت به نصب کتابخانه می رسد. جهت نصب، باید به صورت دستی عمل کنیم. به همین منظور، ابتدا روی این لینک کلیک کرده و وارد صفحه کتابخانه شوید. در این صفحه مطابق تصویر زیر، کتابخانه را دانلود کنید.

مراحل نصب کتابخانه DateConvLight در آردوینو - دیجی اسپارک

 

در ادامه، می بایست کتابخانه را از طریق نرم افزار آردوینو، به سیستم اضافه کنید. به این منظور گزینه sketch، سپس include library و در نهایت add zip file را انتخاب کرده و کتابخانه را نصب کنید.

 


الزامات و نکات فنی کتابخانه DateConvLight


همانطور که پیشتر گفته شد، در این آموزش قصد داریم تا به تحلیل کتابخانه تبدیل تاریخ بپردازیم. کتابخانه DateConvLight می تواند به سادگی تاریخ میلادی را به شمسی تبدیل کند. این کتابخانه می تواند روی کلیه پلتفرم های آردوینو اجرا شود. به عبارت دیگر، کتابخانه DateConvLight مستقل از پلتفرم بوده و می تواند روی کلیه بردهای مورد پشتیبانی آردوینو اجرا شود.

 


توابع کلیدی و کاربردی کتابخانه


پس از بررسی الزامات فنی، نوبت به توابع کلیدی و کاربردی می رسد. در ابتدا، از آنجاییکه این کتابخانه به صورت کلاس تعریف شده، شی زیر سال را نمایش می دهد.

global_year

در ادامه، به کمک شی زیر می توانیم ماه را به صورت شمسی، دریافت کنیم.

global_month

در نهایت جهت به دست آوردن روز، از شی زیر استفاده می کنیم.

global_day

توجه: این کتابخانه سال کبیسه را می تواند محاسبه کند.

 


اجرای یک نمونه برنامه


پس از بررسی توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه با کتابخانه DateConvLight می رسد. در این برنامه تاریخ میلادی به شمسی تبدیل شده و در سریال مانیتور نمایش داده می شود. جهت دریافت برنامه نمونه روی این لینک کلیک کرده و سورس آن را دانلود کنید.

#include "DateConvL.h"  //اضافه کردن کتابخانه به برنامه

uint16_t current_year, current_month, current_day;   //ایجاد متغیر برای دریافت زمان فعلی میلادی
DateConvL dateC;  //ایجاد شی از کلاس کتابخانه

void setup() {
  Serial.begin(9600);
  SetCurrentDate();  //دریافت تاریخ فعلی میلادی
  dateC.ToShamsi(current_year,current_month,current_day); // converts global values of date and stores them to dateC
  Serial.print(dateC.global_year, DEC);   //سال
  Serial.print('/');
  Serial.print(dateC.global_month, DEC);  //ماه
  Serial.print('/');
  Serial.print(dateC.global_day, DEC);  //روز
  Serial.println();
}

void loop() {}


/*
 * this function get current time and set date integers declared above
 * IT IS NOT A PART OF LIBRARY but used to display current shamsi date
 * come from : https://gist.github.com/djohnson001/6df673a8d7f8ac04246a
 */
String SetCurrentDate()
{
  char const *date = __DATE__;   //دریافت زمان فعلی از سیستم رایانه
  char s_month[5];  //متغیر برای ماه
  int _month, _day, _year;  //متغیر های ماه روز سال
  static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec";  //ارایه جهت تعیین نام ماه
  sscanf(date, "%s %d %d", s_month, &current_day, &current_year);  //تبدیل  ماه روز سال
  current_month = ((strstr(month_names, s_month)-month_names)/3) + 1;  //محاسبه ماه فعلی
}

 


لوازم مورد نیاز


لینک خرید ماژول ساعت DS1307، کلیک کنید

لینک خرید انواع برد آردوینو، کلیک کنید

 


جمع بندی


در این آموزش به تحلیل و بررسی کتابخانه بسیار مهم و کلیدی DateConvLight پرداختیم. این کتابخانه بسیار سبک بوده و حجم زیادی از حافظه را اشغال نمی کند. این کتابخانه می تواند به سادگی تاریخ را در فرمت میلادی به شمسی تبدیل نماید. در این آموزش به نصب کتابخانه و الزامات فنی آن پرداختیم. در ادامه توابع کلیدی و کاربردی مورد بررسی قرار گرفت. در نهایت با اجرای یک نمونه برنامه، نحوه استفاده از توابع را در برنامه مشاهده کردیم.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه