您好!
我注意到 Bitmap 32似乎是属性的最大值。 如果我尝试报告 Bitmap 48的属性、则不会发出任何值。 什么会阻止 CC2530报告大于 Bitmap 32的值?
您可以看到附加的日志中的差异。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我尝试设置大于4的长度(ZCL_datatype_BITMAP32的长度)、例如8 (对于 ZCL_datatype_BITMAP64)。 我查看了日志、但属性似乎仅限于4个长度。 如何解决此问题?
您可以将此日志与 Bitmap 32日志进行比较。
对于 Bitmap 64、我尝试发送了:
test.addr1 = 0;
test.addr2 = 0;
test.addr3 = 0;
test.Addr4 = 0x0003;
每个值都是 uint16。 我在 Ubiqua 中看不到正确显示的值。 (请注意、这是我用于附加日志的值)
但是、对于 Bitmap 32、当我尝试发送时:
test.addr1 = 0;
test.addr2 = 0x0003;
每个值都是 uint16。 我在 Ubiqua 中看到正确的值。 (请注意、这不是用于我先前附加的日志的值)。
这是我的代码。 它可能有什么问题?
typedef struct { uint16 addr1; uint16 addr2; uint16 addr3; uint16 Addr4; }srcAddr_t; -------------------- srcAddr_t test; ------------------------------------------------------- test.addr1 = 0; test.addr2 = 0; test.addr3 = 0; test.Addr4 = 0x0003; --- { ZCL_CLUSTER_ID_RT_TABLE、 {//属性记录 ATTRID_RT_TABLE:1、 ZCL_datatype_BITMAP64、 ACCESS_CONTRAL_READ、 (空*)测试 } }, ------------------------------------------------------- 案例 ZCL_datatype_BITMAP64: 案例 ZCL_datatype_double_PREC: 案例 ZCL_datatype_IEEE_ADDR: 案例 ZCL_datatype_uint64: 案例 ZCL_datatype_int64: Len = 8; 中断;
我尝试了以下操作、但值仍然不正确。
uint16 array[]={0x0000、0x0000、0x0000、0x0001};
插孔、
在 zcl.c 中,您是否在 zclSerializeData()函数中添加了案例 ZCL_datatype_BITMAP64/ZCL_datatype_BITMAP48?
案例 ZCL_datatype_double_PREC: 案例 ZCL_datatype_IEEE_ADDR: 案例 ZCL_datatype_BITMAP64: 案例 ZCL_datatype_uint64: 案例 ZCL_datatype_int64: pStr =(uint8*) attrData; buf = zcl_memcpy (buf、pStr、8); 中断;