تحقق مما إذا كان المنفذ التسلسلي هو الاستماع

StackOverflow https://stackoverflow.com/questions/195304

  •  10-07-2019
  •  | 
  •  

سؤال

ولدي اردوينو إرسال واستقبال الإرشادات مع بيثون السيناريو عبر منفذ تسلسلي.

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

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

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

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

المحلول

لديك قدرة محدودة على اكتشاف ما إذا كان هناك شيء الاستماع على الجانب الآخر باستخدام دبابيس DSR / DTR.

عند فتح منفذ تسلسلي على الجهاز البرامج النصية يعمل على أنه يجب رفع دبوس DTR (أو يجب أن تكون قادرة على اقناع للقيام بذلك: وثائق المكتبة التي تستخدم لدفع ميناء COM ينبغي أن أقول كيف).

وبعد ذلك، على اردوينو الخاص بك، يمكنك التحقق من رقم التعريف الشخصي DSR لها (على افتراض الأسلاك مودم مع المصافحة، حيث السلكية دبوس PC DTR إلى DSR + CD على اردوينو) على فترات منتظمة، والتعامل مع "لا أحد اتصالا سيناريو في أي بالطريقة التي تراها مناسبة.

ومشكلة واحدة مع هذا النهج هو أن السيناريو جهاز الكمبيوتر الخاص بك قد لا إغلاق المنفذ التسلسلي حين يعطل / توقف عن الاستجابة، وترك دبوس DTR تمكين وكأن كل شيء لا يزال موافق. أيضا، السيناريو الخاص بك ببساطة قد يغيب عن رسالة من اردوينو بسبب أخطاء في خط المسلسل.

لهذا السبب، يجب عليك <ط> دائما تنفيذ المهلة في تتلقاها الروتينية: حتى إذا كان هناك طرف الاستماع إلى الطرف الآخر، وليس هناك ما يضمن انها تلقت رسالة (أو أن لها وردا الوصول إليك سليمة).

و-إعادة إرسال الرسالة مرة واحدة على الأقل (على افتراض DSR يتم رفع) في حالة حدوث مهلة يجعل البروتوكول الخاص بك أكثر موثوقية.

نصائح أخرى

وواردوينو لا يستخدم خط DSR أو أي خط المصافحة الآخرين، لذلك لا يمكنك أن تفعل ما يوحي لك.

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

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