مكتبة C المضمنة المستقلة عن النظام الأساسي لوحدة MicrChip RN2483 Lora.
ملاحظة: لا يتم الحفاظ على هذا الريبو حاليًا وتم كتابته ضد الإصدار 1.0 من مواصفات لوراوان. النظر في أنه انخفض الآن . Lemme تعرف إذا كنت تريد
هذه مكتبة C المضمنة للتفاعل مع وحدة MicroChip RN2483 Lora. إنه يهدف إلى أن يكون بسيطًا ومعيارًا (وهو ما يكفي لجعل نقله إلى منصات مختلفة سهلة).
واحدة من الميزات الرئيسية لهذه المكتبة هي قابلية النقل. لا يمكن أن تكون مكتبة مضمنة مع أي إدخال/إخراج محمولة حقًا ، لذلك يتم دعم منصات محددة في فروع منفصلة للمستودع. الفرع الرئيسي لهذا الريبو هو الكود الأساسي المستقل للمنصة. الفروع الفردية (على سبيل platform/mbit ) ، هي ما تريد بالفعل استخدامه إذا كنت تحاول نشر هذا للاستخدام على النظام الأساسي.
إن الوظائف الوحيدة الخاصة بالأجهزة المحددة من قبل هذه المكتبة هي القدرة على R/W فوق UART إلى وحدة RN2483. وبالتالي ، يتم التعامل مع هذا من خلال وظائف الغلاف: read write . في الفرع الرئيسي ، تمتلئ هذه ببساطة بـ #error التي تخبرك بتنفيذها على التجميع.
للحصول على تفاصيل حول إضافة الدعم لمنصة معينة ، راجع 6. AddingPlatforms .
للحصول على أمثلة لدعم النظام الأساسي المحدد ، انظر 5. منصات مدعومة .
هناك وثائق doxygen ، ما عليك سوى تشغيل doxygen doxycfg في الدليل الرئيسي وسيقوم بإنشاء المستندات/ المجلد. يجب أن تكون جميع التعليقات متوافقة مع Doxygen وحاولت أن أكون شاملًا قدر الإمكان ، لكنني سأقدم نظرة عامة موجزة عليها هنا من أجل سهولة الاستخدام.
المكتبة مكتوبة بالمعيار C (C99) وتوفر وظائف كاملة لوحدة RN2483.
هناك وظيفة command تتيح لك كتابة أي أمر صالح للوحدة (انظر مرجع الأوامر للأوامر الصالحة)
هناك أمر initMAC يستخدم الإعدادات المحددة في ملف rn2483.cfg (الذي يتم كتابته إلى config.h بواسطة makefile ) لتهيئة جميع الإعدادات الخاصة بـ Lorawan التي تحتاجها لتوصيل شبكة Toa Lorawan بنجاح.
بصرف النظر عن هذا ، يتم join إلى الوظائف البارزة الأخرى (انضم إلى شبكة) و tx (نقل البيانات عبر الشبكة المتصلة) ، والتي تتعامل مع مصافحة Lorawan لك.
ملاحظة: أتطلع إلى توسيع هذه المكتبة في المستقبل وأرتبها.
تأكد من التحقق من ملف RN2483.CFG لتكوين إعدادات LoRawan وتشغيل Makefile
سيعتمد الإعداد على النظام الأساسي الخاص بك ، لذلك لمشاهدة README الخاص بفرع النظام الأساسي. لا توجد وظيفة init أو أي شيء لإعداد دبابيس للقلق - كل هذا يتم في وظائف read write (التي تنفذها ، من أجل usecase الخاص بك).
في الفرع الرئيسي ، كان لدي في البداية وظائف printf و getc لهذا (بقصد السماح للمستخدم بإعادة تدوير stdin و stdout أو إعادة تعريف الوظائف مع وحدات الماكرو) ، ولكن بعد تجربة BBC micro: عملية بناء CMAKE من BIT ، قررت أن تقرر فقط استخدام وظائف الغلاف المعدلة لكل منصة.
بصرف النظر عن الإعداد ، يجب أن يذهب الاستخدام العام:
تذكر أنه يمكنك الوصول إلى أي وظيفة أخرى من RN2483 من خلال وظيفة RN2483_Command ()
انظر الفرع: منصة/mbit 's readme.md.
لقد حاولت تحديد التغييرات اللازمة لإضافة منصة قدر الإمكان. يتم ذلك في الغالب من خلال وظائف غلاف القراءة/الكتابة في RN2483.C ، ولكن إذا نظرت إلى BBC Micro: Bit Branch ، فسترى أنه في بعض الحالات ستحتاج إلى تغيير أكثر من هذا (انظر هذا الفرع README للحصول على التفاصيل).
الوظائف التي تحتاج إلى تغيير في rn2483.c :
من الواضح أن الأمر ليس بهذه البساطة أبدًا ، لذلك قد تصادف بعض حواجز الطرق التي تتطلب المزيد من التعديلات. على سبيل المثال ، في فرع المنصة/MBT ، اضطررت إلى نقل المؤشرات إلى الكائن التسلسلي للميكروبيت.