@@ -1179,164 +1179,148 @@ void requestChangeState(SystemState requestedState)
11791179 log_d (" Requested System State: %d" , requestedSystemState);
11801180}
11811181
1182+ // Print the current state
1183+ const char * getState (SystemState state, char * buffer)
1184+ {
1185+ switch (state)
1186+ {
1187+ case (STATE_ROVER_NOT_STARTED):
1188+ return " STATE_ROVER_NOT_STARTED" ;
1189+ case (STATE_ROVER_NO_FIX):
1190+ return " STATE_ROVER_NO_FIX" ;
1191+ case (STATE_ROVER_FIX):
1192+ return " STATE_ROVER_FIX" ;
1193+ case (STATE_ROVER_RTK_FLOAT):
1194+ return " STATE_ROVER_RTK_FLOAT" ;
1195+ case (STATE_ROVER_RTK_FIX):
1196+ return " STATE_ROVER_RTK_FIX" ;
1197+ case (STATE_BASE_NOT_STARTED):
1198+ return " STATE_BASE_NOT_STARTED" ;
1199+ case (STATE_BASE_TEMP_SETTLE):
1200+ return " STATE_BASE_TEMP_SETTLE" ;
1201+ case (STATE_BASE_TEMP_SURVEY_STARTED):
1202+ return " STATE_BASE_TEMP_SURVEY_STARTED" ;
1203+ case (STATE_BASE_TEMP_TRANSMITTING):
1204+ return " STATE_BASE_TEMP_TRANSMITTING" ;
1205+ case (STATE_BASE_FIXED_NOT_STARTED):
1206+ return " STATE_BASE_FIXED_NOT_STARTED" ;
1207+ case (STATE_BASE_FIXED_TRANSMITTING):
1208+ return " STATE_BASE_FIXED_TRANSMITTING" ;
1209+ case (STATE_BUBBLE_LEVEL):
1210+ return " STATE_BUBBLE_LEVEL" ;
1211+ case (STATE_MARK_EVENT):
1212+ return " STATE_MARK_EVENT" ;
1213+ case (STATE_DISPLAY_SETUP):
1214+ return " STATE_DISPLAY_SETUP" ;
1215+ case (STATE_WIFI_CONFIG_NOT_STARTED):
1216+ return " STATE_WIFI_CONFIG_NOT_STARTED" ;
1217+ case (STATE_WIFI_CONFIG):
1218+ return " STATE_WIFI_CONFIG" ;
1219+ case (STATE_TEST):
1220+ return " STATE_TEST" ;
1221+ case (STATE_TESTING):
1222+ return " STATE_TESTING" ;
1223+ case (STATE_PROFILE):
1224+ return " STATE_PROFILE" ;
1225+ #ifdef COMPILE_L_BAND
1226+ case (STATE_KEYS_STARTED):
1227+ return " STATE_KEYS_STARTED" ;
1228+ case (STATE_KEYS_NEEDED):
1229+ return " STATE_KEYS_NEEDED" ;
1230+ case (STATE_KEYS_WIFI_STARTED):
1231+ return " STATE_KEYS_WIFI_STARTED" ;
1232+ case (STATE_KEYS_WIFI_CONNECTED):
1233+ return " STATE_KEYS_WIFI_CONNECTED" ;
1234+ case (STATE_KEYS_WIFI_TIMEOUT):
1235+ return " STATE_KEYS_WIFI_TIMEOUT" ;
1236+ case (STATE_KEYS_EXPIRED):
1237+ return " STATE_KEYS_EXPIRED" ;
1238+ case (STATE_KEYS_DAYS_REMAINING):
1239+ return " STATE_KEYS_DAYS_REMAINING" ;
1240+ case (STATE_KEYS_LBAND_CONFIGURE):
1241+ return " STATE_KEYS_LBAND_CONFIGURE" ;
1242+ case (STATE_KEYS_LBAND_ENCRYPTED):
1243+ return " STATE_KEYS_LBAND_ENCRYPTED" ;
1244+ case (STATE_KEYS_PROVISION_WIFI_STARTED):
1245+ return " STATE_KEYS_PROVISION_WIFI_STARTED" ;
1246+ case (STATE_KEYS_PROVISION_WIFI_CONNECTED):
1247+ return " STATE_KEYS_PROVISION_WIFI_CONNECTED" ;
1248+ case (STATE_KEYS_PROVISION_WIFI_TIMEOUT):
1249+ return " STATE_KEYS_PROVISION_WIFI_TIMEOUT" ;
1250+ #endif // COMPILE_L_BAND
1251+
1252+ case (STATE_ESPNOW_PAIRING_NOT_STARTED):
1253+ return " STATE_ESPNOW_PAIRING_NOT_STARTED" ;
1254+ case (STATE_ESPNOW_PAIRING):
1255+ return " STATE_ESPNOW_PAIRING" ;
1256+
1257+ case (STATE_NTPSERVER_NOT_STARTED):
1258+ return " STATE_NTPSERVER_NOT_STARTED" ;
1259+ case (STATE_NTPSERVER_NO_SYNC):
1260+ return " STATE_NTPSERVER_NO_SYNC" ;
1261+ case (STATE_NTPSERVER_SYNC):
1262+ return " STATE_NTPSERVER_SYNC" ;
1263+
1264+ case (STATE_CONFIG_VIA_ETH_NOT_STARTED):
1265+ return " STATE_CONFIG_VIA_ETH_NOT_STARTED" ;
1266+ case (STATE_CONFIG_VIA_ETH_STARTED):
1267+ return " STATE_CONFIG_VIA_ETH_STARTED" ;
1268+ case (STATE_CONFIG_VIA_ETH):
1269+ return " STATE_CONFIG_VIA_ETH" ;
1270+ case (STATE_CONFIG_VIA_ETH_RESTART_BASE):
1271+ return " STATE_CONFIG_VIA_ETH_RESTART_BASE" ;
1272+
1273+ case (STATE_SHUTDOWN):
1274+ return " STATE_SHUTDOWN" ;
1275+ case (STATE_NOT_SET):
1276+ return " STATE_NOT_SET" ;
1277+ }
1278+
1279+ // Handle the unknown case
1280+ sprintf (buffer, " Unknown: %d" , state);
1281+ return buffer;
1282+ }
1283+
11821284// Change states and print the new state
11831285void changeState (SystemState newState)
11841286{
1287+ char string1[30 ];
1288+ char string2[30 ];
1289+ const char * arrow;
1290+ const char * asterisk;
1291+ const char * initialState;
1292+ const char * endingState;
1293+
11851294 // Log the heap size at the state change
11861295 reportHeapNow (false );
11871296
11881297 // Debug print of new state, add leading asterisk for repeated states
11891298 if ((!settings.enablePrintDuplicateStates ) && (newState == systemState))
11901299 return ;
11911300
1192- if (settings.enablePrintStates && (newState == systemState))
1193- systemPrint (" *" );
1301+ if (settings.enablePrintStates )
1302+ {
1303+ arrow = " " ;
1304+ asterisk = " " ;
1305+ initialState = " " ;
1306+ if (newState == systemState)
1307+ asterisk = " *" ;
1308+ else
1309+ {
1310+ initialState = getState (systemState, string1);
1311+ arrow = " --> " ;
1312+ }
1313+ }
11941314
11951315 // Set the new state
11961316 systemState = newState;
1197-
11981317 if (settings.enablePrintStates )
11991318 {
1200- switch (systemState)
1201- {
1202- case (STATE_ROVER_NOT_STARTED):
1203- systemPrint (" State: Rover - Not Started" );
1204- break ;
1205- case (STATE_ROVER_NO_FIX):
1206- systemPrint (" State: Rover - No Fix" );
1207- break ;
1208- case (STATE_ROVER_FIX):
1209- systemPrint (" State: Rover - Fix" );
1210- break ;
1211- case (STATE_ROVER_RTK_FLOAT):
1212- systemPrint (" State: Rover - RTK Float" );
1213- break ;
1214- case (STATE_ROVER_RTK_FIX):
1215- systemPrint (" State: Rover - RTK Fix" );
1216- break ;
1217- case (STATE_BASE_NOT_STARTED):
1218- systemPrint (" State: Base - Not Started" );
1219- break ;
1220- case (STATE_BASE_TEMP_SETTLE):
1221- systemPrint (" State: Base-Temp - Settle" );
1222- break ;
1223- case (STATE_BASE_TEMP_SURVEY_STARTED):
1224- systemPrint (" State: Base-Temp - Survey Started" );
1225- break ;
1226- case (STATE_BASE_TEMP_TRANSMITTING):
1227- systemPrint (" State: Base-Temp - Transmitting" );
1228- break ;
1229- case (STATE_BASE_FIXED_NOT_STARTED):
1230- systemPrint (" State: Base-Fixed - Not Started" );
1231- break ;
1232- case (STATE_BASE_FIXED_TRANSMITTING):
1233- systemPrint (" State: Base-Fixed - Transmitting" );
1234- break ;
1235- case (STATE_BUBBLE_LEVEL):
1236- systemPrint (" State: Bubble level" );
1237- break ;
1238- case (STATE_MARK_EVENT):
1239- systemPrint (" State: Mark Event" );
1240- break ;
1241- case (STATE_DISPLAY_SETUP):
1242- systemPrint (" State: Display Setup" );
1243- break ;
1244- case (STATE_WIFI_CONFIG_NOT_STARTED):
1245- systemPrint (" State: WiFi Config Not Started" );
1246- break ;
1247- case (STATE_WIFI_CONFIG):
1248- systemPrint (" State: WiFi Config" );
1249- break ;
1250- case (STATE_TEST):
1251- systemPrint (" State: System Test Setup" );
1252- break ;
1253- case (STATE_TESTING):
1254- systemPrint (" State: System Testing" );
1255- break ;
1256- case (STATE_PROFILE):
1257- systemPrint (" State: Profile" );
1258- break ;
1259- #ifdef COMPILE_L_BAND
1260- case (STATE_KEYS_STARTED):
1261- systemPrint (" State: Keys Started " );
1262- break ;
1263- case (STATE_KEYS_NEEDED):
1264- systemPrint (" State: Keys Needed" );
1265- break ;
1266- case (STATE_KEYS_WIFI_STARTED):
1267- systemPrint (" State: Keys WiFi Started" );
1268- break ;
1269- case (STATE_KEYS_WIFI_CONNECTED):
1270- systemPrint (" State: Keys WiFi Connected" );
1271- break ;
1272- case (STATE_KEYS_WIFI_TIMEOUT):
1273- systemPrint (" State: Keys WiFi Timeout" );
1274- break ;
1275- case (STATE_KEYS_EXPIRED):
1276- systemPrint (" State: Keys Expired" );
1277- break ;
1278- case (STATE_KEYS_DAYS_REMAINING):
1279- systemPrint (" State: Keys Days Remaining" );
1280- break ;
1281- case (STATE_KEYS_LBAND_CONFIGURE):
1282- systemPrint (" State: Keys L-Band Configure" );
1283- break ;
1284- case (STATE_KEYS_LBAND_ENCRYPTED):
1285- systemPrint (" State: Keys L-Band Encrypted" );
1286- break ;
1287- case (STATE_KEYS_PROVISION_WIFI_STARTED):
1288- systemPrint (" State: Keys Provision - WiFi Started" );
1289- break ;
1290- case (STATE_KEYS_PROVISION_WIFI_CONNECTED):
1291- systemPrint (" State: Keys Provision - WiFi Connected" );
1292- break ;
1293- case (STATE_KEYS_PROVISION_WIFI_TIMEOUT):
1294- systemPrint (" State: Keys Provision - WiFi Timeout" );
1295- break ;
1296- #endif // COMPILE_L_BAND
1319+ endingState = getState (newState, string2);
12971320
1298- case (STATE_ESPNOW_PAIRING_NOT_STARTED):
1299- systemPrint (" State: ESP-Now Pairing Not Started" );
1300- break ;
1301- case (STATE_ESPNOW_PAIRING):
1302- systemPrint (" State: ESP-Now Pairing" );
1303- break ;
1304-
1305- case (STATE_NTPSERVER_NOT_STARTED):
1306- systemPrint (" State: NTP Server - Not Started" );
1307- break ;
1308- case (STATE_NTPSERVER_NO_SYNC):
1309- systemPrint (" State: NTP Server - No Sync" );
1310- break ;
1311- case (STATE_NTPSERVER_SYNC):
1312- systemPrint (" State: NTP Server - Sync" );
1313- break ;
1314-
1315- case (STATE_CONFIG_VIA_ETH_NOT_STARTED):
1316- systemPrint (" State: Configure Via Ethernet - Not Started" );
1317- break ;
1318- case (STATE_CONFIG_VIA_ETH_STARTED):
1319- systemPrint (" State: Configure Via Ethernet - Started" );
1320- break ;
1321- case (STATE_CONFIG_VIA_ETH):
1322- systemPrint (" State: Configure Via Ethernet" );
1323- break ;
1324- case (STATE_CONFIG_VIA_ETH_RESTART_BASE):
1325- systemPrint (" State: Configure Via Ethernet - Restarting Base" );
1326- break ;
1327-
1328- case (STATE_SHUTDOWN):
1329- systemPrint (" State: Shut Down" );
1330- break ;
1331- case (STATE_NOT_SET):
1332- systemPrint (" State: Not Set" );
1333- break ;
1334- default :
1335- systemPrintf (" Change State Unknown: %d" , systemState);
1336- break ;
1337- }
1338-
1339- if (online.rtc )
1321+ if (!online.rtc )
1322+ systemPrintf (" %s%s%s%s\r\n " , asterisk, initialState, arrow, endingState);
1323+ else
13401324 {
13411325 // Timestamp the state change
13421326 // 1 2
@@ -1345,9 +1329,7 @@ void changeState(SystemState newState)
13451329 struct tm timeinfo = rtc.getTimeStruct ();
13461330 char s[30 ];
13471331 strftime (s, sizeof (s), " %Y-%m-%d %H:%M:%S" , &timeinfo);
1348- systemPrintf (" , %s.%03ld" , s, rtc.getMillis ());
1332+ systemPrintf (" %s%s%s%s , %s.%03ld\r\n " , asterisk, initialState, arrow, endingState , s, rtc.getMillis ());
13491333 }
1350-
1351- systemPrintln ();
13521334 }
13531335}
0 commit comments