主题中讨论的其他器件:SysConfig
工具与软件:
您好!
我正在使用最新的 SDK v7.41和定制 PHY 测试我们的一些基于15.4收集器/传感器项目的旧无线电、发现了一些奇怪的行为。 传感器可以加入网络并将数据发送到收集器、但收集器无法将数据发送到传感器。 传感器节点配置为每分钟轮询收集器一次数据、但收集器将在数据发送后5秒调用以下函数:
/*! * @brief MAC Data Confirm callback. * * @param pDataCnf - pointer to the data confirm information */ static void dataCnfCB(ApiMac_mcpsDataCnf_t *pDataCnf)
状态代码0xF0如所示
/*! General MAC Status values */ typedef enum { //...... /*! The associate response, disassociate request, or indirect data transmission failed because the peer device did not respond before the transaction expired or was purged */ ApiMac_status_transactionExpired = 0xF0, //...... } ApiMac_status_t;
当自定义 PHY 关闭时、如果传感器节点在非信标和跳频模式下仍处于活动状态、则收集器可以正常向传感器发送数据。 如果传感器节点被关闭、在使用状态代码0xF0调用 dataCnfCb 之前、收集器等待的时间将超过 CONFIG_POLLING_INTERVAL。
当通过手动修改 ti_radio_config.c 将同一个自定义 PHY (WB-DSSS)加入15.4堆栈时、收集器也可以正常地向传感器节点发送数据。
我想可能的原因之一是收集器观察到针对传感器节点的缓存数据的5秒硬编码过期时间。 如果我将轮询间隔设置为短于5秒(例如2秒)、传感器节点将接收收集器发送的部分数据、但不是所有数据。 这也有其他问题。
请告知:
谢谢!
ZL