Linux Foundation의 혁신적인 오픈 소스 프로젝트 인 CDP (Clusterduck Protocol)는 IoT 통신의 상당한 도약으로 LORA 기술과 같은 낮은 대역폭 및 저전력의 힘을 활용합니다. Lorawan과는 달리이 프로토콜은 Lora의 포인트-다중 지점 기능을 활용하여 다양한 환경에서 강력한 커뮤니케이션을 촉진합니다.
ClusterDuck 프로토콜은 올빼미 통합 (이전 Project OWL)에 의해 생성되어 개발자에게 다양한 IoT 애플리케이션에 맞게 분산 된 통신 네트워크 제작을위한 고급 라이브러리를 제공했습니다. Clusterduck 프로토콜에 대한 비전은 생성 된 이후 자연 재해를 대규모 이벤트 (셀룰러 혼잡), 센서 네트워크 등으로 서비스하는 것 이상으로 성장했습니다.
네트워크는 Ducks 라는 여러 노드로 구성됩니다. ClusterDuck 네트워크에는 Ducklink, Mamaduck 및 Papaduck의 3 가지 기본 유형이 있습니다. Ducklinks는 데이터 만 전송하는 에지 노드 역할을합니다. Mamaducks는 Ducklinks의 동일한 기능을 상속하지만 메시지를받을 수도 있습니다. 이를 통해 Mamaducks는 네트워크를 따라 오리 링크 및/또는 다른 Mamaducks (게이트웨이 쪽)에서 메시지를 전달할 수 있습니다. Papaducks는 모든 데이터가 수집되어 클라우드에 저장 또는 밀어 넣을 수있는 네트워크의 종말점입니다. (베타의 무료 계층 클라우드 DMS 플랫폼! 더 많은 정보를 위해 불화로 연락하십시오)
Wiki를 확인하여 자신의 ClusterDuck 네트워크를 구축하는 방법을 배우십시오. 커뮤니티가 구축하는 프로젝트에 대한 자세한 내용은 ClusterDuck 프로토콜 웹 사이트를 방문하십시오. 질문을 받거나 커뮤니티와 함께 일하기 위해 불화 커뮤니티에 직접 연락 할 수 있습니다.
ClusterDuck 프로토콜을 사용하려면 설치 설명서를 따르십시오.
릴리스 4.0.0부터 플랫폼 테스트 프레임 워크 unity 와 함께 사용 가능한 단위 테스트가 있습니다.
테스트는 ClusterDuckProtocol/test 폴더에 있습니다. 이 테스트는 CDP가 공개적으로 액세스 가능한 API를 검증하므로 단위 테스트입니다. 그러나 장치에서 실행해야합니다. 즉, 장치를 개발 시스템에 연결하고 장치에서 실행할 테스트를 구축해야합니다. 플랫폼 IO test 명령은 테스트를 빌드, 배포 및 실행하고 터미널 콘솔의 결과를 다시보고합니다.
단위 테스트는 릴리스에 대한 문제를 감지하는 데 큰 도움이되므로 변경 사항을 검증하기 위해 실행하는 것이 아니라 지속적으로 업데이트하는 것이 중요합니다.
Project platformio.ini 지원되는 보드의 환경 구성을 정의합니다. 예를 들어 아래는 Heltec Lora V3 Arduino Board의 테스트 구성입니다.
[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시 EST에 격주 CDP 시청을 주최합니다. 시청은 프로토콜에 대한 업데이트를 받고 CDP에 대한 질문을 받고 진행중인 프로젝트에 대해 논의 할 수있는 장소입니다. 모든 현재 프로젝트는 GitHub 프로젝트의 공개 로드맵에 문서화되어 있습니다.
당사의 행동 강령에 대한 자세한 내용, ClusterDuck 프로토콜 개선을 제출하는 프로세스 및 시청 및 라이브 스트림에 가입하는 방법에 대한 자세한 내용은 Contributing.Md를 읽으십시오.
이 프로젝트는 기술 헌장의 지배를 받고 기술 운영위원회가 이끄는 것입니다.
이 프로젝트는 Apache 2 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.