Alvin Chen:
这个是你节点发了个data request 之后没有ack ,然后节点认为collector 掉线了。也就是说你的sensor找不到你的collector
user5322468:
回复 Alvin Chen:
sensor底层会默认重发 三次啊,但是抓包只有一包或者二包,而且我的collector是没有挂掉的。collector的ACK回复是底层处理?
Alvin Chen:
回复 user5322468:
底层对的,距离很远吗?你试试原来的例程不做修改试一下,我自己上午还在玩没有出现这个问题.
user5322468:
回复 Alvin Chen:
原来的例子没有问题,我就是纳闷这个冲突是如何引起的。ACK的回复是根据什么来的, ApiMac_mlmeSetReqUint16(ApiMac_attribute_transactionPersistenceTime, 3000)。
因为我修改的地方比较多,ACK的无回复会有哪些因素会影响到?比如发送频率过快?我的sensor polling是发送数据3S一次,轮询三次后闭关。
user5322468:
回复 Alvin Chen:
这个种情况如何解释,ACK有回复,但是还是掉线。
Alvin Chen:
回复 user5322468:
建议你不要去修改collector 。只修改sensor的去试一下。此外建议你自己排除一下程序,或者debug一下看看到底哪里有问题。
user5322468:
回复 Alvin Chen:
sensor中没有修改这个值呀,只有collector中有。ACK回复是咋返回的?
Alvin Chen:
回复 user5322468:
ACK就是你data request的收到的回复。 ACK是物理层的回复,用户无法操作。 我表述有问题 sensor 的poll 通过Collector_sendConfigRequest去设置。
user5322468:
回复 Alvin Chen:
sensor的polling和CONFIG_REPORTING_INTERVAL,我没有使用Collector_sendConfigRequest来设置,我是走的自己应用层设置的。
data request和ACK都是底层的操作,data request回调datacnfcb中来判断ACK?
Alvin Chen:
回复 user5322468:
dataCnfCB();下边的
else if(pDataCnf->status == ApiMac_status_noAck)
{
Sensor_msgStats.macAckFailures++;
}