Added screen with software error counters.

Mon, 06 Apr 2020 10:42:08 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 06 Apr 2020 10:42:08 +0200
changeset 52
90a36619b07b
parent 51
5035385299f6
child 53
20c14b06f255

Added screen with software error counters.

CMakeLists.txt file | annotate | diff | comparison | revisions
main/co2meter.c file | annotate | diff | comparison | revisions
main/config.h file | annotate | diff | comparison | revisions
main/task_user.c file | annotate | diff | comparison | revisions
--- a/CMakeLists.txt	Sun Apr 05 19:17:17 2020 +0200
+++ b/CMakeLists.txt	Mon Apr 06 10:42:08 2020 +0200
@@ -2,7 +2,7 @@
 # in this exact order for cmake to work correctly
 cmake_minimum_required(VERSION 3.5)
 
-set(PROJECT_VER "0.2.3")
+set(PROJECT_VER "0.2.4")
 set(PROJECT_NAME "co2meter")
 
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
--- a/main/co2meter.c	Sun Apr 05 19:17:17 2020 +0200
+++ b/main/co2meter.c	Mon Apr 06 10:42:08 2020 +0200
@@ -28,7 +28,7 @@
 extern EventGroupHandle_t		xEventGroupUser;
 extern int				count_pub;			///< Published MQTT messages in transit
 extern uint32_t				AlarmTimer;			///< Alarm timer
-
+extern uint32_t				err_connect;			///< Connect error counter
 
 
 void app_main()
@@ -160,6 +160,7 @@
 		    if (! ready_WiFi()) { /* If WiFi was lost, try a new connection */
 			ESP_LOGI(TAG, "Try WiFi restore");
 			request_WiFi();
+			err_connect++;
 		    }
 		    break;
 
--- a/main/config.h	Sun Apr 05 19:17:17 2020 +0200
+++ b/main/config.h	Mon Apr 06 10:42:08 2020 +0200
@@ -89,6 +89,7 @@
     ML2_NETWORK,		///< Network status
     ML2_MQTT,			///< MQTT status
     ML2_UPDATE,			///< Update
+    ML2_COUNTERS,		///< Counters display
     ML2_SETUP_UNIT1,		///< Unit 1 setup
     ML2_SETUP_UNIT2,		///< Unit 2 setup
     ML2_SETUP_UNIT3,		///< Unit 3 setup
--- a/main/task_user.c	Sun Apr 05 19:17:17 2020 +0200
+++ b/main/task_user.c	Mon Apr 06 10:42:08 2020 +0200
@@ -28,6 +28,9 @@
 int					num_ssids = 0;			///< Number of SSIDs we know
 struct strStations			editAP;				///< Data of station to edit
 char					sensors[DS18B20_MAX][17];	///< Sensors to select
+uint32_t				err_connect = 0;		///< Connect error count
+uint32_t				err_alarm = 0;			///< Alarm watchdog error count
+
 
 extern const esp_app_desc_t		*app_desc;			///< App description
 extern unit_t				units[3];			///< Pressure test units
@@ -80,6 +83,7 @@
     if (AlarmTimer == 1) {
 	ESP_LOGI(TAG, "Alarm Timer timeout");
 	Main_Loop1 = ML1_INIT;
+	err_alarm++;
     }
 
     if (AlarmTimer) {
@@ -705,6 +709,19 @@
 
 
 
+/*
+ * @brief The counters display screen.
+ */
+void screen_counters()
+{
+    screen_top("Software tellers");
+    menu_line(0, 1, 25, "Network  %d", err_connect);
+    menu_line(0, 1, 37, "Watchdog %d", err_alarm);
+    u8g2_SendBuffer(&u8g2);
+}
+
+
+
 /**
  * @brief Interrupt service routine for the rotary pushbutton.
  */
@@ -902,6 +919,10 @@
                 screen_update();
                 break;
 
+	    case ML2_COUNTERS:
+		screen_counters();
+		break;
+
             case ML2_SETUP_UNIT1:
             case ML2_SETUP_UNIT2:
             case ML2_SETUP_UNIT3:
@@ -953,7 +974,8 @@
 	case ML2_WIFI:          rotate_to_menu(event.state.position, ML2_NETWORK, ML2_UNIT3); break;
 	case ML2_NETWORK:       rotate_to_menu(event.state.position, ML2_MQTT, ML2_WIFI); break;
 	case ML2_MQTT:          rotate_to_menu(event.state.position, ML2_UPDATE, ML2_NETWORK); break;
-	case ML2_UPDATE:        rotate_to_menu(event.state.position, ML2_UPDATE, ML2_MQTT); break;
+	case ML2_UPDATE:        rotate_to_menu(event.state.position, ML2_COUNTERS, ML2_MQTT); break;
+	case ML2_COUNTERS:	rotate_to_menu(event.state.position, ML2_COUNTERS, ML2_UPDATE); break;
 	case ML2_SETUP_UNIT1:
 	case ML2_SETUP_UNIT2:
 	case ML2_SETUP_UNIT3:   if (rotate_to_sub(event.state.position, 3, &SubMenu, &SubOffset))
@@ -1311,11 +1333,12 @@
 		if (xEventGroupGetBits(xEventGroupUser) & TASK_USER_REFRESH) {
 		    xEventGroupClearBits(xEventGroupUser, TASK_USER_REFRESH);
     		    switch (Main_Loop2) {
-        		case ML2_USER:  screen_main();  break;
-        		case ML2_UNIT1: screen_unit(0); break;
-        		case ML2_UNIT2: screen_unit(1); break;
-        		case ML2_UNIT3: screen_unit(2); break;
-        		case ML2_WIFI:  screen_wifi();  break;
+        		case ML2_USER:  	screen_main();     break;
+        		case ML2_UNIT1: 	screen_unit(0);    break;
+        		case ML2_UNIT2: 	screen_unit(1);    break;
+        		case ML2_UNIT3: 	screen_unit(2);    break;
+        		case ML2_WIFI:  	screen_wifi();     break;
+			case ML2_COUNTERS:	screen_counters(); break;
     		    }
 		}
 

mercurial