Clusterduck Protocol (CDP) ซึ่งเป็นโครงการโอเพ่นซอร์สที่เป็นนวัตกรรมภายใต้มูลนิธิ Linux แสดงให้เห็นถึงการก้าวกระโดดที่สำคัญในการสื่อสาร IoT การควบคุมพลังของแบนด์วิดท์ต่ำและพลังงานต่ำเช่นเทคโนโลยี LORA แตกต่างจาก Lorawan โปรโตคอลนี้ใช้ความสามารถแบบจุดต่อหลายจุดของ Lora เพื่ออำนวยความสะดวกในการสื่อสารที่แข็งแกร่งในสภาพแวดล้อมที่หลากหลาย
โปรโตคอล Clusterduck ถูกสร้างขึ้นโดย OWL Integrations (เดิมชื่อ Project OWL) เพื่อให้นักพัฒนามีห้องสมุดขั้นสูงสำหรับการสร้างเครือข่ายการสื่อสารแบบกระจายซึ่งเหมาะสำหรับแอปพลิเคชัน IoT ที่หลากหลาย นับตั้งแต่การสร้างวิสัยทัศน์สำหรับโปรโตคอล Clusterduck ได้เติบโตขึ้นนอกเหนือจากการให้บริการภัยพิบัติทางธรรมชาติกับเหตุการณ์ขนาดใหญ่ (ความแออัดของเซลล์) เครือข่ายเซ็นเซอร์และอื่น ๆ
เครือข่ายประกอบด้วยหลายโหนดที่เรียกว่า เป็ด มีเป็ดพื้นฐาน 3 ประเภทในเครือข่าย Clusterduck: Ducklink, Mamaduck และ Papaduck Ducklinks ทำหน้าที่เป็นโหนดขอบที่ส่งข้อมูลเท่านั้น Mamaducks สืบทอดฟังก์ชั่นเดียวกันของ Ducklinks แต่ยังสามารถรับข้อความได้ สิ่งนี้ช่วยให้ Mamaducks ถ่ายทอดข้อความจาก Ducklinks และ/หรือ Mamaducks อื่น ๆ ตามเครือข่าย (ไปทางเกตเวย์) Papaducks เป็นจุดสิ้นสุดของเครือข่ายที่รวบรวมข้อมูลทั้งหมดและสามารถจัดเก็บหรือผลักดันเข้าสู่คลาวด์ (แพลตฟอร์ม DMS DMS ฟรีในเบต้า! เข้าถึงเราใน Discord สำหรับข้อมูลเพิ่มเติม)
ตรวจสอบวิกิเพื่อเรียนรู้วิธีสร้างเครือข่าย Clusterduck ของคุณเอง อย่าลังเลที่จะเยี่ยมชมเว็บไซต์ Clusterduck Protocol สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงการที่ชุมชนกำลังสร้าง คุณสามารถเข้าถึงชุมชน Discord ของเราโดยตรงสำหรับคำถามและ/หรือเพื่อทำงานกับชุมชน
หากต้องการใช้โปรโตคอล Clusterduck ตามคู่มือการติดตั้ง
เริ่มต้นด้วย Release 4.0.0 เรามีการทดสอบหน่วยพร้อมกับ Platformio Test Framework unity
การทดสอบอยู่ในโฟลเดอร์ ClusterDuckProtocol/test การทดสอบเหล่านี้เป็นการทดสอบหน่วยเนื่องจากตรวจสอบ API ที่สามารถเข้าถึงได้ของ CDP อย่างไรก็ตามพวกเขาจะต้องทำงานบนอุปกรณ์ ซึ่งหมายความว่าคุณต้องเชื่อมต่ออุปกรณ์เข้ากับเครื่องพัฒนาของคุณและสร้างการทดสอบเพื่อทำงานบนอุปกรณ์ คำสั่ง test แพลตฟอร์ม IO จะสร้างปรับใช้และเรียกใช้การทดสอบและรายงานผลลัพธ์กลับมาที่คอนโซลเทอร์มินัลของคุณ
การทดสอบหน่วยนั้นยอดเยี่ยมในการตรวจจับปัญหาก่อนที่พวกเขาจะเปิดตัวดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องเรียกใช้เพื่อตรวจสอบการเปลี่ยนแปลงของคุณ แต่เพื่ออัปเดตอย่างต่อเนื่อง
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 -------------------------------------------------------------
เราเป็นเจ้าภาพศาลากลาง CDP สองสัปดาห์ในวันจันทร์เวลา 14.00 น. EST ศาลากลางเป็นสถานที่ที่จะได้รับการอัปเดตเกี่ยวกับโปรโตคอลรับคำถามของคุณเกี่ยวกับการตอบ CDP และหารือเกี่ยวกับโครงการที่กำลังดำเนินอยู่ โครงการปัจจุบันทั้งหมดได้รับการบันทึกไว้ในแผนงานสาธารณะในโครงการ GitHub
โปรดอ่านรายละเอียดเกี่ยวกับจรรยาบรรณของเรากระบวนการในการส่งการปรับปรุงโปรโตคอล Clusterduck และวิธีการเข้าร่วมศาลากลางจังหวัดและการถ่ายทอดสดของเรา
โครงการนี้อยู่ภายใต้กฎบัตรทางเทคนิคและนำโดยคณะกรรมการกำกับดูแลด้านเทคนิค
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache 2 - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด