بناء بوابة Matter بلغة Rust: إظهار الأجهزة في Apple Home

تجربة عملية مع rs-matter تشمل نقاط النهاية وربط الأجهزة والأوامر وحالة الأجهزة وتخزين البيانات.

في المقال السابق ربطنا بوابة تجريبية بـ Apple Home باستخدام حاسوب وهاتف. هنا ننظر إلى جانب Matter المبني بلغة Rust ومكتبة rs-matter. لا يزال التوافق مع شبكة Bluetooth Mesh حقيقية والعمل على لوحة Linux واختبار العدد الكبير من الأجهزة قيد الانتظار.

بوابة واحدة وأجهزة متعددة

تظهر البوابة كعقدة Matter: توفر نقطة النهاية 0 الوظائف الأساسية، وتعمل النقطة 1 كمجمّع، وتحصل كل لمبة موصولة على نقطة مستقلة. يصف النموذج نوع الجهاز وقدراته باستخدام مجموعات Descriptor وOn/Off وBridged Device Basic Information وGroups.

جدول يربط الطرفين

يحفظ جدول الأجهزة رقم نقطة النهاية وعنوان الجهاز واسمه وحالة التشغيل وإمكانية الوصول إليه. عندما يطلب Apple Home تشغيل النقطة 2، تبحث البوابة عن العنوان المقابل وترسل الأمر إلى الطبقة الأدنى. يحتاج المنتج الفعلي أيضاً إلى إدارة الإعداد والأمان والاستعادة.

الأوامر وتقارير الحالة

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

الاتجاه العكسي مهم أيضاً: قد يضغط أحدهم المفتاح الفعلي. تحدد البوابة الجهاز من عنوانه، وتحدّث نقطة النهاية، ثم تخطر مشتركي Matter. وفي تجربة الهاتف تُهمل إعلانات الحالة المتطابقة المتكررة حتى لا تعيد قيمة قديمة. هذا البث غير المشفر مجرد وسيلة للعرض، وليس اختباراً لشبكة Mesh حقيقية.

إضافة الأجهزة وإعادة التشغيل

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

يُحفظ الربط بين نقطة النهاية والعنوان والاسم في ملف محلي، بينما يخزن rs-matter بياناته بصورة مستقلة. يُكتب جدول الأجهزة في ملف مؤقت قبل استبدال الملف السابق؛ يقلل ذلك خطر التلف لكنه لا يضمن السلامة في كل انقطاع للكهرباء. كذلك يجب التحقق مجدداً من حالة الجهاز ووضع خطة آمنة لحفظ مفاتيح Mesh ونسخها احتياطياً.

ما الذي اختُبر؟

تحققت التجربة من الاقتران بـ Apple Home، وعرض الأجهزة المحاكاة والتحكم فيها وإرجاع حالتها، والسلوك الأساسي للإضافة والحذف وإعادة التشغيل. لم تختبر شبكة Mesh حقيقية أو لوحة Linux المستهدفة أو التعافي من الأعطال أو مئات الأجهزة. ولا تعني شهادات الاختبار حصول المنتج على اعتماد نهائي.

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

للتواصل

اقرأ وشارك عبر WeChat

رمز QR لهذا المقال

امسح الرمز لفتح المقال، ثم شاركه من قائمة WeChat.