The ClusterDuck Protocol (CDP), sebuah proyek sumber terbuka yang inovatif di bawah Linux Foundation, merupakan lompatan yang signifikan dalam komunikasi IoT, memanfaatkan kekuatan bandwidth rendah dan daya rendah seperti teknologi Lora. Berbeda dari Lorawan, protokol ini menggunakan kemampuan point-to-multipoint Lora untuk memfasilitasi komunikasi yang kuat di lingkungan yang beragam.
Protokol clusterduck diciptakan oleh Owl Integrations (sebelumnya Project Owl) untuk memberikan pengembang perpustakaan canggih untuk membuat jaringan komunikasi terdistribusi, yang dirancang untuk berbagai aplikasi IoT. Sejak penciptaannya, visi untuk protokol clusterduck telah tumbuh di luar melayani bencana alam ke peristiwa besar (kemacetan seluler), jaringan sensor, dan banyak lagi.
Jaringan terdiri dari beberapa node yang disebut bebek . Ada 3 jenis dasar bebek dalam jaringan clusterduck: DuckLink, Mamaduck, dan Papaduck. DuckLink berfungsi sebagai node tepi yang hanya mengirimkan data. Mamaducks mewarisi fungsionalitas yang sama dari ducklink, tetapi juga dapat menerima pesan. Ini memungkinkan Mamaducks untuk menyampaikan pesan dari ducklink dan/atau mamaducks lainnya di sepanjang jaringan (menuju gateway). Papaducks adalah titik akhir dari jaringan di mana semua data dikumpulkan dan dapat disimpan atau didorong ke dalam cloud. (Platform DMS Cloud Tier Gratis di Beta! Jangkau kami di Perselisihan untuk info lebih lanjut)
Lihat wiki untuk mempelajari cara membangun jaringan clusterduck Anda sendiri. Jangan ragu untuk mengunjungi situs web Protokol ClusterDuck untuk informasi lebih lanjut tentang proyek -proyek yang sedang dibangun oleh masyarakat. Anda dapat menjangkau langsung komunitas perselisihan kami untuk setiap pertanyaan dan/atau untuk bekerja dengan komunitas.
Untuk menggunakan protokol clusterduck, ikuti manual instalasi.
Dimulai dengan rilis 4.0.0 Kami memiliki tes unit yang tersedia dengan Platformio Test Framework unity
Tes terletak di folder ClusterDuckProtocol/test . Tes ini adalah tes unit karena mereka memvalidasi API yang dapat diakses secara publik. Namun mereka harus dijalankan pada perangkat. Ini berarti Anda harus menghubungkan perangkat ke mesin pengembangan Anda dan membangun tes untuk berjalan di perangkat. Platform IO test Command akan membangun, menggunakan, dan menjalankan tes dan melaporkan kembali hasilnya pada konsol terminal Anda.
Tes unit sangat baik dalam mendeteksi masalah sebelum mereka sampai pada rilis, jadi penting tidak hanya untuk menjalankannya untuk memvalidasi perubahan Anda, tetapi untuk terus memperbaruinya.
Proyek platformio.ini mendefinisikan konfigurasi lingkungan untuk papan yang didukung. Misalnya di bawah ini adalah konfigurasi untuk pengujian di papan 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
Berikut adalah langkah -langkah untuk menjalankan tes (di Linux atau Mac OS). Ini mengasumsikan Anda memiliki platformio yang diinstal pada sistem Anda.
Untuk detail lebih lanjut tentang pengaturan lingkungan pengembangan Anda, silakan merujuk ke panduan pengembang.
# 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 -------------------------------------------------------------
Kami menyelenggarakan Balai Kota CDP dua mingguan pada hari Senin pukul 14:00 EST. Balai Kota adalah tempat untuk mendapatkan pembaruan tentang protokol, mendapatkan pertanyaan Anda tentang CDP yang dijawab, dan mendiskusikan proyek yang sedang berlangsung. Semua proyek saat ini didokumentasikan dalam peta jalan umum dalam proyek GitHub.
Harap baca Contributing.md untuk perincian tentang kode perilaku kami, proses untuk mengirimkan perbaikan protokol clusterduck, dan cara bergabung dengan balai kota dan streaming langsung kami.
Proyek ini diatur oleh piagam teknisnya dan dipimpin oleh komite pengarah teknisnya.
Proyek ini dilisensikan di bawah lisensi Apache 2 - lihat file lisensi untuk detailnya.