Hello,
I have the following configuration:
- Access Point CC1111 running as CDC USB device (powered on always)
- a few TX-only End Devices CC1110 (some of them are powered off and transmit the message at boot, some others are powered on)
- a few TX+RX (RX polling) End Devices CC1110 (powered on)
Running SimplicTI 1.1.0, all the code is designed as a polling system with care that timing requirements (e.g. for the usbUartProcess) are meet. The code of AP is based on AP_as_data_hub example, with the combination of the USB/CDC example. Although the proof-of-concept is working, we have problems that decrease the robustness of our prototype system which are described below.
If we slowly send messages from TX-only EDs one after another, they all get received. However, if we try to send the messages from different EDs almost-simultaneously (we boot them at the same time) some messages always get lost. And afterwards, the AP refuses to receive anything else or to link new devices.
All the input queues are set properly on the AP.
The retry within SimpliciTI is set properly on the EDs (the one with the random retry delay).
We take care that on the AP, we clean old LinkID's of the TX-only devices that power off after transmitting, so that we don't exceed NUM_CONECTIONS. Although I am not sure whether we should Unlink() or not, and if the second line is necessary:
SMPL_Unlink(deleteLinkID);
SMPL_Ioctl(IOCTL_OBJ_CONNOBJ, IOCTL_ACT_DELETE, &deleteLinkID);
sNumCurrentPeers--;
Still, it seems we have not thinked of everything as connections to the AP have problems...
Another issue regards those RX-polling EDs. Sometimes it seems that after booting, the RX-polling EDs simply flood the AP. The USB (UART) communication stops responding, others devices cannot link to the AP. Actually, we are limiting the period of RX polls within the ED application, so I am not sure where the problems derive from.
Moreover, it is impossible to debug the AP is we want to communicate over USB, since the USB timings are not meet (UsbUartProcess is not called often enough) and the USB device is not recognized by the PC.
To conclude, although all our code is based on SimpliciTI examples and join/link procedures are exactly followed, we are facing undeterministic problems regarding connections (linking, communication) to the AP.
Therefore, I would kindly like to ask if anyone can help me or point me to where should I search for enhancing the robustness of our application. I believe there is something we missed, and hope someone finds it more obvious than us.
Thank you for your help and Best regards,
D11