
مدتهاست برای ارتباط AVR با ماژولآهای GSM برای خودم یک کتابخانه درست کردم، الان تقریبا به جایی رسیده که میتونم عمومیش کنم. در پست اول فقط قصد معرفی و فراهم کردن امکان دانلود این کتابخونه رو دارم و در پستآهای بعدی مثالآهایی برای نحوه استفاده ارائه خواهم کرد.
کار بر روی این کتابخونه ادامه داره و هر بار که تغییرات در کدش اعمال میآکنم قابل دانلود مجدد هست. دوستانی که با سیستم git آشنا هستند میتونند راحت کتابخونهٔ خودشونو با نسخه اصلی بروز نگه دارن.
امکانات کلی این کتابخونه در زیر اومده.
==================== توابع کار با SMS ====================
* امکان تعریف توابع دلخواه برای ارسال و دریافت به/از پورت سریال
در هنگام راهآاندازی اولیه ماژول GSM توسط تابع gsm_init، امکان تعریف توابع دلخواه برای ارتباط با پورت سریال وجود داره. این ویژگی بدرد کسانی میخوره که مایل باشن توابع دلخواه خودشونرو برای ارتباط با پورت سریال استفاده کنن.
prototype تابع gsm_init بصورت زیر هست :
کد PHP:
void gsm_init( void(*sendByte_func)(unsigned char c), int(*getByte_func)(void) );
* امکان ارسال SMS و چک کردن Delivery Report
شما میتونید با توابعی که برای اینکار نوشته شده براحتی و در یک خط ساده SMS ارسال کنید و همچنین میتونید متوجه بشید که SMS دلیور شده یا نه. همینطور میآتونید تنظیم کنید که اگر SMS دلیور نشد تا چند بار مجددا برای ارسال اون تلاش کنه. همهٔ اینها فقط با یک خط کد قابل استفاده هست. اینکار توسط تابعی بنام gsm_send_sms انجام میشه.
prototype تابع gsm_send_sms بصورت زیر هست :
کد PHP:
int gsm_send_sms( char *number, char *text, int try_num );
* امکان بررسی کردن و خواندن SMS های جدید دریافتی
با استفاده از تابع gsm_check_new_sms میتونید SMS های جدیدی رو که دریافت شده بخونید، تعداد SMS های جدید هر چند تا که باشه بترتیب خونده میشه و در اختیار برنامه قرار داده میشه.
prototype تابع gsm_check_new_sms بصورت زیر هست :
کد PHP:
int gsm_check_new_sms( SMS *sms );
* امکان خواندن یک SMS از خانه حافظهٔ مشخص
تابع gsm_read_sms برای همین منظور بکار میره. ورودی تابع شماره مکان حافظه هست و خروجی اون هم محتویات SMS موجود در اون خونهٔ حافظه (در صورت وجود )
prototype تابع gsm_read_sms بصورت زیر هست :
کد PHP:
int gsm_read_sms( int index, SMS *sms );
* امکان گزارشآگیری از حجم حافظه موجود در سیمآکارت برای نگهداری SMS و همچنین میزان مصرف شدهٔ این حافظه به درصد:
تابع gsm_SIM_mem_used برای این منظور هست.
==================== توابع کار با RTC ====================
* امکان تنظیم ساعت و تاریخ در RTC داخلی ماژولتابع gsm_set_rtc برای اینکار نوشته شده است. ورودی این تالع یک رشته متنی بصورت YY/MM/DD,HH:MM:SS+00 است.
* امکان خواندن ساعت و تاریخ از RTC ماژول
تابع gsm_get_rtc_str برای اینکار نوشته شده است. خروجی این تابع یک رشته متنی حاوی ساعت و تاریخ به فرمتی است که در بالا اشاره شد.
==================== توابع دیگر ====================
* امکان ارسال فرامین USD به اپراتور (مثلا برای انجام کارهای شارژ و گزارش گیری اعتبار سیمآکارت)
تابع gsm_usd_command برای اینکار نوشته شده است. prototype این تابع بصورت زیر هست :
کد PHP:
int gsm_usd_command( char *cmd, char *response );
==================== دانلود ====================
سورس کتابخانه بر روی Github قرار داده شده است. برای دریافت جدیدترین نسخه از این لینک استفاده کنید. و اگر به git آشنایی دارید، باهاش بروز باشید.
git clone git://github.com/hamid-rostami/avr-gsm.git
لینک کتابخونه در Github برای دسترسی بروشهای دیگر :
https://github.com/hamid-rostami/avr-gsm
دیدگاه