# HG changeset patch # User Michiel Broek # Date 1573207066 -3600 # Node ID cc7c423f03fbf931dee2b3506cfd8c52a49092d2 # Parent 64078aa15512ac2a8d65db2aa7d16eb76c9909f7 Added network setup diff -r 64078aa15512 -r cc7c423f03fb main/config.h --- 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 diff -r 64078aa15512 -r cc7c423f03fb main/task_user.c --- 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;