版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21352095/article/details/83089846
转载请注明出处,谢谢!
Newbit-Msming 2018-10-16
ZigBee 3.0 EmberZNet EFR32MG 学习笔记-目录
ZigBee 3.0 EmberZNet EFR32MG 学习笔记-8-Network Creator流程
环境:Windows 10、Simplicity Studio 4
SDK: EmberZnet SDK 6.4.0.0
工程:新建
-
在.isc文件为工程添加Network Creator插件。
-
调用这个函数建立集中式或者分布式网络:
emberAfPluginNetworkCreatorStart(bool centralizedNetwork)
函数里设置了信道掩码:
EMBER_AF_PLUGIN_NETWORK_CREATOR_CHANNEL_MASK 0x02108800
分别是:25,20,15,11。
- 调用上述函数后自动扫描网络和信道:scheduleScans(),可以改动的参数有扫描间隔,默认是:
EMBER_AF_PLUGIN_NETWORK_CREATOR_SCAN_DURATION 4
然后开始扫描:
a) EMBER_ACTIVE_SCAN
b) EMBER_ENERGY_SCAN
扫描类型:
/** An energy scan scans each channel for its RSSI value. */
EMBER_ENERGY_SCAN,
/** An active scan scans each channel for available networks. */
EMBER_ACTIVE_SCAN,
/** A fake scan that is used to turn off the radio. */
EMBER_START_RADIO_OFF_SCAN,
/** A green power channel delivery scan. */
EMBER_STACK_GP_CHANNEL_DELIVERY_SCAN,
EMBER_LAST_SCAN_TYPE = EMBER_STACK_GP_CHANNEL_DELIVERY_SCAN
- 扫描完成后,跳到:
scanHandler(EmberAfPluginScanDispatchScanResults *results)
handleScanComplete(EmberAfPluginScanDispatchScanResults *results)
- 然后根据扫描的结果尝试建立网络:
tryToFormNetwork(void)
如果建网成功,可以在:
emberAfPluginNetworkCreatorCompleteCallback();
查看网络参数。
- 如果只是想在一个信道建立网络就不用扫描信道了,直接可以使用:
emberAfPluginNetworkCreatorNetworkForm(boolcentralizedNetwork,
EmberPanId panId,
int8_t radioTxPower,
uint8_t channel),
指定网络模式,节点地址,功率,信道建立网络。