TI中文支持网
TI专业的中文技术问题搜集分享网站

cie设备没有回复enroll response

Zsack3.0协议栈         cie设备使用的是TI的IAS例程中的SampleCIE

enddevice enrollrequest             enddevice使用的例程是SampleFireDetector

if ( keys & HAL_KEY_SW_2 )
{
// zone enrollment request to CIE, only perform after writing cie address attribute value
HalLedSet ( HAL_LED_1, HAL_LED_MODE_OFF );
afAddrType_t zclCIE_Addr;

zclCIE_Addr.addrMode = (afAddrMode_t)(Addr16Bit); zclCIE_Addr.endPoint = AF_BROADCAST_ENDPOINT;

zclSS_IAS_Send_ZoneStatusEnrollRequestCmd( SAMPLEFIREDETECTOR_ENDPOINT,
&zclCIE_Addr,
zclSampleFireDetector_ZoneType,
22, 0, 1);

使用ubiqua抓包看到enroll request信息,cie并没有回复,会是什么原因呢?

YiKai Chen:

你的測試中有修改任何的原始碼嗎?

user5111697:

回复 YiKai Chen:

end device只使用了原始例程的
OSAL_SampleFireDetector.c
zcl_samplefiredetector.c
zcl_samplefiredetector_data.c
zcl_samplefiredetector.h
使用的是Switch模板 替换掉APP下的文件,打开了相应的宏定义
cie设备也是如此;没有任何修改
其中end device原始为:zclCIE_Addr.addrMode = (afAddrMode_t)(Addr64Bit);osal_memcpy(zclCIE_Addr.addr.extAddr, zclSampleFireDetector_IAS_CIE_Address, Z_EXTADDR_LEN);zclCIE_Addr.endPoint = AF_BROADCAST_ENDPOINT;
但是这样enroll request并没有发出,所以将其改为
zclCIE_Addr.addrMode = (afAddrMode_t)(Addr16Bit);
zclCIE_Addr.endPoint = AF_BROADCAST_ENDPOINT;

YiKai Chen:

回复 user5111697:

CIE向IAS Zone设备写CIE地址 如果设备支持IAS Zone Cluster,则向安防设备写入IAS_CIE_Address,這個写入是CIE的IEEE Andress ,所以發出enroll request 的zclCIE_Addr.addrMode 應該要是Addr64Bit不能夠用Addr16Bit

user5111697:

回复 YiKai Chen:

抓包数据看到了write response,说明写入 cie address是成功的,但是zclCIE_Addr.addrMode设备为Addr64Bit
时,没有enroll request 信息发出,只有使用Addr16Bit时才能发出enroll request 信息;
zclCIE_Addr.endPoint = AF_BROADCAST_ENDPOINT;这里的设置正确吗?

user5111697:

回复 user5111697:

enroll.zip

YiKai Chen:

回复 user5111697:

看到write response後設個斷點檢查zclSampleFireDetector_IAS_CIE_Address是否是正確值

赞(0)
未经允许不得转载:TI中文支持网 » cie设备没有回复enroll response
分享到: 更多 (0)