Протокол ClusterDuck (CDP), инновационный проект с открытым исходным кодом в рамках Foundation Linux, представляет собой значительный скачок в связи с IoT, используя силу низкой пропускной способности и низкой мощности, такой как технология LORA. В отличие от Lorawan, этот протокол использует возможности Лоры, чтобы способствовать устойчивому общению в различных средах.
Протокол ClusterDuck был создан Integrations OWL (ранее Project OWL), чтобы предоставить разработчикам передовую библиотеку для создания распределенных сетей связи, адаптированных для различных приложений IoT. С момента своего создания видение протокола ClusterDuck вышло за пределы обслуживания стихийных бедствий для крупных событий (клеточная затора), сенсорные сети и многое другое.
Сеть состоит из нескольких узлов, называемых утками . В сети ClusterDuck есть 3 основных типа уток: утиная связь, мамадук и пападук. Уставные линии служат краевыми узлами, которые передают только данные. Mamaducks наследуют ту же функциональность, что и утяные линии, но также могут получать сообщения. Это позволяет Mamaducks передавать сообщения из утяных связей и/или других мамадуков вдоль сети (в направлении шлюза). Пападаки являются конечной точкой сети, где все данные собираются и могут храниться или подняться в облако. (Бесплатная платформа облачных DMS в бета -версии! Обратитесь к нам на Discord для получения дополнительной информации)
Проверьте вики, чтобы узнать, как создать свою собственную сеть ClusterDuck. Не стесняйтесь посетить веб -сайт протокола ClusterDuck для получения дополнительной информации о проектах, которые создает сообщество. Вы можете обратиться непосредственно в нашем сообществе Discord по любым вопросам и/или для работы с сообществом.
Чтобы использовать протокол ClusterDuck, следуйте руководству по установке.
Начиная с выпуска 4.0.0, у нас есть модульные тесты, доступные с платформой Test Framework unity
Тесты расположены в папке ClusterDuckProtocol/test . Эти тесты представляют собой модульные тесты, так как они подтверждают общедоступные API CDP. Однако они должны работать на устройстве. Это означает, что вы должны подключить устройство к своей машине разработки и создать тесты для запуска на устройстве. Команда test IO Platform будет создавать, развернуть и запускать тесты и сообщать о результатах на вашей терминальной консоли.
Модульные тесты отлично подходят для обнаружения проблем до того, как они дойдут до выпуска, поэтому важно не только запустить их для проверки ваших изменений, но для постоянного обновления их.
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). Это предполагает, что у вас установлена платформа в вашей системе.
Для получения более подробной информации о настройке вашей среды разработки, пожалуйста, обратитесь к руководству разработчика.
# 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 и обсудить текущие проекты. Все текущие проекты задокументированы в общественной дорожной карте в проектах GitHub.
Пожалуйста, прочитайте Anforming.md для получения подробной информации о нашем кодексе поведения, процессе подачи улучшений протокола ClusterDuck и того, как присоединиться к нашим ратушам и прямым службам.
Этот проект регулируется его технической хартией и во главе с его техническим руководящим комитетом.
Этот проект лицензирован по лицензии Apache 2 - для получения подробной информации см. Файл лицензии.