I'm currently porting the SDK v3.0.1 (for SN8000) in my project and have no OS on board. Therefor, I need a non-blocking mode for the SDK-API. My software will use the WLAN modem in a station mode and try to connet to an AP.
Using wwd_wifi_join() (wwd_wifi.h) causes a delay of ~3s, during this time my software is blocked.
I also tried wwd_wifi_join_specific(), but no difference. Tested with several APs and distances, but no difference.
I've added some debugouts to get an overview about the internal behavior. As I can see, the parameters (key, security type, ...) are transmitted to the WLAN module. After the SSID was send, the WICED driver waits for an join-result.
Is there any option/configuration/API (e. g. compiler setting) to make this process asynchon?
Can I register an callback for the join result and let the wwd_wifi_join() return immediately?
We do not recommend using WWD_ functions. What you are trying to do is already implemented in the SDK using ThreadX/NetXDuo and FreeRTOS/LwIP. You can take advantage of the RTOS functionalities as well.