Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hi,
I am testing some of our old radio based on 15.4 collector/sensor projects with the latest SDK v7.41 and custom phy, and found some bizarre behavior. sensor can join network and send data to collector, but collector cannot send data to sensor. Sensor nodes are configured to poll collector for data once per minute, but collector will call the following function 5 seconds after data is sent:
/*! * @brief MAC Data Confirm callback. * * @param pDataCnf - pointer to the data confirm information */ static void dataCnfCB(ApiMac_mcpsDataCnf_t *pDataCnf)
with status code 0xF0 as in
/*! 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;
When custom phy is turned off, collector has no problem sending data to sensor if sensor node is still active in both non-beacon and frequency hopping modes. If sensor node is turned off, collector will wait longer than CONFIG_POLLING_INTERVAL before calling dataCnfCb with status code 0xF0.
When the same custom phy (WB-DSSS) is hacked into 15.4 stack by manually modifying ti_radio_config.c, collector also has no trouble sending data to sensor nodes.
I guess one of the likely causes is that collector observes a hard coded 5 second expiration time for cached data for sensor nodes. If I set polling interval at something shorter than 5 seconds, such as 2, sensor node will receive some but not all the data sent from collector. So there is problem something else as well.
Please advise,
Thanks,
ZL