قمت بعمل برنامج بسيط لعرض معلومات الجوال دلك عن طريق اوامر AT المستنبطة من hyper terminal
و عند تشغيل البرنامج والاتصال بالهاتف عن طريق serial port تظهر معلومات الجهاز ولكن بشكل غير لائق
من فضلكم اخوانى اريد مساعدة في توظيف هده الاكواد كي تظهر المعلومات فى textbox بشكل صحيح
مع العلم انه لابد ان يكون جهاز الهاتف المستعمل يدعم اوامر AT وكابل USB للاتصال بالكمبيوتر
مرحبا بكم وصح رمضانكم
اخي الوادي انا لا اريد استعمال البرنامج فى ارسال الرسائل و لكن لدي منه اغراض اخري
فمثلا اعطيك مثال عن البرنامج عند ربط الكمبيوتر بالهاتف عن طريق الكابل وتحديد البورت كوم المناسب
للهاتف والضغط على connect فى البرنامج فان البرنامج البرنامج يتعرف على الهاتف و اظهار معلوماته
فى textbox وكل textbox له معلومة ولكن لا اريد اظهار المعلومات بهدا الشكل فمثلا فى خانة
Device Modele تظهر المعلومة فى textbox المناسب له بهدا الشكل
AT+CGMM
C2-03
OK
وانا اريد ان تظهر المعلومة بتحديد نوع المودال مباشرة و هو C2-03 فقط فى textbox
وكدلك فى خانة netwok المعلومة تظهر هكدا
AT+COPS?
+COPS: 0,2,"60301",0
OK
و انا اريدها ان تكون بهدا الشكل بتحديد الشبكة مباشرة وهي 60301
اخي الوادي و الاخوة االكرام ان كان لكم طريقة فى ترتيب هدة المعلومات بما اريدها فانا فى
انتظار ردودكم واكون لكم من الشاكرين
يا رياض،
انا لا استطيع تجربة البرنامج لأن هاتفي ليس فيه هذه الطريقة.
لكن لو تضع كل الردود للأوامر ممكن نعمل لها استخلاص للجزء الذي تريد من البيانات مثل:
PHP كود :
TextBox4.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, "(?<="").+?(?="")").Value
هنا اقتطعنا الجزء الذي بين علامتي " " من المعلومات العائدة من الأمر AT+COPS? الخاص ب network حسب ما فهمت من الجزء
AT+COPS?
+COPS: 0,2,"60301",0
OK
تفضل اخى الوادي جميع الردود للاوامر
device model
امر الرد هو
AT+CGMM
C2-03
OK
هنا اريد اظهار فى التاكست بوكس C2-03 فقط
manufacturer
امر الرد هو
AT+CGMI
Nokia
OK
اريد اظهار Nokia فقط فى التاكست بوكس
EMEI
امر الرد
AT+CGSN
353697051505622
OK
اظهار رقم 353697051505622 فقط
BATERY LEVEL
امر الرد
AT+CBC
+CBC: 0,56
OK
اريد اظهار 0,56 فقط
و بالنسبة للشبكة network فالكود الدى كتبته صالح %100
يا رياض،
هذا تعديل
PHP كود :
'---------------------------------------------------'
' Read response data '
'---------------------------------------------------'
' Device model -----------------'
' Command: AT+CGMM
'
SerialPort1.Write("AT+CGMM" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox1.Text = SerialPort1.ReadExisting.Trim
' Manufacturer -----------------'
' Command: AT+CGMI
'
SerialPort1.Write("AT+CGMI" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox2.Text = SerialPort1.ReadExisting.Trim
' EMEI -------------------------'
' Command: AT+CGSN
'
SerialPort1.Write("AT+CGSN" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox3.Text = SerialPort1.ReadExisting.Trim
' Network ----------------------'
' Command: AT+COPS?
'
SerialPort1.Write("AT+COPS?" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox4.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, "(?<="").+?(?="")").Value.Trim
' BATERY LEVEL -----------------'
' Command: AT+CBC
'
SerialPort1.Write("AT+CBC" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox5.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1ReadExisting, "(?<=\:).+").Value.Trim
'---------------------------------------------------'
شكرا لك اخي الوادي على الكود ولكن بقيت مشكلة صغيرة فقط وهي فى حانة device model تظهر بهدا الشكل
C2-03OK وكدلك فى manufacturer و emei اي بمعنى اريد عدم اظهار ok
و اما فى network و batery level فكل شيء تمام فان كان باستطاعتك حدف ok الموجودة وراء C2-03
فددلك افضل و ان لم تستطيع فشكرا لك مرة اخرى على مجهوداتك القيمة
يا رياض،
اسف لم انتبه للرد الاخير جرب الان
PHP كود :
'---------------------------------------------------'
' Read response data '
'---------------------------------------------------'
' Device model -----------------'
' Command: AT+CGMM
'
SerialPort1.Write("AT+CGMM" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox1.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, ".+").Value.Trim
' Manufacturer -----------------'
' Command: AT+CGMI
'
SerialPort1.Write("AT+CGMI" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox2.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, ".+").Value.Trim
' EMEI -------------------------'
' Command: AT+CGSN
'
SerialPort1.Write("AT+CGSN" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox3.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, ".+").Value.Trim
' Network ----------------------'
' Command: AT+COPS?
'
SerialPort1.Write("AT+COPS?" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox4.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, "(?<="").+?(?="")").Value.Trim
' BATERY LEVEL -----------------'
' Command: AT+CBC
'
SerialPort1.Write("AT+CBC" & vbCr)
System.Threading.Thread.Sleep(1000)
TextBox5.Text = System.Text.RegularExpressions.Regex.Match(SerialPort1.ReadExisting, "(?<=\:).+").Value.Trim
'---------------------------------------------------'
يا طالب،
ابشر، انا كنت جاي له.