Added network setup

Fri, 08 Nov 2019 10:57:46 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 08 Nov 2019 10:57:46 +0100
changeset 25
cc7c423f03fb
parent 24
64078aa15512
child 26
8a3696620c0a

Added network setup

main/config.h file | annotate | diff | comparison | revisions
main/task_user.c file | annotate | diff | comparison | revisions
--- a/main/config.h	Thu Nov 07 22:58:48 2019 +0100
+++ b/main/config.h	Fri Nov 08 10:57:46 2019 +0100
@@ -101,6 +101,7 @@
     ML2_ZERO_UNIT1,		///< Unit 1 set zero
     ML2_ZERO_UNIT2,		///< Unit 2 set zero
     ML2_ZERO_UNIT3,		///< Unit 3 set zero
+    ML2_SETUP_NETWORK,		///< Network setup
     ML2_SETUP_MQTT,		///< MQTT setup
     ML2_INACTIVE,		///< Inactive reached, cleanup
     ML2_DONE			///< All done
--- a/main/task_user.c	Thu Nov 07 22:58:48 2019 +0100
+++ b/main/task_user.c	Fri Nov 08 10:57:46 2019 +0100
@@ -478,6 +478,17 @@
 
 
 
+void screen_network_setup(int sub)
+{
+    screen_top("Network setup");
+    menu_line(sub == 0, 2, 25, "Name %s", config.hostname);
+    menu_line(sub == 1, 2, 37, "NTP  %s", config.ntp_server);
+    menu_line(sub == 2, 2, 49, "Return");
+    u8g2_SendBuffer(&u8g2);
+}
+
+
+
 void screen_mqtt()
 {
     screen_top("MQTT Status");
@@ -606,74 +617,78 @@
     if (New_Loop2 != Main_Loop2) {
 
 	Main_Loop2 = New_Loop2;
+        switch (Main_Loop2) {
+	    case ML2_INIT:
+                ESP_LOGI(TAG, "Loop user: Init");
+                New_Loop2 = ML2_USER;
+                break;
 
-        switch (Main_Loop2) {
-              case ML2_INIT:
-                      ESP_LOGI(TAG, "Loop user: Init");
-                      New_Loop2 = ML2_USER;
-                      break;
-
-              case ML2_USER:
-                      ESP_LOGI(TAG, "Loop user: User mainmenu");
-                      screen_main();
-                      break;
+            case ML2_USER:
+                ESP_LOGI(TAG, "Loop user: User mainmenu");
+                screen_main();
+                break;
 
-              case ML2_UNIT1:
-              case ML2_UNIT2:
-              case ML2_UNIT3:
-                      ESP_LOGI(TAG, "Loop user: Unit %d", Main_Loop2 - ML2_UNIT1);
-                      screen_unit(Main_Loop2 - ML2_UNIT1);
-                      break;
+            case ML2_UNIT1:
+            case ML2_UNIT2:
+            case ML2_UNIT3:
+                ESP_LOGI(TAG, "Loop user: Unit %d", Main_Loop2 - ML2_UNIT1);
+                screen_unit(Main_Loop2 - ML2_UNIT1);
+                break;
 
-              case ML2_WIFI:
-                      ESP_LOGI(TAG, "Loop user: WiFi");
-                      screen_wifi();
-                      break;
+            case ML2_WIFI:
+                ESP_LOGI(TAG, "Loop user: WiFi");
+                screen_wifi();
+                break;
 
-              case ML2_NETWORK:
-                      ESP_LOGI(TAG, "Loop user: Network");
-                      screen_network();
-                      break;
+            case ML2_NETWORK:
+                ESP_LOGI(TAG, "Loop user: Network");
+                screen_network();
+                break;
 
-              case ML2_MQTT:
-                      ESP_LOGI(TAG, "Loop user: MQTT");
-                      screen_mqtt();
-                      break;
+	    case ML2_SETUP_NETWORK:
+		ESP_LOGI(TAG, "Loop user: Network setup");
+		screen_network_setup(SubMenu);
+		break;
 
-              case ML2_SETUP_MQTT:
-                      ESP_LOGI(TAG, "Loop user: MQTT setup");
-		      screen_mqtt_setup(SubMenu);
-		      break;
+            case ML2_MQTT:
+                ESP_LOGI(TAG, "Loop user: MQTT");
+                screen_mqtt();
+                break;
 
-              case ML2_UPDATE:
-                      ESP_LOGI(TAG, "Loop user: Update");
-                      screen_update();
-                      break;
+            case ML2_SETUP_MQTT:
+                ESP_LOGI(TAG, "Loop user: MQTT setup");
+		screen_mqtt_setup(SubMenu);
+		break;
+
+            case ML2_UPDATE:
+                ESP_LOGI(TAG, "Loop user: Update");
+                screen_update();
+                break;
 
-              case ML2_SETUP_UNIT1:
-              case ML2_SETUP_UNIT2:
-              case ML2_SETUP_UNIT3:
-                      ESP_LOGI(TAG, "Loop user: Setup Unit %d", Main_Loop2 - ML2_SETUP_UNIT1);
-                      SubMenu = 0;
-                      screen_unit_setup(Main_Loop2 - ML2_SETUP_UNIT1, SubMenu);
-                      break;
+            case ML2_SETUP_UNIT1:
+            case ML2_SETUP_UNIT2:
+            case ML2_SETUP_UNIT3:
+                ESP_LOGI(TAG, "Loop user: Setup Unit %d", Main_Loop2 - ML2_SETUP_UNIT1);
+                SubMenu = 0;
+                screen_unit_setup(Main_Loop2 - ML2_SETUP_UNIT1, SubMenu);
+                break;
 
-              case ML2_ZERO_UNIT1:
-              case ML2_ZERO_UNIT2:
-              case ML2_ZERO_UNIT3:
-                      ESP_LOGI(TAG, "Loop user: Zero Unit %d", Main_Loop2 - ML2_ZERO_UNIT1);
-                        SubMenu = 0;
-                        screen_unit_zero(Main_Loop2 - ML2_ZERO_UNIT1, SubMenu);
-                        break;
+            case ML2_ZERO_UNIT1:
+            case ML2_ZERO_UNIT2:
+            case ML2_ZERO_UNIT3:
+                ESP_LOGI(TAG, "Loop user: Zero Unit %d", Main_Loop2 - ML2_ZERO_UNIT1);
+                SubMenu = 0;
+                screen_unit_zero(Main_Loop2 - ML2_ZERO_UNIT1, SubMenu);
+                break;
 
-              case ML2_INACTIVE:
-                      ESP_LOGI(TAG, "Loop user: Inactive");
-                      u8g2_SetPowerSave(&u8g2, 1); // powersave display
-                      New_Loop2 = ML2_DONE;
-                      break;
+            case ML2_INACTIVE:
+		ESP_LOGI(TAG, "Loop user: Inactive");
+		u8g2_SetPowerSave(&u8g2, 1); // powersave display
+		New_Loop2 = ML2_DONE;
+		break;
 
-              default:
-                      break;
+            default:
+		break;
 	}
     }
 }
@@ -704,6 +719,9 @@
 	case ML2_SETUP_MQTT:	if (rotate_to_sub(event.state.position, 0, 3, &SubMenu))
 				    screen_mqtt_setup(SubMenu);
 				break;
+	case ML2_SETUP_NETWORK:	if (rotate_to_sub(event.state.position, 0, 2, &SubMenu))
+				    screen_network_setup(SubMenu);
+				break;
 	default:
 				ESP_LOGI(TAG, "Event: position %d, direction %s", event.state.position,
 				    event.state.direction ? (event.state.direction == ROTARY_ENCODER_DIRECTION_CLOCKWISE ? "CW":"CCW"):"NOT_SET");
@@ -792,6 +810,27 @@
 		printf("unit zero sub %d  new %d  idx %d\n", SubMenu, New_Loop2, idx);
 		break;
 
+	case ML2_NETWORK:
+		New_Loop2 = ML2_SETUP_NETWORK;
+		break;
+
+	case ML2_SETUP_NETWORK:
+		if (SubMenu == 0) {
+                    rotary_editer("Hostname", config.hostname, "", 16, EDIT_TYPE_TEXT);
+                    screen_network_setup(SubMenu);
+                }
+		if (SubMenu == 1) {
+                    rotary_editer("NTP server", config.ntp_server, "", 16, EDIT_TYPE_TEXT);
+                    screen_network_setup(SubMenu);
+                }
+		if (SubMenu == 2) {
+                    ESP_LOGI(TAG, "Hostname `%s`", config.hostname);
+                    ESP_LOGI(TAG, "NTP server `%s`", config.ntp_server);
+                    write_config();
+                    New_Loop2 = ML2_NETWORK;
+                }
+                break;
+
 	case ML2_MQTT:
 		New_Loop2 = ML2_SETUP_MQTT;
 		break;

mercurial