@@ -95,38 +95,35 @@ typedef enum
9595 STATE_ROVER_RTK_FIX, // 5
9696
9797 STATE_BASE_CASTER_NOT_STARTED, // 6, Set override flag
98- STATE_BASE_NOT_STARTED, // 7
99- STATE_BASE_CONFIG_WAIT, // 8
100- STATE_BASE_TEMP_SETTLE, // 9, User has indicated base, but current pos accuracy is too low
101- STATE_BASE_TEMP_SURVEY_STARTED, // 10
102- STATE_BASE_TEMP_TRANSMITTING, // 11
103- STATE_BASE_FIXED_NOT_STARTED, // 12
104- STATE_BASE_FIXED_TRANSMITTING, // 13
105-
106- STATE_DISPLAY_SETUP, // 14
107- STATE_WEB_CONFIG_NOT_STARTED, // 15
108- STATE_WEB_CONFIG_WAIT_FOR_NETWORK, // 16
109- STATE_WEB_CONFIG, // 17
110- STATE_TEST, // 18
111- STATE_TESTING, // 19
112- STATE_PROFILE, // 20
113-
114- STATE_KEYS_REQUESTED, // 21
115-
116- STATE_ESPNOW_PAIRING_NOT_STARTED, // 22
117- STATE_ESPNOW_PAIRING, // 23
118-
119- STATE_NTPSERVER_NOT_STARTED, // 24
120- STATE_NTPSERVER_NO_SYNC, // 25
121- STATE_NTPSERVER_SYNC, // 26
122-
123- STATE_SHUTDOWN, // 27
124-
125- STATE_BASE_ASSIST_NOT_STARTED, // 28
126-
127- // Add new states above this line to preserve the enum for settings.lastState
128-
129- STATE_NOT_SET, // 28, Must be last on list
98+ STATE_BASE_ASSIST_NOT_STARTED, // 7
99+ STATE_BASE_NOT_STARTED, // 8
100+ STATE_BASE_CONFIG_WAIT, // 9
101+ STATE_BASE_TEMP_SETTLE, // 10, User has indicated base, but current pos accuracy is too low
102+ STATE_BASE_TEMP_SURVEY_STARTED, // 11
103+ STATE_BASE_TEMP_TRANSMITTING, // 12
104+ STATE_BASE_FIXED_NOT_STARTED, // 13
105+ STATE_BASE_FIXED_TRANSMITTING, // 14
106+
107+ STATE_DISPLAY_SETUP, // 15
108+ STATE_WEB_CONFIG_NOT_STARTED, // 16
109+ STATE_WEB_CONFIG_WAIT_FOR_NETWORK, // 17
110+ STATE_WEB_CONFIG, // 18
111+ STATE_TEST, // 19
112+ STATE_TESTING, // 20
113+ STATE_PROFILE, // 21
114+
115+ STATE_KEYS_REQUESTED, // 22
116+
117+ STATE_ESPNOW_PAIRING_NOT_STARTED, // 23
118+ STATE_ESPNOW_PAIRING, // 24
119+
120+ STATE_NTPSERVER_NOT_STARTED, // 25
121+ STATE_NTPSERVER_NO_SYNC, // 26
122+ STATE_NTPSERVER_SYNC, // 27
123+
124+ STATE_SHUTDOWN, // 28
125+
126+ STATE_NOT_SET, // 29, Must be last on list
130127} SystemState;
131128volatile SystemState systemState = STATE_NOT_SET;
132129SystemState lastSystemState = STATE_NOT_SET;
@@ -2050,18 +2047,23 @@ extern NETWORK_POLL_SEQUENCE laraBootSequence[];
20502047extern NETWORK_POLL_SEQUENCE laraOffSequence[];
20512048extern NETWORK_POLL_SEQUENCE laraOnSequence[];
20522049
2050+ typedef void (* NETWORK_UPDATE_METHOD)();
2051+ extern void ethernetUpdate ();
2052+ extern void wifiStationUpdate ();
2053+
20532054// networkInterfaceTable entry
20542055typedef struct _NETWORK_TABLE_ENTRY
20552056{
2056- NetworkInterface * netif; // Network interface object address
2057- bool mDNS ; // Set true to use mDNS service
2058- NetIndex_t index; // Table index, also default priority
2059- uint8_t pdState; // Periodic display state value
2060- NETWORK_POLL_SEQUENCE * boot; // Boot sequence, may be nullptr
2061- NETWORK_POLL_SEQUENCE * start; // Start sequence (Off --> On), may be nullptr
2062- NETWORK_POLL_SEQUENCE * stop; // Stop routine (On --> Off), may be nullptr
2063- const char * name; // Name of the network interface
2064- bool * present; // Address of present bool or nullptr if always available
2057+ NetworkInterface * netif; // Network interface object address
2058+ bool mDNS ; // Set true to use mDNS service
2059+ NetIndex_t index; // Table index, also default priority
2060+ uint8_t pdState; // Periodic display state value
2061+ NETWORK_POLL_SEQUENCE * boot; // Boot sequence, may be nullptr
2062+ NETWORK_POLL_SEQUENCE * start; // Start sequence (Off --> On), may be nullptr
2063+ NETWORK_POLL_SEQUENCE * stop; // Stop routine (On --> Off), may be nullptr
2064+ const char * name; // Name of the network interface
2065+ bool * present; // Address of present bool or nullptr if always available
2066+ NETWORK_UPDATE_METHOD updateMethod; // Update method
20652067} NETWORK_TABLE_ENTRY;
20662068
20672069// List of networks in default priority order! These entries must match
@@ -2071,24 +2073,24 @@ typedef struct _NETWORK_TABLE_ENTRY
20712073// as the priority drops to that level. The stop routine is called as the
20722074// priority rises above that level. The priority will continue to fall or
20732075// rise until a network is found that is online.
2074- const NETWORK_TABLE_ENTRY networkInterfaceTable[] =
2075- { // Interface mDNS Index Periodic State Boot Sequence Start Sequence Stop Sequence Name Present
2076+ NETWORK_TABLE_ENTRY networkInterfaceTable[] =
2077+ { // Interface mDNS Index Periodic State Boot Sequence Start Sequence Stop Sequence Name Present Update method
20762078 #ifdef COMPILE_ETHERNET
2077- {Ð, true , NETWORK_ETHERNET, PD_ETHERNET_STATE, nullptr , nullptr , nullptr , " Ethernet" , &present.ethernet_ws5500 },
2079+ {Ð, true , NETWORK_ETHERNET, PD_ETHERNET_STATE, nullptr , nullptr , nullptr , " Ethernet" , &present.ethernet_ws5500 , ethernetUpdate },
20782080 #else
2079- {nullptr , false , NETWORK_ETHERNET, PD_ETHERNET_STATE, nullptr , nullptr , nullptr , " Ethernet-NotCompiled" , nullptr },
2081+ {nullptr , false , NETWORK_ETHERNET, PD_ETHERNET_STATE, nullptr , nullptr , nullptr , " Ethernet-NotCompiled" , nullptr , nullptr },
20802082 #endif // COMPILE_ETHERNET
20812083
20822084 #ifdef COMPILE_WIFI
2083- {&WiFi.STA , true , NETWORK_WIFI_STATION, PD_WIFI_STATE, nullptr , nullptr , nullptr , " WiFi Station" , nullptr },
2085+ {&WiFi.STA , true , NETWORK_WIFI_STATION, PD_WIFI_STATE, nullptr , nullptr , nullptr , " WiFi Station" , nullptr , wifiStationUpdate },
20842086 #else
2085- {nullptr , false , NETWORK_WIFI_STATION, PD_WIFI_STATE, nullptr , nullptr , nullptr , " WiFi-NotCompiled" , nullptr },
2087+ {nullptr , false , NETWORK_WIFI_STATION, PD_WIFI_STATE, nullptr , nullptr , nullptr , " WiFi-NotCompiled" , nullptr , nullptr },
20862088 #endif // COMPILE_WIFI
20872089
20882090 #ifdef COMPILE_CELLULAR
2089- {&PPP, false , NETWORK_CELLULAR, PD_CELLULAR_STATE, laraBootSequence, laraOnSequence, laraOffSequence, " Cellular" , &present.cellular_lara },
2091+ {&PPP, false , NETWORK_CELLULAR, PD_CELLULAR_STATE, laraBootSequence, laraOnSequence, laraOffSequence, " Cellular" , &present.cellular_lara , nullptr },
20902092 #else
2091- {nullptr , false , NETWORK_CELLULAR, PD_CELLULAR_STATE, nullptr , nullptr , nullptr , " Cellular-NotCompiled" , nullptr , },
2093+ {nullptr , false , NETWORK_CELLULAR, PD_CELLULAR_STATE, nullptr , nullptr , nullptr , " Cellular-NotCompiled" , nullptr , nullptr },
20922094 #endif // COMPILE_CELLULAR
20932095};
20942096const int networkInterfaceTableEntries = sizeof (networkInterfaceTable) / sizeof (networkInterfaceTable[0 ]);
0 commit comments