سؤال

لدي تطبيق يقرأ البيانات من منفذ COM باستخدام Javax.comM.

المشكلة التي أحصل عليها هي أنه إذا كان الجهاز الذي أقرأ منه غير متوقع بشكل غير متوقع، فإنني أحصل على خطأ في وحدة التحكم التي تقول "waitcommevent: خطأ 5"

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

لا تأتي رسالة الخطأ التي تتم طباعةها من أي مكان في التعليمات البرمجية، بحيث يجب أن تكون في حزمة JAVAX.comM في مكان ما. هل يمكن لأحد أن يقول لي كيفية التعامل مع هذا الخطأ حتى أتمكن من إغلاق منفذ COM بشكل صحيح عند حدوثه؟

شكرًا!

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

المحلول

إذا كان أي شخص مهتم بهذا، فقد وجدت حلا. كنت أستخدم api javax.comMM ولكن لحل المشكلة التي استبدلتها مع Roxtx API (http://rxtx.qbang.org/wiki/index.php/main_page.). هناك حاجة إلى تغييرات رمز ولكن الآن عند قطع الاتصال الجهاز، أتلقى IoException مع رسالة "تدفق الإدخال الأساسي عاد بايت صفر". أنا التعامل مع هذه الرسالة وإطلاق موضوع جديد. في مؤشر الترابط الجديد، اتصل بنظام Port.Close () و Port.RemoveEventListener (). يجب أن تتم هذه المكالمتين في مؤشر ترابط جديد أو سوف يتعطل التطبيق.

نصائح أخرى

كنا نستخدم الكثير من الوقت على الحصول على javax.com للعمل ووجدت أنه في حالتنا كان برنامج تشغيل COM الذي كان يسبب المشكلات (على عدة أجهزة كمبيوتر Windows 7). إذا كان برنامج التشغيل هو مشكلتك وأنت تستخدم Windows 7 أو ربما Vista (وأنت تستخدم كابل Seriel غزير / Logilink)، فقد يكون هذا الحل :)http://www.akosta.dk/category/technical-notes/

آمل أن تحصل عليه للعمل!

هذا السؤال ما يقرب من 2 سنة، ولكن ربما يحتاج الآخر إلى حل ممكن:

كان لدي نفس المشكلة مع java.comm: "waitcommevent: خطأ 5" تظهر هذه الرسالة عدة مرات، إذا تم قطع اتصال منفذ COM، ولكن كائن SerialPort غير مغلق.

كان الحل الخاص بي هو إغلاق كائن SerialPort إذا قامت القراءة / الكتابة من تدفقات IO من Serialport رمي استثناء.

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