Le protocole Clusterduck (CDP), un projet innovant de source ouverte sous la Fondation Linux, représente un saut significatif dans les communications IoT, exploitant la puissance de la bande passante faible et de la faible puissance telle que la technologie LORA. Dis distinct de Lorawan, ce protocole utilise les capacités point à-multipoint de Lora pour faciliter une communication robuste dans divers environnements.
Le protocole ClusterDuck a été créé par les intégrations OWL (anciennement Project OWL) pour fournir aux développeurs une bibliothèque avancée pour fabriquer des réseaux de communication distribués, adaptés à une variété d'applications IoT. Depuis sa création, la vision du protocole Clusterduck s'est développée au-delà de l'entretien des catastrophes naturelles à de grands événements (congestion cellulaire), des réseaux de capteurs, etc.
Le réseau est composé de plusieurs nœuds appelés Ducks . Il existe 3 types de base de canards dans un réseau de clusterduck: DuckLink, Mamaduck et Papaduck. Les liens de canard servent de nœuds de bord qui transmettent uniquement les données. Les mamaducks héritent de la même fonctionnalité des liens de canard, mais peuvent également recevoir des messages. Cela permet aux Mamaducks de relayer les messages des liens de canard et / ou d'autres mamaducks le long du réseau (vers la passerelle). Les papaducks sont le point final du réseau où toutes les données sont collectées et peuvent être stockées ou poussées dans le cloud. (plate-forme DMS cloud de niveau gratuit en bêta! Contactez-nous sur Discord pour plus d'informations)
Consultez le wiki pour apprendre à créer votre propre réseau ClusterDuck. N'hésitez pas à visiter le site Web du protocole Clusterduck pour plus d'informations sur les projets que la communauté construit. Vous pouvez contacter directement notre communauté Discord pour toutes les questions et / ou travailler avec la communauté.
Pour utiliser le protocole ClusterDuck, suivez le manuel d'installation.
En commençant par la version 4.0.0, nous avons des tests unitaires disponibles avec l' unity du cadre de test de plateforme
Les tests sont situés dans le dossier ClusterDuckProtocol/test . Ces tests sont des tests unitaires car ils valident les API accessibles au public du CDP. Cependant, ils doivent être exécutés sur un appareil. Cela signifie que vous devez connecter un appareil à votre machine de développement et créer les tests pour fonctionner sur l'appareil. La commande test de plate-forme IO créera, déploie et exécutera les tests et rapportera les résultats sur votre console de terminal.
Les tests unitaires sont excellents pour détecter les problèmes avant de se rendre à la version, il est donc important non seulement de les exécuter pour valider vos modifications, mais pour les mettre à jour en continu.
Le projet platformio.ini définit les configurations environnementales pour les cartes prises en charge. Par exemple, ci-dessous est la configuration des tests sur la carte 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
Voici les étapes pour exécuter les tests (sur Linux ou Mac OS). Cela suppose que vous avez une plate-forme installée sur votre système.
Pour plus de détails sur la mise en place de votre environnement de développement, veuillez vous référer au Guide du développeur.
# 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 -------------------------------------------------------------
Nous hébergeons une hôtel de ville de CDP bihebdomadaire le lundi à 14 h HNE. La mairie est l'endroit idéal pour obtenir des mises à jour sur le protocole, obtenir vos questions sur le CDP et discuter des projets en cours. Tous les projets actuels sont documentés dans une feuille de route publique dans les projets GitHub.
Veuillez lire Contributing.MD pour plus de détails sur notre code de conduite, le processus de soumission des améliorations du protocole Clusterduck et de la façon de rejoindre nos mairies et nos difficultés.
Ce projet est régi par sa charte technique et dirigé par son comité de direction technique.
Ce projet est concédé sous licence Apache 2 - voir le fichier de licence pour plus de détails.