@@ -149,8 +149,8 @@ STATIC wlan_obj_t wlan_obj = {
149149 .ssid = MICROPY_PORT_WLAN_AP_SSID ,
150150 .key = MICROPY_PORT_WLAN_AP_KEY ,
151151 .mac = {0 },
152- .ssid_o = {0 },
153- .bssid = {0 },
152+ // .ssid_o = {0},
153+ // .bssid = {0},
154154 #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP )
155155 .servers_enabled = false,
156156 #endif
@@ -210,11 +210,11 @@ void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent) {
210210 {
211211 case SL_WLAN_CONNECT_EVENT :
212212 {
213- slWlanConnectAsyncResponse_t * pEventData = & pWlanEvent -> EventData .STAandP2PModeWlanConnected ;
213+ // slWlanConnectAsyncResponse_t *pEventData = &pWlanEvent->EventData.STAandP2PModeWlanConnected;
214214 // copy the new connection data
215- memcpy (wlan_obj .bssid , pEventData -> bssid , SL_BSSID_LENGTH );
216- memcpy (wlan_obj .ssid_o , pEventData -> ssid_name , pEventData -> ssid_len );
217- wlan_obj .ssid_o [pEventData -> ssid_len ] = '\0' ;
215+ // memcpy(wlan_obj.bssid, pEventData->bssid, SL_BSSID_LENGTH);
216+ // memcpy(wlan_obj.ssid_o, pEventData->ssid_name, pEventData->ssid_len);
217+ // wlan_obj.ssid_o[pEventData->ssid_len] = '\0';
218218 SET_STATUS_BIT (wlan_obj .status , STATUS_BIT_CONNECTION );
219219 #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP )
220220 // we must reset the servers in case that the last connection
@@ -228,15 +228,16 @@ void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent) {
228228 CLR_STATUS_BIT (wlan_obj .status , STATUS_BIT_IP_ACQUIRED );
229229 #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP )
230230 servers_reset ();
231+ servers_wlan_cycle_power ();
231232 #endif
232233 break ;
233234 case SL_WLAN_STA_CONNECTED_EVENT :
234235 {
235- slPeerInfoAsyncResponse_t * pEventData = & pWlanEvent -> EventData .APModeStaConnected ;
236+ // slPeerInfoAsyncResponse_t *pEventData = &pWlanEvent->EventData.APModeStaConnected;
236237 // get the mac address and name of the connected device
237- memcpy (wlan_obj .bssid , pEventData -> mac , SL_BSSID_LENGTH );
238- memcpy (wlan_obj .ssid_o , pEventData -> go_peer_device_name , pEventData -> go_peer_device_name_len );
239- wlan_obj .ssid_o [pEventData -> go_peer_device_name_len ] = '\0' ;
238+ // memcpy(wlan_obj.bssid, pEventData->mac, SL_BSSID_LENGTH);
239+ // memcpy(wlan_obj.ssid_o, pEventData->go_peer_device_name, pEventData->go_peer_device_name_len);
240+ // wlan_obj.ssid_o[pEventData->go_peer_device_name_len] = '\0';
240241 SET_STATUS_BIT (wlan_obj .status , STATUS_BIT_CONNECTION );
241242 #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP )
242243 // we must reset the servers in case that the last connection
@@ -249,6 +250,7 @@ void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent) {
249250 CLR_STATUS_BIT (wlan_obj .status , STATUS_BIT_CONNECTION );
250251 #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP )
251252 servers_reset ();
253+ servers_wlan_cycle_power ();
252254 #endif
253255 break ;
254256 case SL_WLAN_P2P_DEV_FOUND_EVENT :
@@ -547,15 +549,21 @@ void wlan_set_current_time (uint32_t seconds_since_2000) {
547549 sl_DevSet (SL_DEVICE_GENERAL_CONFIGURATION , SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME , sizeof (SlDateTime_t ), (_u8 * )(& sl_datetime ));
548550}
549551
552+ void wlan_off_on (void ) {
553+ // no need to lock the WLAN object on every API call since the servers and the MicroPtyhon
554+ // task have the same priority
555+ wlan_reenable (wlan_obj .mode );
556+ }
557+
550558//*****************************************************************************
551559// DEFINE STATIC FUNCTIONS
552560//*****************************************************************************
553561
554562STATIC void wlan_clear_data (void ) {
555563 CLR_STATUS_BIT_ALL (wlan_obj .status );
556564 wlan_obj .ip = 0 ;
557- memset (wlan_obj .ssid_o , 0 , sizeof (wlan_obj .ssid ));
558- memset (wlan_obj .bssid , 0 , sizeof (wlan_obj .bssid ));
565+ // memset(wlan_obj.ssid_o, 0, sizeof(wlan_obj.ssid));
566+ // memset(wlan_obj.bssid, 0, sizeof(wlan_obj.bssid));
559567}
560568
561569STATIC void wlan_reenable (SlWlanMode_t mode ) {
0 commit comments