📚 المقطع البرمجي النهائي (inspector.py)
المفاهيم الأساسية
لا توجد مصطلحات جديدة معرّفة في هذه الصفحة.
خريطة المفاهيم
✅ القرار: هذه الصفحة هي استكمال مباشر لنفس الموضوع في الخريطة السابقة (CONTINUE). سيتم إضافة الفروع الجديدة تحت الفرع الحالي "برمجة مركبة التفتيش".
```markmap
أدوات محاكاة إنترنت الأشياء
برنامج كاب كاربون (CupCarbon)
مشروع محاكاة: نظام تخزين مصنع آلي (تابع)
#### إنشاء المقاطع البرمجية
##### المكتبات والتهيئة
- استيراد مكتبة `time`.
- طباعة نص فارغ `node.print("")` لمسح النصوص السابقة.
##### برمجة حاويات المواد القابلة للتلف
- المحتويات: "CONSUMABLES".
- معرف الحاوية (ID) بعد تحويله إلى نص.
- فصل المعلومات بمسافة.
- استخدام دالة `node.send()` للإرسال.
##### استقبال الأوامر والاستجابة
- قراءة الرسالة الواردة `node.read()`.
- إذا كانت الرسالة "1": طباعة "PICK" (الالتقاط).
- إذا كانت الرسالة "2": طباعة "DO NOT PICK" (لا تلتقط).
- السكون لمدة ثانية `time.sleep(1)`.
##### برمجة حاويات المواد طويلة الأمد
- المحتويات: "NONCONSUMABLES".
- معرف الحاوية (ID) بعد تحويله إلى نص.
- فصل المعلومات بمسافة.
- استخدام دالة `node.send()` للإرسال.
##### استقبال الأوامر والاستجابة
- قراءة الرسالة الواردة `node.read()`.
- إذا كانت الرسالة "1": طباعة "PICK" (الالتقاط).
- إذا كانت الرسالة "2": طباعة "DO NOT PICK" (لا تلتقط).
- السكون لمدة ثانية `time.sleep(1)`.
##### برمجة مركبة التفتيش
###### تهيئة وإدارة البطارية
- `node.battery.setMax(100.0)`: ضبط أقصى طاقة.
- `node.battery.init()`: شحن البطارية إلى الحد الأقصى.
- `node.battery.consume(1.0)`: محاكاة استهلاك الطاقة.
###### اكتشاف محطات الشحن
- `node.isSensorDetecting()`: التحقق من وجود محطة شحن في النطاق.
- عند الاكتشاف: استخدام `node.battery.init()` لإعادة الشحن.
###### معالجة رسائل الحاويات والرد
- قراءة جميع الرسائل في المخزن المؤقت: `for n in range(node.bufferSize())`.
- فصل نص الرسالة: `recvMsg.split()`.
- الرد على الحاوية المرسلة:
- إذا كان المحتوى "CONSUMABLES": إرسال النص "1".
- إذا كان المحتوى "NONCONSUMABLES": إرسال النص "2".
- `time.sleep(0.2)`: السكون لمدة 200 مللي ثانية لتحقيق استجابة أفضل.
###### المقطع البرمجي النهائي
- يدمج المقطع الكود الخاص بإدارة البطارية واكتشاف الشحن ومعالجة الرسائل في حلقة `while` رئيسية.
- يتم وضع كود الرد على الرسائل (`if/elif`) داخل الحلقة الرئيسية بعد قراءة كل رسالة.
```
نقاط مهمة
* تحتوي هذه الصفحة على المقطع البرمجي النهائي الكامل لبرمجة مركبة التفتيش (`inspector.py`).
* يظهر الكود النهائي كيفية تنظيم الوظائف (إدارة البطارية، اكتشاف الشحن، معالجة الرسائل) داخل حلقة `while node.loop():` رئيسية واحدة.
* يتم استدعاء دالة `time.sleep(0.2)` في نهاية كل تكرار للحلقة لتحسين أداء المحاكاة.