![]() |
|
أوامر at بشكل مبسط و موسع --منقول-- - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الاقسام الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=74) +--- قسم : قسم التحكم بالأجهزة الخارجية عن طريق برمجة الكومبيوتر (http://vb4arb.com/vb/forumdisplay.php?fid=152) +--- الموضوع : أوامر at بشكل مبسط و موسع --منقول-- (/showthread.php?tid=5088) الصفحات:
1
2
|
أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 منقول من المنتدى القديم الكاتب نور نبهان المزمجر سابقا بسم الله الرحمن الرحيم والصلاة والسلام على سيدنا محمد واله وصحبه أجمعين السلام عليكم ورحمة الله وبركاته مقدمة : سنتكلم إن شاء الله عن أوامر AT بشكل مبسط و موسع قليلاً بالنسبة للهاتف المحمول أوامر AT commands: هي مجموعة من الأوامر التي يستخدمها الكمبيوتر للتحكم والتواصل مع أجهزة الاتصالات الخارجية مثل المودم أو الجوال أو GSM modem أو GPRS Modem الآن وصل الكمبيوتر مع جهاز الموبايل أو المودم المعتبر : طبعا الهاتف المحمول لابد أن يكون من الأنواع الجديدة أو على الأقل يحوي تقنية متقدمة وليس قديم وأغلب الأنواع الحديثة تدعم أوامر AT Commands وهذا ما يهمنا عموما في سياق الموضوع سنتعرف على كيفية معرفة صلاحية الهاتف لموضوعنا يتم توصيل الموبايل مع الكمبيوتر بواسطة USB Cable أو أحد الأشكال المعروفة في هذا العصر [ATTACH=CONFIG]617[/ATTACH] تعريف الموبايل Driver: طبعا عند توصيل الجهاز مع الحاسوب عبر الوصلة فأن الحاسوب سيتعرف عليه كجهاز جديد بالتالي لا بد من تعريف هذا الجهاز عبر ملفات التعريف Driver الخاصة به Nokia Connectivity Cable Driver في بحثنا هذا سنعتمد على هاتف من طراز نوكيا Nokia طبعا مع الجهاز يأتي قرص CD مضغوط يحوي التعريف وبرنامج الاتصال أو بطرق أخرى يمكنك البحث في الانترنت عن التعريف وبالنسبة للنوكيا أرح نفسك ونصب برنامج آل بي سي سيوت Nokia PC Suite بعد تنصيب Nokia PC Suite و الانتهاء من التنصيب قم بوصل الجهاز وسيتعرف عليه الجهاز وسيتم تثبيت الملفات اللازمة للوصلة الآن الوصلة معرفة والجهاز متصل بعد انتهاء التعريف : نذهب إلى خصائص النظام من لوحة التحكم Device Manager نجد تحت بند Modems المودم نجد انه تم تعريف مودم خاص بجهازك المحمول الذي تم توصيله [ATTACH=CONFIG]618[/ATTACH] ومن صفحة خصائص المودم ضمن تبويب Modemنعرف رقم المنفذ المخصص لهذا المودم وهو كما في الصورة المنفذCom4 [ATTACH=CONFIG]619[/ATTACH] الأمر مشابه للمودم العادي المتصل عبر Serial Port والذي نستخدمه للاتصال بالهاتف أو الانترنيت الآن الأمور جيدة لدينا هاتف متصل مع الجهاز ومعتبر كمودم ونعرف المنفذ الخاص به يبقى علينا الآن إجراء التجارب لكيفية التعامل مع هذا المودم الاتصال بالمودم وإرسال الأوامر له: طبعا البرنامج المعتاد هو Hyper Terminal الشهيرة الموجودة مع Windows أهم خطوة هي أن نتأكد من أن الجهاز يدعم أوامر AT سنبدأ الآن إن شاء الله بشرح أساسي للتعامل مع Hyper Terminal ثم سننتقل للغة البرمجة حتى نتعرف على كيفية التعامل مع هذه الأوامر من خلال برنامجنا بالنسبة للـــ Hyper Terminal نفتح برنامج Hyper Terminal ضمن مساره الافتراضي في الجهاز XP [ATTACH=CONFIG]620[/ATTACH] نحدد اسم الاتصالوهو اسم اختياري حسب رغبتك ثم نضغط OK [ATTACH=CONFIG]621[/ATTACH] نحدد منفذ الاتصال (Com4)أو المنفذ المخصص للهاتف المحمول الموصول مع الجهاز و الذي تعرفنا عليه سابقا من خلال خصائص المودم طبعا ستجد المنفذ ضمن القائمة [ATTACH=CONFIG]622[/ATTACH] يتبع أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 تظهر نافذة الخصائص للمودم HardWare =Configure اضغط OK [ATTACH=CONFIG]623[/ATTACH] تم إعداد البرنامج فتظهر لنا الشاشة التالية لنكتب فيها الأوامر والبيانات التي نريد إرسالها إلى الموبايل وتظهر فيها أيضا رد الموبايل على تلك الأوامر [ATTACH=CONFIG]624[/ATTACH] الآن حاول أن تكتب في صفحة البرنامج البيضاء أي حرف إذا لم يظهر مع شيء على الشاشة فقم بعميلة الضبط كما في الصورة التالية [ATTACH=CONFIG]625[/ATTACH] انتقل للتبويب الثاني و اضغط على ASCII Setup [ATTACH=CONFIG]626[/ATTACH] ضع علامة الاختيار على الخيار الثاني Echo Typed Characters Locally [ATTACH=CONFIG]627[/ATTACH] بعد ذلك اكتب AT ثم اضغط Enter إذا ظهر لك OK كما في الصورة التالية فإن الجوال يدعم أوامر AT [ATTACH=CONFIG]624[/ATTACH] الآن و الحمد لله تم التأكد من دعم الهاتف المحمول لأوامر AT يتبع أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 تطبيق سريع : طبعا أوامر AT عديدة ومتنوعة من اتصال و إرسال و استقبل و معرفة خصائص وبحث .... الخ .... وسنختار منها الاستخدامات الشائعة بالنسبة للـــ Hyper Terminal سنقوم الآن بتجربة إجراء اتصال صوتي عبر رقم هاتف محدد وكذلك إرسال رسالة نصية لهذا الهاتف أولاً : إجراء اتصال برقم هاتف : داخل نافذة Hyper Terminal البيضاء نكتب AT ثم نضغط زر الإدخال ENTER فيكون الرد هو OK طبعا تم شرح هذه النقطة من سابق الآن نكتب الأمر التالي وهو للاتصال ATD أو ATDT وهو على الشكل التالي : ATDT <+963966993175;> ثم نضغط زر الإدخال ENTER ماذا ترى ؟ الآن انظر إلى شاشة جوالك سترى جهازك يقوم بعملية الاتصال تستطيع تغير الرقم أو كتابته بأي طريقة فربما يكون داخلي أو خارجي المهم أنك تكتب الرقم سواء داخلي أو دولي ADTA 0966993175 ملحوظة ربما تثير فضولك الفاصلة المنقوطة الموجودة في نهاية الرقم فما الغاية منها هذه الفاصلة المنقوطة تشير إلى المودم على أن المكالمة هي مكالمة صوتية وليست من نوع البيانات أو الفاكس وبدونها سيتم الاتصال بمكالمة بيانات والرقم هو رقم هاتفي بالتالي لن يتم الاتصال فالفاصلة ضرورية لهذه العملية . أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 ثانياً : إرسال رسالة نصية : سنبدأ ببعض المعلومات النظرية حول الرسائل وهي مقتبسة من مشاركة الأخ م. عبد الملك هنا الرسائل النصية القصيرة (ٍSMS) تنقسم في تركيبها إلى قسمين 1- أسلوب النص( Text Mod) 2- أسلوب وحدات البيانات (PDU Mode) أسلوب وحدات البيانات (PDU mode) 1-تكون الرسالة على شكل سلسلة من البيانات على بالهكسا (hexadecimal) مثال: A782340B11DCEFFF 2-أصعب لأن المبرمج يحتاج إلى معرفة تقسيم ال Frame وماذا تعنى كل خانة بالهكسا مثال: A789660B11DCEFFF A78 : رمز الرسائل القصيرة 9660 : رقم الفتح B11DC : الرقم المرسل إليه CEFFF : نص الرسالة 3-أكثر مرونة أسلوب النص text mod 1-تكون الرسالة بال ASCII بحروف مقروءة للمستخدم مثال:How Are You 2-الأبسط في الاستخدام ولا يحتاج المبرمج سوى كتابة الرسالة والرقم المرسل إليه بشكل صحيح 3-أقل مرونة وأقل إمكانية لاستخدامها في تطبيقات مختلفة المثال في فقرة 2 ليس دقيق وإنما للتوضيح فقط • أسلوب النص أقل مرونة لأن التركيبة ثابتة واللغة ثابتة مثلاُ لو أردت أن ترسل رسالة بالعربي ، لن تتمكن من ذلك إذا كنت تستخدم أسلوب النص • أسلوب وحدة البيانات تحتاج إلى برنامج للتحويل من هكسا إلى لغة مقروءة عند المستقبل وعلى هذا البرنامج أن يقوم بتحليل سلسلة الهكسا وتفكيكها اعتمادا على معرفته بتركيب إل Frame المستخدم في أسلوب وحدة البيانات أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 الآن ننتقل لعملية الإرسال : طبعا لن ننسى الهاتف يدعم AT أليس كذلك؟ الآن نكتب الأمر التالي هو AT+CMGF=? ثم نضغط زر الإدخال ENTER وهو يستعلم عن نمط الرسائل التي يدعمها الموبايل وهناك نمطين SMS PDU و SMS Text كما ذكر أنفاً ورد الموبايل على هذا الأمر هو الرقم 0 و 1 وصفر تعنى النمط SMS PDU و واحد تعنى النمط SMS Text أي إن الموبايل يدعم النمطين ولو ظهر أحدهما فالموبايل يدعم نوع دون أخر [ATTACH=CONFIG]628[/ATTACH] ونحن سنستخدم النمط SMS Text لأنه الأسهل حيث يتم إرسال الرسالة إلى الموبايل على هيئة نص عادى بدون أية معالجة لذلك سنكتب الأمر التالي لنجعل النمط هو SMS Text الأمر هو AT+CMGF=1 ثم Enter ورد الموبايل عليه هو OK [ATTACH=CONFIG]629[/ATTACH] وزيادة في التأكيد سنستعلم عن النمط المستخدم لنتأكد انه SMS Text ولذلك سنكتب الأمر AT+CMGF? ليكون الرد 1 مما يعنى أن النمط المستخدم هو SMS Text لاحظ أن الاختلاف بين هذا الأمر وبين ما كتبناه سابقا هو علامة تساوى [ATTACH=CONFIG]630[/ATTACH] الأمر التالي هو AT+CMGS وهو إرسال SMS وصيغته التالية "AT+CMGS="0966993175 حيث إن الرقم بين العلامتين هو رقم الموبايل الذي تريد أن ترسل له الرسالة ورد الموبايل على هذا الأمر هو العلامة < حيث ينتظر منك الموبايل أن تكتب نص الرسالة [ATTACH=CONFIG]631[/ATTACH] نكتب نص الرسالة ولكن لن ننهى النص بـ Enter ولكن بالضغط على CTRL+Z ليتم إرسال الرسالة [ATTACH=CONFIG]632[/ATTACH] أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 ملحوظة : نعلم أن لكل حرف كود معين يسمى AScii Code (الاسكى كود) وهناك حروف تكتب مثل الحروف العادية وهناك حروف لا تكتب ولكن لها معنى ونلاحظ انه عند نهاية كل أمر كنا نضغط ENTER وهذا يعنى إرسال حرف الاسكى كود له هو 13 بالنظام العشري وD بالنظام السداسي عشر وهذا الحرف يسمى Carriage Return واختصارا CR وأيضا نلاحظ انه عن إنهاء الرسالة ضغطنا CRTL+Z وهذا يعنى أننا أرسلنا الحرف الذي كوده 26 بالنظام العشري و A1 بالنظام السداسي عشر واسمه Substitute أو اختصاراً Sub بعد الانتهاء من هذين القسمين أنوه إلى انه يمكن إجراء جميع أوامر AT بالها يبر وربما بفعالية أكبر من بعض لغات البرمجة لكن كوننا في مجتمع برمجي فما يهمنا أن تكون هذه العمليات تنفذ من خلال برنامجنا . صراحة أنا الموضوع كله بحثت عنه لأجل إجراء مكالمة ليست صوتية أو بيانات أو فاكس وإنما مكالمة خدمة مثل الاستعلام عن الرصيد و التي تحوي في بدايتها رمز النجمة * وفي نهايتها رمز المربع # ولم تفلح معي إلى الآن مثال *150*5555# وللامانة ما سبق قمت بتجميعه من هنا وهناك مع اضافة مايلزم وتصويب الخطا بعد التجربة وكل ما سبق هو مقدمة للرد اللاحق وهو الموضوع الاساسي أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 نعود لموضوعنا : بعد أن تركزت في أذهاننا أساسيات هذه العملية و أوامر AT و الفائدة منها سنقوم بكتابة بعض الأكواد التي نتعامل مع AT من خلال برنامجنا اللغة المستخدمة VB6 ربما يود البعض أن تكون الدوت نت لكن بصراحة لم أتمكن من تحويرها لذلك سأعتمد على الفي بي 6 وربما يساعد الإخوة بأكواد الدوت نت بسم الله نبدأ : سنستخدم الأداة Microsoft Comm Control يعني MSComm ببساطة افتح مشروع جديد أضف الأداة (Microsoft Comm control 6.0) كما تراها في الصورة التالية : اضغط CTRL+T للوصول لنافذة الComponents وابحث عن الأداة وأضفها [ATTACH=CONFIG]633[/ATTACH] بعد أن تضيف الأداة جهز النموذج على هذا الشكل بالأدوات التالية : أداة Microsoft Comm control 6.0 عدد 1 تحت مسمى MSComm1 أداة Text عدد 3 تحت مسمى TextCom و TextNum و TextMsg أداة Command عدد 2 تحت مسمى CommandMsg و CommandCall هذا هو تصميم الفورم : [ATTACH=CONFIG]634[/ATTACH] الآن الصق الكود التالي كاملا : وهو كود الرسالة للزر الأول و الاتصال للزر الثاني : كود : 'AT >> VB4ARABالآن شغل البرنامج و أملأ المدخلات المطلوبة : المنفذ و الرقم ونص الرسالة ثم جرب زر الاتصال وزر الإرسال . أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 الآن سوف نقوم بعملية تسهيل لبرنامجنا حتى لا نجبر المستخدم إلى الذهاب إلى خصائص المودم فسوف نقوم من خلال برنامجنا بالبحث عن المنافذ المتاحة و إضافتها إلى قائمة منسدلة وبذلك نسهل على المستخدم عملية الاختيار . نضيف موديولModule جديد ونسميه ListCommPorts ونضع فيه الكود التالي : كود : Option Explicitنعود الآن إلى النموذج form ونعدل قليلا في التصميم ليصبح على الشكل التالي : [ATTACH=CONFIG]635[/ATTACH] ماذا أضفنا : أداتين فقط الأولى زر أمر جديد Command اسمه AvailablComm الثانية قائمة منسدلة جديدة اسمها cboComm هذا التصميم الجديد سيتيح لنا معرف المنافذ المتاحة بالنقر على الزر ما هي المنافذ المتاحة الآن نضع الكود التالي:أسفل الكود في الفورم وهما حدث النقر للزر ليظهر المنافذ المتاحة وكذلك حدث النقر على المنفذ لينتقل الرقم إلى صندوق رقم المنفذ تلقائيا بالضغط عليه كود : Private Sub AvailablComm_Click()في كود فحص المنافذ ستجد الرقم 1 الى 25طبعا تستطيع إنقاص الرقم أو زيادته أنا اعتمدت فحص 25 منفذفقط.انتهينا الآن من برنامجنا الصغير الذي يقوم بعمليات الاتصال و إرسال الرسائل. أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 سنتجه الآن إلى أوامر AT أخرى ربما تكون ذات استخدام قليل لكنه من باب التوسع :لكن قبل الدخول في هذا القسم سنقوم بعمل برنامج صغير أخر بدلاً من الهايبر لتنفيذ أوامرنا عليه أولاً نستعرض بعض الأوامر لل AT وحاول أن تجربها على الهايبر كود : AT commands set for Nokia GSM and WCDMA productsولاحقا ان شاء الله سنتعلم كيف نستغني عن الهايبر كليا من خلال برنامجنا بعمل برنامج صغير يقوم باداء مهامه ومن ثم الى البداية مع الدوت نت الى ذالك الحين استودعكم بحفظ الله و رعايته أوامر at بشكل مبسط و موسع --منقول-- - oneyemenweb2 - 04-10-12 السلام عليكم المشاريع في المرفقات ولقد قمت بتجربتها منذ برهة وهي تعمل |