zstack 读取属性
Zstack read attribute
我想知道如何使用 TI zstack 读取本地和远程 zigbee 设备上的某些属性,以及如何将其值赋给 uart。我是 zstack 初学者。我设法将 uart 与 usb 到 uart 转换器一起使用,并且可以将数据发送到我的电脑。所以我需要知道如何获取属性数据。我已阅读 api 手册但不明白如何使用 zcl_SendRead 函数。谢谢。
遵循 "Z-Stack ZCL API.pdf" 的“3.3 发送读取”部分,这应该包含足够的信息以将读取属性发送到正确的目标设备。 readCmd 的内容是一组属性 ID,特定于您要读取的属性。您将需要查阅 ZCL 规范或设备文档以确定正确的属性 ID 和集群 ID。
发送读取属性的示例如下所示。它从具有短地址 0x1234 和端点 0x1 的设备读取 ATTRID_MS_TEMPERATURE_MEASURED_VALUE 属性(来自 ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT 集群)。
afAddrType_t dstAddr;
dstAddr.addrMode = afAddr16Bit;
dstAddr.addr.shortAddr = 0x1234; //set this to correct address
dstAddr.addr.endPoint = 0x1; // set this to correct ep
zclReadCmd_t *cmd = osal_mem_alloc((sizeof zclReadCmd_t) + sizeof(uint16));
cmd->numAttr = 1;
cmd->attrID[0] = ATTRID_MS_TEMPERATURE_MEASURED_VALUE;
zcl_SendRead( SAMPLETHERMOSTAT_ENDPOINT, &dstAddr,
ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT,
&cmd, ZCL_FRAME_CLIENT_SERVER_DIR,
hdr->fc.disableDefaultRsp, hdr->transSeqNum );
发送此命令后,您需要处理收到的响应,您会注意到这些函数包含在 ZStack 示例应用程序中但未填充,例如 SampleSwitch 应用程序具有 zclSampleSw_ProcessInReadRspCmd() 函数, 这将被调用来处理读取的 attr 响应,您将需要填充它以执行您想对响应执行的操作。
此致,
TC.
我想知道如何使用 TI zstack 读取本地和远程 zigbee 设备上的某些属性,以及如何将其值赋给 uart。我是 zstack 初学者。我设法将 uart 与 usb 到 uart 转换器一起使用,并且可以将数据发送到我的电脑。所以我需要知道如何获取属性数据。我已阅读 api 手册但不明白如何使用 zcl_SendRead 函数。谢谢。
遵循 "Z-Stack ZCL API.pdf" 的“3.3 发送读取”部分,这应该包含足够的信息以将读取属性发送到正确的目标设备。 readCmd 的内容是一组属性 ID,特定于您要读取的属性。您将需要查阅 ZCL 规范或设备文档以确定正确的属性 ID 和集群 ID。
发送读取属性的示例如下所示。它从具有短地址 0x1234 和端点 0x1 的设备读取 ATTRID_MS_TEMPERATURE_MEASURED_VALUE 属性(来自 ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT 集群)。
afAddrType_t dstAddr;
dstAddr.addrMode = afAddr16Bit;
dstAddr.addr.shortAddr = 0x1234; //set this to correct address
dstAddr.addr.endPoint = 0x1; // set this to correct ep
zclReadCmd_t *cmd = osal_mem_alloc((sizeof zclReadCmd_t) + sizeof(uint16));
cmd->numAttr = 1;
cmd->attrID[0] = ATTRID_MS_TEMPERATURE_MEASURED_VALUE;
zcl_SendRead( SAMPLETHERMOSTAT_ENDPOINT, &dstAddr,
ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT,
&cmd, ZCL_FRAME_CLIENT_SERVER_DIR,
hdr->fc.disableDefaultRsp, hdr->transSeqNum );
发送此命令后,您需要处理收到的响应,您会注意到这些函数包含在 ZStack 示例应用程序中但未填充,例如 SampleSwitch 应用程序具有 zclSampleSw_ProcessInReadRspCmd() 函数, 这将被调用来处理读取的 attr 响应,您将需要填充它以执行您想对响应执行的操作。
此致, TC.