سؤال

لقد كنت أحاول القيام بتواصل TCP باستخدام مودم Wavecom Fastrack الخاص بي. ما أريد تحقيقه هو جعل المودم يتصل بمنفذ خادم TCP المحدد لتمكينني من نقل البيانات من وإلى الخادم. لقد وجدت بعض المعلومات عنها في دليل المستخدم. استنادًا إلى المعلومات التي يمكنك العثور عليها في الصفحة 66 ، قمت بإنشاء تطبيق يفتح المنفذ التسلسلي الذي يتم توصيل المودم ويكتب ما يلي في الأوامر:

AT+WIPCFG=1 //start IP stack
AT+WIPBR=1,6 //open GPRS bearer
AT+WIPBR=2,6,11,"APN" //set APN of GPRS bearer
AT+WIPBR=2,6,0 //username
AT+WIPBR=2,6,1 //password
AT+WIPBR=4,6,0 //start GPRS bearer

AT+WIPCREATE=2,1,"server_ip_address",server_port //create a TCP client on port "server_port"

AT+WIPDATA=2,1,1 //switch do data exchange mode

هذا هو بالضبط ما يقوله دليل المستخدم. بعد إرسال الأمر الأخير إلى المودم ، يتحول الجهاز إلى وضع تبادل البيانات ، ومنذ ذلك الحين ، يجب أن يتم استلام ما يتم كتابته إلى المنفذ التسلسلي الذي تم فتحه بواسطة طلبي من قبل الخادم ويجب أن يظهر كل ما يرسله الخادم في المخزن المؤقت للإدخال من هذا المنفذ.

الشيء هو أنني لم أتمكن من الحفاظ على اتصال ثنائي الاتجاه مستقر بين الخادم ومودمي. عندما أكتب بعض البيانات إلى المنفذ التسلسلي (بضع بايت فقط) ، يستغرق الأمر الكثير من الوقت قبل ظهور البيانات على جانب الخادم وفي كثير من الحالات لا تصل البيانات إلى الخادم على الإطلاق.

أجريت بعض الاختبارات التي كتبت حوالي 100 بايت إلى المنفذ التسلسلي في وقت واحد. تسجيل البيانات التي تلقاها تطبيق الخادم الخاص بي ، لاحظت أن الجزء الأول من البيانات (8-35 بايت) يتم استلامه بعد ثانية أو اثنتين. تظهر بقية البيانات في 2-5 ثوان (إما ككل أو في أجزاء من الحجم المذكور) أو لا تظهر على الإطلاق.

لا أعرف أين أبحث عن سبب هذا السلوك. هل استخدمت خطأ في الأوامر لتبديل المودم إلى وضع عميل TCP؟ لا أستطيع أن أصدق أن التواصل قد يكون بطيئًا وغير مستقر.

سيتم تقدير أي نصيحة. شكرا لكم مقدما.

هل كانت مفيدة؟

المحلول

ما هو نظام التشغيل الذي تقوم بتشغيله؟ يقوم Windows بعمل جيد جدًا لإخفاء التفاصيل الفوضوية للتواصل مع مودم GPRS ، كل ما عليك فعله هو إنشاء اتصال قرد جديد. لإنشاء الاتصال ، يمكنك إجراء مكالمة إلى وظيفة Win32 Rasdial. بمجرد الاتصال ، يمكنك استخدام مآخذ قياسية لنقل البيانات على منفذ TCP.

نصائح أخرى

لقد كنت أستخدم مودم WaveComm لمدة عامين حتى الآن. على حد علمي من تجربتي ، إذا كنت قادرًا على إرسال بعض البيانات ، فيمكنك إرسال جميع البيانات.

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

حاول إرسال نفس البيانات في تمثال نصفي أصغر مع بعض التأخير بينهما ، ثم قد تتلقى جميع البيانات سليمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top