ينتهي فصل الشتاء ، وهذه مناسبة لرسم خط آخر وإخبار ما الجديد في MQTT / UDP.
بالنسبة للمبتدئين ، روابط
لمقدمة ومقال سابق.
شكراً لكل من استجاب باهتمام ، وخاصةً لأولئك الذين شاركوا أفكارهم. لقد ساعدتني حقًا في نهج التوقيع الرقمي. لذلك ، ما الذي تغير على نطاق واسع:
- ظهرت آلية لتمديد بروتوكول مرن: Tagged Tail Records، TTRs
- بناءً عليه ، تم إنشاء مخطط توقيع الحزمة الرقمية
- تم إجراء آلية للتكوين عن بعد للمكونات
- أثارت دورة CI الكاملة: التجميع ، اختبارات الوحدة ، اختبارات البروتوكول من طرف إلى طرف (4 * 4 لغات برمجة)
- يدعم تطبيق C الآن بنيات مختلفة ويمكن أن يتكامل مع أنظمة تشغيل وشاشات مختلفة.
- هناك حزم عامة لبيثون ولوا ، على الرغم من أنها قديمة بالفعل.
حسنًا ، هناك الكثير من الأشياء الصغيرة: التكامل مع OpenHAB وملفات التهيئة وتسجيل الدخول والتحقق من التوافق مع خدمة MQTT السحابية وحالة اختبار Wemos D1 (NodeMCU) وحالة اختبار لـ atmega128 + ethernet (وليس arduino) ، مثال على موصل بروتوكول على تم تصميم Java (CCU825) ، مثال على وحدة تحكم المخبر في علبة سطح المكتب (أخيرًا ، يمكنني تشغيل الضوء في الغرفة بنقرتين من الماوس :) ، والمزيد.
الآن بالترتيب.
الموسومة الذيل السجلات
أصبحت ضيقة كجزء من حزمة MQTT. أضفت إضافات الذيل إلى مجموعته في شكل محتوى بطول العلامة ، حيث يمكنك الآن وضع البيانات اللازمة. اليوم هو معرّف الحزمة ، معرف الحزمة التي نرد عليها (بالنسبة لجودة الخدمة ، لا يزال هذا يعمل) والتوقيع الرقمي ، إذا كان ممكّنًا. من المخطط أيضًا أن يكون الوقت والتاريخ بالمللي ثانية من لحظة قياس القيمة ولحظة إرسال الحزمة (كملطفة إلى لحظة القياس) ، والتمديدات التعسفية الإضافية ممكنة ضمن حجم حزمة UDP.
(لم يتم إدراج SVG ،
الرسم التوضيحي هنا )
انها تعمل بالفعل في كل مكان ما عدا لوا. (بشكل عام ، Lua خيبت آمالي ، وفقط NodeMCU يحملها ، ثم سأحاول التبديل إلى Python هناك).
التوقيع الرقمي
كنت خائفًا من الاقتراب من هذا الوزن ، ولكن بعد ظهور ملحقات العلامة أصبح كل شيء بسيطًا جدًا. يتم توقيع الحزمة المرسلة وفقًا لمعيار HMAC MD5 (غيرها وجدتها طويلة جدًا لحزم UDP القصيرة) ، يتم إجراء فحص عند الإدخال. سواء تم قبول أو عدم قبول حزمة بدون توقيع ، فسيتم ترك رمز التطبيق. صحيح ، يوجد في Java مفتاح "رفض كل غير موقع" ، لكن يبدو أن هذا هو الحد الأقصى.
التكوين عن بعد

في الواقع ، كل شيء بسيط مرة أخرى: يوجد برنامج سطح مكتب (Java ، يعمل في كل مكان) يقدم طلبًا (حزمة الاشتراك) لموضوع من نوع معين (
$SYS/conf/#
). جميع العقد التي يمكن تهيئتها عن بعد تتوافق مع القيم الحالية للمعلمات القابلة للتكوين. يقوم هذا البرنامج بتركيب واجهة مستخدم بسيطة بأسماء وحقول إدخال ، ويقوم المستخدم بتغيير الإعدادات ، وتعود أوامر التحديث إلى الوراء. البنية التحتية بأكملها في المكتبات ، من جانب رمز التطبيق ، تحتاج فقط إلى إصدار قائمة المعلمات وتكون قادرة على كتابة / قراءتها إلى ملف أو NVRAM.
العمارة ورمز النظام المعتمد لـ C
يمكنك الآن إضافة إعدادات للبنية (toolchain) ورمز الغراء لنظام التشغيل أو الشاشة المستهدفة. يتم اختبار هذا على ثلاثة تكوينات - unix / cygwin (./configure) و mingw و NUT / OS (بدون تهيئة).
حسنا ، ربما ، هذا كل شيء لهذا اليوم. لا يوجد وقت للتفاصيل ، ولكن إذا كان هناك اهتمام ، سأكتب بمزيد من التفاصيل.
وثائق المشروع ، أكثر من التطلعات ، لا تزال
وثيقة الصلة بالموضوع ، وهي مكتوبة بشكل لائق هناك. نأسف لعدم وجود اللغة الروسية ، ولكن هناك القليل من الوقت لذلك ، أريد أن أترجم على أساس البنية التحتية ، ولم أجد حتى الآن أي خدمة عامة مقبولة (محرر على الإنترنت) لترجمة فقرة إلى فقرة.
حسنا ،
مستودع نفسها .