سؤال

أحتاج إلى رسم بياني لبيانات التدفق (9600 باود)، والتي تأتي في حزم 2-4 بايت من منفذ تسلسلي.يجب معالجة الحزم قبل الرسم البياني.حاليًا، أقوم برفع حدث على كل حزمة كاملة، مما يسبب مشكلات في الاستجابة في نموذج الرسوم البيانية.

ما هو الحل الأفضل لهذه المشكلة :

  • تخزين البيانات مؤقتًا ورفع البيانات المخزنة في الحدث على فترات زمنية (أي 500 مللي ثانية)
  • قم ببناء المخزن المؤقت والسماح بإنشاء مثيل لاستقصاء الكائنات للبيانات المخزنة مؤقتًا/المخزن المؤقت الفارغ عند الاستقصاء
  • آخر (؟)
هل كانت مفيدة؟

المحلول

وأود بالتأكيد الحد من معدل التحديث.لمثل هذه التطبيقات، عادة ما يكون واحد كل 300 مللي ثانية كافيًا.

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

باستخدام سلاسل رسائل منفصلة، ​​يمكن تشغيل مؤشر ترابط العامل بأولوية أعلى، بحيث قد يؤدي ارتفاع التحميل إلى تأخير تحديثات العرض، ولكن لا يتم فقدان أي بيانات.

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

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