@@ -553,6 +553,119 @@ void wifiDisplayState()
553
553
}
554
554
}
555
555
556
+ // *********************************************************************
557
+ // Process the WiFi events
558
+ void wifiEvent (arduino_event_id_t event, arduino_event_info_t info)
559
+ {
560
+ char ssid[sizeof (info.wifi_sta_connected .ssid ) + 1 ];
561
+ IPAddress ipAddress;
562
+
563
+ // If we are in AP or AP_STA, the network is immediately marked online
564
+ // Once AP is online, don't stop WiFi because STA has various events
565
+ if (WiFi.getMode () == WIFI_MODE_STA)
566
+ {
567
+ // Take the network offline if necessary
568
+ if (networkInterfaceHasInternet (NETWORK_WIFI) && (event != ARDUINO_EVENT_WIFI_STA_GOT_IP) &&
569
+ (event != ARDUINO_EVENT_WIFI_STA_GOT_IP6))
570
+ {
571
+ if (settings.debugWifiState )
572
+ systemPrintf (" Stopping WiFi because of event # %d\r\n " , event);
573
+
574
+ networkStop (NETWORK_WIFI, settings.debugNetworkLayer ); // Stop WiFi to allow it to restart
575
+ }
576
+ }
577
+
578
+ // WiFi State Machine
579
+ //
580
+ // .--------+<----------+<-----------+<-------------+<----------+<----------+<------------.
581
+ // v | | | | | | |
582
+ // STOP --> READY --> STA_START --> SCAN_DONE --> CONNECTED --> GOT_IP --> LOST_IP --> DISCONNECTED
583
+ // ^ ^ | |
584
+ // | '-----------' |
585
+ // '-------------------------------------'
586
+ //
587
+ // Handle the event
588
+ switch (event)
589
+ {
590
+ default :
591
+ systemPrintf (" ERROR: Unknown WiFi event: %d\r\n " , event);
592
+ break ;
593
+
594
+ case ARDUINO_EVENT_WIFI_OFF:
595
+ systemPrintln (" WiFi Off" );
596
+ break ;
597
+
598
+ case ARDUINO_EVENT_WIFI_READY:
599
+ if (settings.debugWifiState )
600
+ systemPrintln (" WiFi Ready" );
601
+ WiFi.setHostname (settings.mdnsHostName );
602
+ break ;
603
+
604
+ case ARDUINO_EVENT_WIFI_SCAN_DONE:
605
+ if (settings.debugWifiState )
606
+ systemPrintln (" WiFi Scan Done" );
607
+ // wifi_event_sta_scan_done_t info.wifi_scan_done;
608
+ break ;
609
+
610
+ case ARDUINO_EVENT_WIFI_STA_START:
611
+ if (settings.debugWifiState )
612
+ systemPrintln (" WiFi STA Started" );
613
+ break ;
614
+
615
+ case ARDUINO_EVENT_WIFI_STA_STOP:
616
+ if (settings.debugWifiState )
617
+ systemPrintln (" WiFi STA Stopped" );
618
+ break ;
619
+
620
+ case ARDUINO_EVENT_WIFI_STA_CONNECTED:
621
+ memcpy (ssid, info.wifi_sta_connected .ssid , info.wifi_sta_connected .ssid_len );
622
+ ssid[info.wifi_sta_connected .ssid_len ] = 0 ;
623
+
624
+ ipAddress = WiFi.localIP ();
625
+ systemPrintf (" WiFi STA connected to %s with IP address: " , ssid);
626
+ systemPrintln (ipAddress);
627
+
628
+ WiFi.setHostname (settings.mdnsHostName );
629
+ break ;
630
+
631
+ case ARDUINO_EVENT_WIFI_STA_DISCONNECTED:
632
+ memcpy (ssid, info.wifi_sta_disconnected .ssid , info.wifi_sta_disconnected .ssid_len );
633
+ ssid[info.wifi_sta_disconnected .ssid_len ] = 0 ;
634
+ systemPrintf (" WiFi STA disconnected from %s\r\n " , ssid);
635
+ // wifi_event_sta_disconnected_t info.wifi_sta_disconnected;
636
+ break ;
637
+
638
+ case ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE:
639
+ systemPrintln (" WiFi STA Auth Mode Changed" );
640
+ // wifi_event_sta_authmode_change_t info.wifi_sta_authmode_change;
641
+ break ;
642
+
643
+ case ARDUINO_EVENT_WIFI_STA_GOT_IP:
644
+ if (settings.debugWifiState )
645
+ {
646
+ ipAddress = WiFi.localIP ();
647
+ systemPrint (" WiFi STA Got IPv4: " );
648
+ systemPrintln (ipAddress);
649
+ }
650
+ networkInterfaceInternetConnectionAvailable (NETWORK_WIFI);
651
+ break ;
652
+
653
+ case ARDUINO_EVENT_WIFI_STA_GOT_IP6:
654
+ if (settings.debugWifiState )
655
+ {
656
+ ipAddress = WiFi.localIP ();
657
+ systemPrint (" WiFi STA Got IPv6: " );
658
+ systemPrintln (ipAddress);
659
+ }
660
+ networkInterfaceInternetConnectionAvailable (NETWORK_WIFI);
661
+ break ;
662
+
663
+ case ARDUINO_EVENT_WIFI_STA_LOST_IP:
664
+ systemPrintln (" WiFi STA Lost IP" );
665
+ break ;
666
+ }
667
+ }
668
+
556
669
// *********************************************************************
557
670
// Counts the number of entered SSIDs
558
671
int wifiNetworkCount ()
@@ -3033,120 +3146,6 @@ bool wifiConnect(bool startWiFiStation, bool startWiFiAP, unsigned long timeout)
3033
3146
return false ;
3034
3147
}
3035
3148
3036
- // ----------------------------------------
3037
- // Process the WiFi events
3038
- // ----------------------------------------
3039
- void wifiEvent (arduino_event_id_t event, arduino_event_info_t info)
3040
- {
3041
- char ssid[sizeof (info.wifi_sta_connected .ssid ) + 1 ];
3042
- IPAddress ipAddress;
3043
-
3044
- // If we are in AP or AP_STA, the network is immediately marked online
3045
- // Once AP is online, don't stop WiFi because STA has various events
3046
- if (WiFi.getMode () == WIFI_MODE_STA)
3047
- {
3048
- // Take the network offline if necessary
3049
- if (networkInterfaceHasInternet (NETWORK_WIFI) && (event != ARDUINO_EVENT_WIFI_STA_GOT_IP) &&
3050
- (event != ARDUINO_EVENT_WIFI_STA_GOT_IP6))
3051
- {
3052
- if (settings.debugWifiState )
3053
- systemPrintf (" Stopping WiFi because of event # %d\r\n " , event);
3054
-
3055
- networkStop (NETWORK_WIFI, settings.debugNetworkLayer ); // Stop WiFi to allow it to restart
3056
- }
3057
- }
3058
-
3059
- // WiFi State Machine
3060
- //
3061
- // .--------+<----------+<-----------+<-------------+<----------+<----------+<------------.
3062
- // v | | | | | | |
3063
- // STOP --> READY --> STA_START --> SCAN_DONE --> CONNECTED --> GOT_IP --> LOST_IP --> DISCONNECTED
3064
- // ^ ^ | |
3065
- // | '-----------' |
3066
- // '-------------------------------------'
3067
- //
3068
- // Handle the event
3069
- switch (event)
3070
- {
3071
- default :
3072
- systemPrintf (" ERROR: Unknown WiFi event: %d\r\n " , event);
3073
- break ;
3074
-
3075
- case ARDUINO_EVENT_WIFI_OFF:
3076
- systemPrintln (" WiFi Off" );
3077
- break ;
3078
-
3079
- case ARDUINO_EVENT_WIFI_READY:
3080
- if (settings.debugWifiState )
3081
- systemPrintln (" WiFi Ready" );
3082
- WiFi.setHostname (settings.mdnsHostName );
3083
- break ;
3084
-
3085
- case ARDUINO_EVENT_WIFI_SCAN_DONE:
3086
- if (settings.debugWifiState )
3087
- systemPrintln (" WiFi Scan Done" );
3088
- // wifi_event_sta_scan_done_t info.wifi_scan_done;
3089
- break ;
3090
-
3091
- case ARDUINO_EVENT_WIFI_STA_START:
3092
- if (settings.debugWifiState )
3093
- systemPrintln (" WiFi STA Started" );
3094
- break ;
3095
-
3096
- case ARDUINO_EVENT_WIFI_STA_STOP:
3097
- if (settings.debugWifiState )
3098
- systemPrintln (" WiFi STA Stopped" );
3099
- break ;
3100
-
3101
- case ARDUINO_EVENT_WIFI_STA_CONNECTED:
3102
- memcpy (ssid, info.wifi_sta_connected .ssid , info.wifi_sta_connected .ssid_len );
3103
- ssid[info.wifi_sta_connected .ssid_len ] = 0 ;
3104
-
3105
- ipAddress = WiFi.localIP ();
3106
- systemPrintf (" WiFi STA connected to %s with IP address: " , ssid);
3107
- systemPrintln (ipAddress);
3108
-
3109
- WiFi.setHostname (settings.mdnsHostName );
3110
- break ;
3111
-
3112
- case ARDUINO_EVENT_WIFI_STA_DISCONNECTED:
3113
- memcpy (ssid, info.wifi_sta_disconnected .ssid , info.wifi_sta_disconnected .ssid_len );
3114
- ssid[info.wifi_sta_disconnected .ssid_len ] = 0 ;
3115
- systemPrintf (" WiFi STA disconnected from %s\r\n " , ssid);
3116
- // wifi_event_sta_disconnected_t info.wifi_sta_disconnected;
3117
- break ;
3118
-
3119
- case ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE:
3120
- systemPrintln (" WiFi STA Auth Mode Changed" );
3121
- // wifi_event_sta_authmode_change_t info.wifi_sta_authmode_change;
3122
- break ;
3123
-
3124
- case ARDUINO_EVENT_WIFI_STA_GOT_IP:
3125
- if (settings.debugWifiState )
3126
- {
3127
- ipAddress = WiFi.localIP ();
3128
- systemPrint (" WiFi STA Got IPv4: " );
3129
- systemPrintln (ipAddress);
3130
- }
3131
- networkInterfaceInternetConnectionAvailable (NETWORK_WIFI);
3132
- break ;
3133
-
3134
- case ARDUINO_EVENT_WIFI_STA_GOT_IP6:
3135
- if (settings.debugWifiState )
3136
- {
3137
- ipAddress = WiFi.localIP ();
3138
- systemPrint (" WiFi STA Got IPv6: " );
3139
- systemPrintln (ipAddress);
3140
- }
3141
- networkInterfaceInternetConnectionAvailable (NETWORK_WIFI);
3142
- break ;
3143
-
3144
- case ARDUINO_EVENT_WIFI_STA_LOST_IP:
3145
- systemPrintln (" WiFi STA Lost IP" );
3146
- break ;
3147
- }
3148
- }
3149
-
3150
3149
// ----------------------------------------
3151
3150
// Determine if WIFI is connected
3152
3151
// ----------------------------------------
0 commit comments