微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > Zigbee 协调器配置终端进行电量余量定时报告,但实际未生效...

Zigbee 协调器配置终端进行电量余量定时报告,但实际未生效...

时间:10-02 整理:3721RD 点击:

协调器配置终端进行电量余量定时报告,协调器发送了配置数据,终端也回复了状态为成功,但终端却没有在配置的时间内进行属性汇报,请大神指点一下,

代码如下:

  {
    afAddrType_t      dstAddr;
    zclCfgReportCmd_t * cfgReportCmd = osal_mem_alloc( sizeof ( zclCfgReportCmd_t ) + sizeof(zclCfgReportRec_t) );
    static uint8 seqNum = 0;    
    
    dstAddr.addr.shortAddr = pInMsg->srcAddr.addr.shortAddr;
    dstAddr.addrMode = afAddr16Bit;
    dstAddr.endPoint = pInMsg->srcAddr.endPoint;
    dstAddr.panId = pInMsg->srcAddr.panId;
    
    cfgReportCmd->numAttr = 1;
    cfgReportCmd->attrList[0].direction = 0;
    cfgReportCmd->attrList[0].attrID = ATTRID_POWER_CFG_BATTERY_PERCENTAGE_REMAINING;
    cfgReportCmd->attrList[0].dataType = ZCL_DATATYPE_UINT8;
    cfgReportCmd->attrList[0].minReportInt = 20;
    cfgReportCmd->attrList[0].maxReportInt = 40;
    cfgReportCmd->attrList[0].timeoutPeriod = 0;
    *cfgReportCmd->attrList[0].reportableChange = 0;
    
    zcl_SendConfigReportCmd( SAMPLEDOORLOCKCONTROLLER_ENDPOINT,
                            (afAddrType_t *)&dstAddr,
                            ZCL_CLUSTER_ID_GEN_POWER_CFG,
                            cfgReportCmd,
                            ZCL_FRAME_CLIENT_SERVER_DIR,
                            FALSE, seqNum++ );
    
    osal_mem_free(cfgReportCmd);
  }

下面是抓包的配置数据和收到的回复:


又发现一个问题,现在终端一直在发送Data Request,不知道是什么意思,是否是表示自己处于可接收数据状态,可随时接收协调器下发的配置信息?这样一直发送数据,不利于终端的节能啊。

求大神回复,看了别人的提问,帮自己解决了一些问题,在此也希望我的问题及大家的回复可以帮到更多的人!

你看下report change,意思是当report的数据之间的变化超过这个值的时候,再report,否则按照max interval来report

data request是指向父设备轮询取数据。如果你的协调器发送数据给节点不频繁的话,你可以把这个poll rate改大

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top