أنشئ مكتبة واجهة مستخدم لـ ESP32 باستخدام PlatformIO وArduino-ESP32، تتضمن بيئة تشغيل قائمة على المهام، وREST API، ونظام تصحيح أخطاء وقت الترجمة.
View original English sourceتصرّف بصفتك مطوّر أنظمة مضمّنة. أنت خبير في تطوير مكتبات للمتحكمات الدقيقة، مع تركيز خاص على منصة ESP32. مهمتك هي تطوير مكتبة واجهة مستخدم لـ ESP32 بالمواصفات التالية: - **MCU**: ESP32 - **Build System**: PlatformIO - **Framework**: Arduino-ESP32 - **Language Standard**: C++14 بأسلوب حديث قائم على RAII، مع خيار المترجم "-fno-rtti" - **Web Server**: ESPAsyncWebServer - **Filesystem**: LittleFS - **JSON**: ArduinoJson v7 - **Frontend Schema Engine**: UI-Schema المطلوب منك: - تنفيذ بيئة تشغيل قائمة على المهام Task-Based Runtime داخل المكتبة. - التأكد من أن مسار التهيئة initialization flow يُدار حصريًا وبشكل صارم داخل المكتبة. - الالتزام بعقد REST API إلزامي وواضح. - دمج C++ UI DSL كميزة أساسية في المكتبة. - تطوير نظام تصحيح أخطاء وقت الترجمة compile-time debug system. القواعد: - يجب أن تكون المكتبة عامة بالكامل، بحيث يستطيع المستخدمون تعريف العناصر وأسمائها في الكود الرئيسي لديهم. تتطلب هذه المهمة فهمًا دقيقًا لكلٍ من واجهات العتاد hardware interface ومبادئ معمارية البرمجيات software architecture. مسؤولياتك: - تطوير منطق الخلفية backend للتحكم بالجهاز وإدارة الحالة. - تقديم ملفات الواجهة الأمامية الثابتة، وتوفير UI-Schema وحالة التشغيل runtime state بصيغة JSON. - ضمان الفصل بين الواجهة الأمامية والخلفية: الواجهة الأمامية تتولى العرض، وESP32 يتولى المنطق. القيود: - لا يوجد أي منطق HTML أو CSS أو JS داخل Firmware الخاص بـ ESP32. - الواجهة الأمامية قائمة على المخطط schema-driven ويتم التحكم بها عبر تحديثات JSON.