Linux Foundationに基づく革新的なオープンソースプロジェクトであるClusterDuckプロトコル(CDP)は、IoT通信の大幅な飛躍を表し、LORAテクノロジーなどの低帯域幅と低電力のパワーを活用しています。 Lorawanとは異なり、このプロトコルはLoraのポイントツーマルチポイント機能を利用して、多様な環境での堅牢な通信を促進します。
ClusterDuckプロトコルは、Owl Integrations(以前のProject Owl)によって作成され、さまざまなIoTアプリケーションに合わせた分散通信ネットワークを作成するための高度なライブラリを開発者に提供しました。その作成以来、ClusterDuckプロトコルのビジョンは、自然災害のサービスを超えて大規模なイベント(細胞輻輳)、センサーネットワークなどに成長してきました。
ネットワークは、 Ducksと呼ばれる複数のノードで構成されています。 ClusterDuckネットワークには、Ducklink、Mamaduck、Papaduckの3つの基本的なタイプのアヒルがあります。 Ducklinksは、データのみを送信するエッジノードとして機能します。 MamaducksはDucklinksの同じ機能を継承しますが、メッセージを受信することもできます。これにより、Mamaducksは、ネットワークに沿ったDucklinksおよび/または他のMamaducksからのメッセージ(ゲートウェイに向かって)を中継することができます。パパダックスは、すべてのデータが収集され、保存またはクラウドに押し上げることができるネットワークのエンドポイントです。 (ベータの無料ティアクラウドDMSプラットフォーム!詳細については、Discordでご連絡ください)
Wikiをチェックして、独自のClusterDuckネットワークを構築する方法を学びます。コミュニティが構築しているプロジェクトの詳細については、ClusterDuck Protocol Webサイトにアクセスしてください。私たちの不一致コミュニティで、質問やコミュニティと協力するために直接手を差し伸べることができます。
ClusterDuckプロトコルを使用するには、インストールマニュアルに従ってください。
リリース4.0.0から始めて、Platformioテストフレームワークunityで利用可能なユニットテストがあります
テストはClusterDuckProtocol/testフォルダーにあります。これらのテストは、CDPが公開されているAPIを検証するため、単体テストです。ただし、デバイスで実行する必要があります。これは、デバイスを開発マシンに接続し、デバイスで実行するためにテストを構築する必要があることを意味します。プラットフォームIO testコマンドは、テストを構築、展開、実行し、ターミナルコンソールの結果を報告します。
ユニットテストは、リリースに到達する前に問題を検出するのに最適なため、変更を検証するためだけでなく、継続的に更新することが重要です。
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 -------------------------------------------------------------
月曜日の午後2時に隔週CDPタウンホールを開催します。タウンホールは、プロトコルの最新情報を入手し、CDPの回答に関する質問を取得し、進行中のプロジェクトについて話し合う場所です。現在のすべてのプロジェクトは、GitHubプロジェクトの公開ロードマップに記録されています。
私たちの行動規範、ClusterDuckプロトコルの改善を提出するプロセス、および市庁舎とライブストリームへの参加方法については、Converting.mdをお読みください。
このプロジェクトは、技術憲章によって管理され、技術運営委員会が率いています。
このプロジェクトは、Apache 2ライセンスに基づいてライセンスされています - 詳細については、ライセンスファイルを参照してください。