يمثل بروتوكول Clusterduck (CDP) ، وهو مشروع مبتكر مفتوح المصدر تحت مؤسسة Linux ، قفزة كبيرة في اتصالات IoT ، وتسخير قوة النطاق الترددي المنخفض والطاقة المنخفضة مثل تقنية Lora. يختلف هذا البروتوكول الذي يختلف عن Lorawan ، يستخدم قدرات Lora من نقطة إلى متطورة لتسهيل التواصل القوي في بيئات متنوعة.
تم إنشاء بروتوكول Clusterduck بواسطة Owl Integrations (Project Owl سابقًا) لتزويد المطورين بمكتبة متقدمة لصياغة شبكات الاتصال الموزعة ، المصممة خصيصًا لمجموعة متنوعة من تطبيقات إنترنت الأشياء. منذ إنشائها ، نمت رؤية بروتوكول Clusterduck إلى ما بعد خدمة الكوارث الطبيعية للأحداث الكبيرة (الازدحام الخلوي) وشبكات المستشعرات والمزيد.
تتكون الشبكة من عقد متعددة تسمى البط . هناك 3 أنواع أساسية من البط في شبكة Clusterduck: DuckLink و Mamaduck و Papaduck. تعمل DuckLinks كعقد الحافة التي تنقل البيانات فقط. يرث Mamaducks نفس وظائف الصلصال ، ولكن يمكنهم أيضًا تلقي الرسائل. يتيح هذا لمامادوكس نقل الرسائل من صفاقات البط و/أو غيرها من المامادوك على طول الشبكة (نحو البوابة). Papaducks هي نقطة النهاية للشبكة حيث يتم جمع جميع البيانات ويمكن تخزينها أو دفعها إلى السحابة. (Free Tier Cloud DMS Platform في Beta! تواصل معنا على Discord لمزيد من المعلومات)
تحقق من الويكي لمعرفة كيفية إنشاء شبكة clusterduck الخاصة بك. لا تتردد في زيارة موقع بروتوكول Clusterduck للحصول على مزيد من المعلومات حول المشاريع التي يبنيها المجتمع. يمكنك التواصل مباشرة مع مجتمع Discord لدينا لأي أسئلة و/أو للعمل مع المجتمع.
لاستخدام بروتوكول clusterduck اتبع دليل التثبيت.
بدءًا من الإصدار 4.0.0 ، لدينا اختبارات وحدة متاحة مع unity اختبار Platformio
توجد الاختبارات في مجلد ClusterDuckProtocol/test . هذه الاختبارات هي اختبارات الوحدة لأنها تحقق من صحة واجهات برمجة تطبيقات CDP التي يمكن الوصول إليها للجمهور. ومع ذلك ، يجب تشغيلها على جهاز. هذا يعني أنه يتعين عليك توصيل جهاز بجهاز التطوير الخاص بك وإنشاء الاختبارات لتشغيله على الجهاز. سيقوم أمر test النظام الأساسي IO بإنشاء ونشر وتشغيل الاختبارات وإبلاغ النتائج على وحدة التحكم الطرفية الخاصة بك.
تعد اختبارات الوحدة رائعة في اكتشاف المشكلات قبل أن تصل إلى الإصدار ، لذلك من المهم ليس فقط تشغيلها للتحقق من صحة التغييرات الخاصة بك ، ولكن لتحديثها باستمرار.
يحدد Project platformio.ini تكوينات البيئة للوحات المدعومة. على سبيل المثال أدناه هو التكوين للاختبارات على لوحة Heltec Lora V3 Arduino
[env:test_heltec_wifi_lora_32_V3]
test_build_src = yes
test_filter = test_*
test_framework = unity
platform = ${env:heltec_wifi_lora_32_V3.platform}
board = ${env:heltec_wifi_lora_32_V3.board}
framework = ${env:heltec_wifi_lora_32_V3.framework}
monitor_speed = ${env.monitor_speed}
build_src_filter = +<./> +<./include> +<./include/boards>
lib_deps =
${env.lib_deps}
${env:heltec_wifi_lora_32_V3.lib_deps}
; why do I need to add the following libraries is a mystery to me
SPI
WIRE
FS
WIFI
build_flags =
${env.build_flags}
-std=gnu++11
-DUNIT_TEST
فيما يلي الخطوات اللازمة لإجراء الاختبارات (على Linux أو Mac OS). هذا يفترض أن لديك منصة مثبتة على نظامك.
لمزيد من التفاصيل حول إعداد بيئة التطوير الخاصة بك ، يرجى الرجوع إلى دليل المطور.
# Open a terminal
# goto the project root folder (where the platformio.ini is located)
$ cd ClusterDuckProtocol
$ platformio test -e test_heltec_wifi_lora_32_V3
Processing test_DuckUtils in test_heltec_wifi_lora_32_V3 environment
-------------------------------------------------------------------------------------------------------------------------------------
Building & Uploading...
Testing...
If you don't see any output for the first 10 secs, please reset board (press reset button)
test/test_DuckUtils/test_DuckUtils.cpp:181: test_DuckUtils_getCdpVersion [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:182: test_DuckUtils_toUpperCase [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:183: test_DuckUtils_stringToByteVector [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:184: test_DuckUtils_getRandomBytes [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:185: test_DuckUtils_createUuid_with_given_length [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:186: test_DuckUtils_createUuid_with_default_length [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:187: test_DuckUtils_convertToHex [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:188: test_DuckUtils_toString_printable_characters [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:189: test_DuckUtils_toString_non_printable_characters [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:190: test_DuckUtils_isEqual_true [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:191: test_DuckUtils_isEqual_false [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:192: test_DuckUtils_isEqual_false_with_different_sizes [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:193: test_DuckUtils_toUint32 [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:194: test_DuckUtils_saveWifiCredentials [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:195: test_DuckUtils_saveWifiCredentials_zero_length [PASSED]
test/test_DuckUtils/test_DuckUtils.cpp:196: test_DuckUtils_loadWifiSsid [PASSED]
-- test_heltec_wifi_lora_32_V3:test_DuckUtils [PASSED] Took 23.34 seconds -------------------------------------------------------------
نستضيف قاعة مدينة CDP كل أسبوعين يوم الاثنين في الساعة 2 مساءً بتوقيت شرق الولايات المتحدة. قاعة المدينة هي المكان المناسب للحصول على تحديثات على البروتوكول ، والحصول على أسئلتك حول الإجابة على CDP ، ومناقشة المشاريع المستمرة. تم توثيق جميع المشاريع الحالية في خريطة طريق عامة في مشاريع جيثب.
يرجى قراءة المساهمة.
يحكم هذا المشروع ميثاقه الفني ويقوده لجنة التوجيه التقنية.
تم ترخيص هذا المشروع بموجب ترخيص Apache 2 - راجع ملف الترخيص للحصول على التفاصيل.