الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل اتصال لاسلكي بين الحاسوب والجوال

رائج
بدأه أسيرة الزهور في 14 أبريل 2011 · 78 رد · 11,626 مشاهدة · في منتدى الاتصالات السلكية واللاسلكية و الصوت و الصورة
مشاركة: واتساب X فيسبوك تيليجرام
#26

البرنامج الاساسي و الواجهة ستكون على جهاز الحاسوب و ليس على الموبايل

الموبايل فقط يرسل رسالة sms - وكما اخبرتكي ايضا يمكن عمل واجهة لهذا الامر - لكن ايضا ممكن الاستغناء عن هذا

طبعا ف جميع الاحوال انتي برنامجكي يجب ان ينفذ في الخلفية على الحاسبة و ايضا يعمل مع بداية التشغيل، ايضا ممكن اضافة باسورد له.

-----------

قبل البدء - هل تأكدتي ان الجوال معكي يدعم عملية ال send بأستخدام ايعازات ال AT Command

و بخصوص اللغة -- مافي مشكلة اذا اشتغلنا سي شارب؟؟

لكي نبدء بكتابة الكود

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#27

نعم الجهاز يعمل ويقوم بالارسال

عبر الكابل والمنفذ com19

جربت عملية ارسال نص ونجح بارسال الرسالة ..

لا مانع لدي من استخدام c# ..

علما انه لم اعمل معها من قبل ..

فمع أي اصدار منها سنتعامل

وهل ينفع برنامج فيجوال استديو 2005

لأنه موجود عندي ..

دمت أخي بخير..

#28

فيجوال ستوديو 2005 سيكون مناسب للعمل ان شاء الله

جربي العمل قليلا مع السي شارب- كوني مشروع جديد من نوع windows application وحاولي اضافة بعض الكونترول و تصميم الواجهة

اظن الامر سيكون سهل اذا تعاملتي مسبقا مع اي لغة برمجية

بخصوص البرمجة

سنحتاج اولا نتعامل مع ال serial port لنقوم بفتح نفس رقم البورت المستخدم (لديكي com19) - وسي# توفر class للتعامل مع serial port بسهولة

ثم نكتب ايعاز ارسال الرسالة عن ال serial port (نفس ايعاز ال AT Command الذي استخدمتيه للارسال)

يعني تقريبا هكذا شيء

private SerialPort portConfig = new SerialPort();

// configure port 
portConfig.PortName = COM4 ;
.....
.....
//open the port
portConfig.Open();

// send AT command to dial a number
portConfig.WriteLine("ATD" + mobileNumber + ";");

هذه مقالات عن الموضوع

http://www.codeproject.com/KB/IP/Sending_SMS_using_Net.aspx

http://www.codeproject.com/KB/cs/SMS.aspx

طبعا ربما ترين ان الموضوع معقد -- لا الامر سهل ان شاء الله

يعني لن تحتاجي الى كل ما موجود بهذه المقالات

فقط حاولي ان تطلعي عليها -- وممكت تجربي تنفيذ التطبيق في المقالات

ايضا مبدئيا في ال msdn اقرئي عن ال SerialPort فهو اساس العمل

واذا في شيء ما واضح بخصوص السي# فلا تترددي في السؤال

تم تعديل هذه المشاركة بواسطة الاخير زمانه في 28 أبريل 2011 في 15:49

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#29

شكرا ..

وجاري تطبيق الأكواد ..

بالاطلاع على الروابط ..

وسأبلغك بالنتائج عما قريب بإذن الله ..

#31

نوافذ مشروع c#.doc

بقمت بفتح مشروع جديد بنفس الطريقة التي تفضلت بذكرها ..

ولكن في البرمجة ..

لم ينفذ معي الا أمر الخروج !!!

بالنسبة للكود الموجود في الموقع اين اضعه بالضبط ..

وكتبت كود لاظهار الرسالة ..

لكن يظهر انه فيه خطأ..

String X = textBox1.Text;

String y = textBox2.Text;

MessageBox.Show("you enter port =", X, "and the remot phon number=", y);

#32

اولا انتي لن تحتاجي الى ادخال رقم البورت لآن هو سيكون ثابت في كل مرة - وانتي بالاساس برنامجكي سيعمل في الخلفية بدون تدخل المستخدم - عندما تشتغل الحاسبة يقوم بأرسال رسالة - مضبوط؟

فبالتالي سيكون رقم البورت ثابت حسب الرقم المعطى عند ربط الموبايل مع الجهاز

رقم جهاز الموبايل ممكن ان يدخل - لكن ايضا في حالتكي يجب ان يكون ثابت - لكي يقوم البرنامج مباشرة بالأرسال

بالنسبة لهذا السطر البرمجي

MessageBox.Show("you enter port =", X, "and the remot phon number=", y);

في السي شارب اذا اردتي ان تدمجي اكثر من string تحتاج الى ان تستعملي علامة +

MessageBox.Show("you enter port ="+ X+ "and the remot phon number="+ y);

ايضا حسب برنامجكي - يجب ان تضعي الكود الخاص بعملية الاسال عند تحميل البرنامج - يعني في ال Load event

على العموم لا تقلي من هذا اذا كنتي لا تعرفيه حاليا

ممكن الان ان يكون الكود داخل زر عادي - واذا تنفذ بصورة صحيحة - ممكن نغيره و نضعه في ال Load

ضعي زر sned مثلا

وجربي هذا الكود

SerialPort sp = new SerialPort("com19");
sp.Write("AT" + (char)(13));
sp.Write("AT+CMGF=1" + (char)(13));
sp.Write(@"AT+CMGS=""" + "mobile number" + @"""" + (char)(13));
sp.Write("hello" + (char)(26));

المقصود ب mobile number هو رقم الجهاز الذي تريدين ارسال الرسالة اليه و ليس رقم الجهاز المربوط مع الحاسبة

بالتوفيق

اضافة:

ربما لن يتم التعرف على ال SerialPort

اضيفي في اعلى البرنامج

using System.IO.Ports;

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#33

السلام عليكم ..

أعتذر أخي فقد أتعبتك معي كثيرا..

ولكن البرنامج يعمل برك ويوقف التشغيل ..

يظهر رسالة مفادها أن المنفذ مغلق ..

ويشير للأمر

sp.Write("AT" + (char)(13));

على الرغم من أنني قمت بتجريب التيرمنل مع نفس المنفذ وقام بالارسال

#34

و عليكم السلام

مافي تعب ان شاء الله

انا اسف على هذا الخطأ

قبل البدء بالكتابة على البورت تحتاجي الى فتحه

sp.Open();

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#35

يعني الكود يكون هكذا

SerialPort sp = new SerialPort("com19");
sp.Open();
sp.Write("AT" + (char)(13));
sp.Write("AT+CMGF=1" + (char)(13));
sp.Write(@"AT+CMGS=""" + "mobile number" + @"""" + (char)(13));
sp.Write("hello" + (char)(26));

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#36

جزيت خيرا أخي نجحت عملية الارسال

من خلال البرنامج

علينا الأن أن نجعله يبدأ مع بداية تشغيل الجهاز ..

#37

الحمد لله -- هذه واحدة

شغلة بداية التشغيل اتصور سهلة ان شاء الله

بس يكون لدي وقت فراغ اضع لكي الطريقة

تم تعديل هذه المشاركة بواسطة الاخير زمانه في 29 أبريل 2011 في 22:13

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#38

شاكره لك أخي ..

وبانتظارك ..

أتمنى لك التوفيق ..

#39

اولا - لجعل اي برنامج يبدء مع بداية تشغيل الحاسبة

ممكن نستخدم هذا الكود

RegistryKey key = Registry.LocalMachine.OpenSubKey(
                "Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
            if(key.GetValue("app") == null)
                key.SetValue("app", Application.ExecutablePath);

            key.Close();

لأضافة مسار البرنامج الى الرجستري

هذا الكود اكتبي داخل الحدث Load

للوصول لهذا الحدث - اضغطي دبل كلك على اي مكان على الفورم الرئيسي (لا تضغطي على اي كونترول)

سظهر لكي هذا

 private void Form1_Load(object sender, EventArgs e)
        {

        }

داخل هذا الحدث اكتبي الكود الذي في الاعلى وايضا اكتبي كود ارسال الرسالة - لكي تنبعث الرسالة مباشرة دون الضغط على زر

اظن ان بهذه الطريقة سيعمل البرنامج كما هو مطلوب - انا لا استطيع ان اجرب الامر -- جربي الطريقة واخبريني بالنتائج

ايضا في اعلى البرنامج ستحتاجي الى اضافة

using Microsoft.Win32;

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#40

السلام عليكم ..

عملت للبرنامج Run

وتم التنفيذ في بيئة البرنامج ..

#41

و عليكم السلام

لم افهم!!

بعد التنفيذ اعملي restart للحاسبة - والمفروض ان البرنامج سيعمل عندء بدء التشغيل

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#42

نعم البرنامج يعمل وتظهر نافذة البرنامج

مع بدء التشغيل ولكن لايتم الارسال..

ربما لأنه لا يتعرف على جهاز الجوال

في الوقت المناسب ....

بصراحة لأعلم ما السبب ..

لكن عندما اعمل رن للبرنامج

في داخل الفيجوال ستدييوا

يتم الارسال ..

#43

طيب - حاولي ان تضيفي هذا السطر قبل الكود الخاص بالارسال

Thread.Sleep(10000);

مجرد تأخر الارسال ل 10 ثواني - او ممكن حاولي ان تزيدي القيمة حسب ما تضبط

ربما هذا السبب

بالتوفيق

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#44

السلام عليكم ..

أعتذر أخي عن التأخر في الرد

لم يكن لدي اتصال بالنت ..

لقد تمت عملية الارسال بنجاح ..

شاكرة لك اخي ..على مجهودك لاحرمك الله الجنه ...

الأن نريد ارسال أمر ايقاف التشغيل من جهاز بعيد

فهل ايضا نحتاج الى كتابة كود برمجي ..

ام هل يمكن اعتماد هذه الطرق ..

iهناك عدد كبير من الطرق المشابهة للطريقة في الفديو .

تم تعديل هذه المشاركة بواسطة أسيرة الزهور في 3 مايو 2011 في 23:46

#45

و عليكم السلام و رحمة الله

الحمد لله نجحت الطريقة.

بخصوص ارسال اوامر الى الحاسبة

امر اطفاء الحاسبة سهل - بأستخدام السي شارب - فقط سطر برمجي واحد

لكن تبقى المشكلة كيف سيتم ارسال الامر الى الحاسبة

ستحتاجين الي استلام الرسالة - نرجع للنقطة المهمة - هل الجهاز يدعم استلام الرسائل - اذا يدعم - مافي مشكلة و الامر سهل ان شاء الله

جربي قراءة الرسائل من الموبايل بأستخدام الترمنل هل ينجح الامر ام لا؟

اذا لم ينجح الامر - ستكون ربما صعوبة في الموضوع - ربما تحاولي ايجاد الجهاز الذي ذكرته لكي في البداية

او ربما نبحث عن طريقة اخرى

مثلا تتم برمجة الموبايل - يعني الرسالة عندما تصل الى الموبايل المربوط مع الحاسبة يتم نقلها عن طريق البلوتوث مثلا الى الحاسبة (لكني لم اتعامل مع البلوتوث مسبقا في السي شارب)

انتي كم ايعاز تحتاجي ان ترسلي الى الموبايل؟

فقط اطفاء الحاسبة ام هناك ايعازات اخرى؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#46

المشرفة على المشروع

قالت لا مشكلة من تنفيذ ايعاز واحد فقط

وانا اردت ان يكون ايقاف التشغيل ..

وسأحاول الآن معرفة ما اذا كان

الجهاز يدعم استقبال الرسائل ام لا ..

دمت أخي بخير..

#47

طيب - لديك الان بعض الحلول

1-اما تجدي الجهاز المطلوب - اذا كان جهازكي لا يدعم الاستقبال - لكي بعدها ننتقل الى البرمجة

2- نجد طريقة ثانية لآستلام الرسالة غير ال AT command

3- ( لست متأكد هل تنجح ) بما انه لديك ايعاز واحد فقط - ممكن نغير بدل الرسالة يكون لدينا اتصال - الحل ليس بالعملي جدا - لكن ربما يكون اسهل - لكن لست متأكد من ايعاز الاتصال وكيفية العمل معه

بالتوفيق

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#48

أخي هناك مشكلة ظهرت لي

هو انه عندما انشئت برنامج آخر

وحذفت الكود من البرنامج الأول

ظل البرنامج الأول يعمل مع بداية عمل الحاسبة

أما البرنامج الثاني لا يظهر .. ولاتتم عملية الارسال من خلاله .

وانا اريد ان يختفي البرنامج الأول ويظل البرنامج الثاني ..

 
 Thread.Sleep(10000);
            RegistryKey key = Registry.LocalMachine.OpenSubKey(
                "Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
            if (key.GetValue("app") == null)
                key.SetValue("app", Application.ExecutablePath);

            key.Close();

            SerialPort sp = new SerialPort("com13");
            sp.Open();
            sp.Write("AT" + (char)(13));
            sp.Write("AT+CMGF=1" + (char)(13));
            sp.Write(@"AT+CMGS=""" + "05" + @"""" + (char)(13));
            sp.Write("your PC open" + (char)(26));

الكود للبرنامج الثاني .

اما بالنسبة للهاتف فانه لايدعم استقبال الرسائل جربت الأمر AT+CMGR

وكانت النتيجه Error.

لازلت ابحث عن الهاتف المذكور ..

تم تعديل هذه المشاركة بواسطة أسيرة الزهور في 5 مايو 2011 في 15:33

#49

السلام عليكم

جربي قومي بحذف البرنامج الاول من بداية تشغيل الحاسبة

اما ان تقومي بهذا الامر برمجيا

اضيفي مثلا زر جديد للمشروع - واكتبي بداخله

RegistryKey key = Registry.CurrentUser.OpenSubKey(
                "Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
            key.DeleteValue("app");

او ممكن باستخدام امكانيات الويندوز

من قائمة start اختاري Run و اكتبي بداخلها

msconfig

راح يفتح لكي dialog اختاري الجزء الخاص ب Startup راح تشوفي كل البرامج التي تعمل على حاسبتكي عند بدء التشغيل

ابحثي على اسم برنامجكي و الغي التأشير من امامه ثم اعملي اعادة تشغيل و راح ينحذف

اتصور لو تضيفي امكانية الحذف من برنامجكي يكون افضل

ان شاء الله تجدي الجهاز المذكور -- لو كنت قريب لأعرتكي الجهاز من عندي

موفقة يارب

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#50

السلام عليكم اخي ..

بصراحه جربت الأمر

AT+CMGL="ALL"

كانت النتيجه دائما تظهر ERROR

جربت عدد كبير من الجوالات ..

ولم اجد الجوال المذكور

ممكن اخي تعطيني صوره له ..

وشكراً...

مواضيع مشابهة