عن المشروع

هذا المستودع هو مستودع شامل (Umbrella) لنظام التحكم في الطيران متعدد المستودعات، حيث يضم 9 مستودعات فرعية مستقلة عبر git submodule، لإدارة الهيكل العام ووثائق المشروع وطرق التكامل بشكل مركزي. تتطور المستودعات الفرعية بشكل مستقل، بينما يسجل المستودع الشامل فقط لقطات الإصدارات والوثائق. يتكون المشروع من: - flyctrl/: البرامج الثابتة للتحكم في الطيران (Rust no_std، تشمل EKF و PID ووضع الطيران و FDIR و MAVLink uplink) - fly-simulater/: منصة المحاكاة الفيزيائية (fly-sim-core، تشمل plant و controller و sensor و wind و SIL) - mcu_simulater/: محاكي تعليمات MCU (Unicorn STM32F407 + أجهزة افتراضية I2C/UART/USB) - joc-base/: نواة RTOS + دعم اللوحة (STM32F407 minimal، قاعدة ELF للبرامج الثابتة، فرع dev) - joc-rtos-app-sdk/: SDK للتطبيقات (Rust no_std، سجل/جهاز/مهمة، مخزن سجل 180 بايت) - mavlink-core/: ترميز وفك MAVLink (إطار/تعداد/COMMAND_LONG) - physics/: محرك فيزيائي phy-sdk (تبعية اختيارية لـ fly-sim-core، فيزياء حقيقية SIL) - groundctrl/: محطة أرضية (Rust) - joc-drvtest-app/: تطبيق اختبار السائق (تصحيح أخطاء السائق) البدء السريع: 1. تهيئة الوحدات الفرعية: `git submodule update --init --recursive` 2. بناء البرامج الثابتة: `./scripts/build.sh real-sensors` أو `./scripts/build.sh hil`، الناتج في /tmp 3. اختبار الانحدار بنقرة واحدة: `./scripts/verify.sh` 4. التكامل بنقرة واحدة: `./scripts/integrate.sh` (الكل) أو تحديد خطوة مثل `unlock` أو `firmware` عناوين URL للوحدات الفرعية بصيغة SSH، ويتطلب السحب عبر الأجهزة صلاحية مفتاح SSH. في حالة خطأ نقل الملف، استخدم `git -c protocol.file.allow=always submodule update --init --recursive`. اتفاقية مسار ناتج التكامل: تُفضل متغيرات البيئة (مثل JOC_BASE_ELF و JOC_APP_FLYCTRL)، ثم التخطيط القياسي للمستودع الشامل (مثل joc-base/build_hil/stm32f407_minimal.elf)، وأخيرًا المسارات التاريخية. سير العمل على جهاز جديد: تهيئة الوحدات الفرعية → بناء البرامج الثابتة → تشغيل جميع التكاملات. لقطات الإصدارات مقفلة بواسطة المستودع الشامل، ويتم عرض التزامات الوحدات الفرعية عبر `git submodule status`، ويجب تسجيل لقطة جديدة في المستودع الشامل بعد التحديث لضمان قابلية التكرار. دليل الوثائق: - docs/architecture.md: الهيكل العام (طبقات المحاكاة الثلاث/تدفق البيانات/المسؤوليات) - docs/engineering.md: شرح تفصيلي لكل مشروع - docs/integration.md: طرق التكامل (الأجهزة الافتراضية/SIL/HIL/حقن الأخطاء/فتح الطيران) - docs/postmortem-rtos-pendsv-fallback.md: مراجعة إصلاح عيب التراجع عن قائمة PendSV الفارغة - scripts/integrate.sh: نص التكامل بنقرة واحدة - scripts/verify.sh: نص اختبار الانحدار بنقرة واحدة