Das ClusterDuck Protocol (CDP), ein innovatives Open-Source-Projekt unter der Linux Foundation, stellt einen erheblichen Sprung in der IoT-Kommunikation dar und nutzt die Kraft der niedrigen Bandbreite und der geringen Leistung wie der LORA-Technologie. Unterscheidet sich von Lorawan und nutzt das Protokoll von LORA, um eine robuste Kommunikation in verschiedenen Umgebungen zu ermöglichen.
Das ClusterDuck -Protokoll wurde von OWL -Integrationen (ehemals Project OWL) erstellt, um Entwicklern eine fortschrittliche Bibliothek für die Herstellung verteilter Kommunikationsnetzwerke zu bieten, die auf eine Vielzahl von IoT -Anwendungen zugeschnitten sind. Seit seiner Gründung ist die Vision für das ClusterDuck -Protokoll über die Wartung von Naturkatastrophen bis zu großen Ereignissen (Zellveraugung), Sensornetzwerken und vielem mehr gewachsen.
Das Netzwerk besteht aus mehreren Knoten namens Ducks . In einem Clusterduck -Netzwerk gibt es 3 grundlegende Entenarten: Ducklink, Mamaduck und Papaduck. Entenköpfe dienen als Kantenknoten, die nur Daten übertragen. Mamaducks erben die gleiche Funktionalität der Ducklinks, kann aber auch Nachrichten empfangen. Auf diese Weise können die Mamaducks Nachrichten von Ducklinks und/oder anderen Mamaducks entlang des Netzwerks (zum Gateway) weitergeben. Papaducks sind der Endpunkt des Netzwerks, in dem alle Daten gesammelt werden und in die Cloud gespeichert oder gedrückt werden können. (Kostenlose Tier -Cloud -DMS -Plattform in Beta! Erreichen Sie uns auf Discord, um weitere Informationen zu erhalten.)
Schauen Sie sich das Wiki an, um zu erfahren, wie Sie Ihr eigenes Clusterduck -Netzwerk erstellen. Besuchen Sie die ClusterDuck Protocol -Website für weitere Informationen zu Projekten, die die Community aufbaut. Sie können sich direkt in unsere Discord -Community wenden, um Fragen zu erhalten und/oder mit der Community zusammenzuarbeiten.
Um das ClusterDuck -Protokoll zu verwenden, folgen Sie dem Installationshandbuch.
Beginnend mit Release 4.0.0 haben wir Unit -Tests mit der Platformio Test Framework unity zur Verfügung
Die Tests befinden sich im Ordner ClusterDuckProtocol/test . Diese Tests sind Unit -Tests, die die öffentlich zugängliche CDP -APIs validieren. Sie müssen jedoch auf einem Gerät ausgeführt werden. Dies bedeutet, dass Sie ein Gerät mit Ihrem Entwicklungsgerät anschließen und die Tests für das Gerät erstellen müssen. Der Befehl für den Plattform -IO test wird die Tests erstellt, bereitstellen und ausführen und die Ergebnisse in Ihrer Terminalkonsole zurückgeben.
Unit -Tests sind großartig, um Probleme zu erkennen, bevor sie zur Veröffentlichung geschafft werden. Daher ist es nicht nur wichtig, sie auszuführen, um Ihre Änderungen zu validieren, sondern sie kontinuierlich zu aktualisieren.
Die platformio.ini definiert Umgebungskonfigurationen für unterstützte Gremien. Zum Beispiel finden Sie die Konfiguration für Tests auf dem Heltec Lora V3 Arduino Board
[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
Hier sind die Schritte zum Ausführen der Tests (unter Linux oder Mac OS). Dies setzt voraus, dass Platformio in Ihrem System installiert ist.
Weitere Informationen zum Einrichten Ihrer Entwicklungsumgebung finden Sie im Entwicklerhandbuch.
# 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 -------------------------------------------------------------
Wir veranstalten montags um 14 Uhr EST ein zweiwöchentliches CDP-Rathaus. Das Rathaus ist der richtige Ort, um Aktualisierungen über Protokoll zu erhalten, Ihre Fragen zu CDP zu beantworten und laufende Projekte zu besprechen. Alle aktuellen Projekte sind in einer öffentlichen Roadmap in Github -Projekten dokumentiert.
Bitte lesen Sie bei der Verhaltenskodex, den Vorgang zum Einreichen von ClusterDuck -Protokollverbesserungen und zum Beitritt zu unseren Rathäusern und Livestreams.
Dieses Projekt unterliegt der technischen Charta und wird von seinem technischen Lenkungsausschuss geleitet.
Dieses Projekt ist unter der Apache 2 -Lizenz lizenziert - Einzelheiten finden Sie in der Lizenzdatei.