@@ -82,6 +82,36 @@ void _sendLcdBuffer(String line1, String line2) {
8282 }
8383}
8484
85+ String _getScrollingText (String text , unsigned int visibleChars ) {
86+ static unsigned long lastScrollTime = 0 ;
87+ static unsigned int scrollOffset = 0 ;
88+
89+ // Añadir separación al final para el efecto loop
90+ String scrollingSSID = text + String (" " ); // espacio entre loops
91+
92+ // Actualizar desplazamiento cada 200ms
93+ if (millis () - lastScrollTime >= LCD_SLIDE_OR_FLASH_SPEED_MS ) {
94+ lastScrollTime = millis ();
95+ scrollOffset ++ ;
96+ if (scrollOffset >= scrollingSSID .length ()) {
97+ scrollOffset = 0 ;
98+ }
99+ }
100+
101+ // Construir ventana deslizante
102+ String scrolled ;
103+ for (unsigned int i = 0 ; i < visibleChars ; ++ i ) {
104+ int charIndex = (scrollOffset + i ) % scrollingSSID .length ();
105+ scrolled += scrollingSSID .charAt (charIndex );
106+ }
107+
108+ while (scrolled .length () < visibleChars ) {
109+ scrolled += " " ;
110+ }
111+
112+ return scrolled ;
113+ }
114+
85115bool pantalla_sendLcdBuffer (String newBuffer ) {
86116 static String bufferAnterior ;
87117 if ((bufferAnterior != newBuffer ) && (newBuffer != "" )) {
@@ -375,9 +405,37 @@ void pantalla_handleButtonInMenu(
375405 case BUTTON_STATUS_LEFT :
376406 newMenu = SELECCION_MENU_CONFIG_DEBUG ;
377407 break ;
408+ case BUTTON_STATUS_RIGHT :
409+ newMenu = SELECCION_MENU_CONFIG_DEBUG_WIFI_SSID ;
410+ break ;
411+ case BUTTON_STATUS_UP :
412+ case BUTTON_STATUS_DOWN :
413+ buzzer_sound_error ();
414+ break ;
415+ }
416+ break ;
417+ case SELECCION_MENU_CONFIG_DEBUG_WIFI_SSID :
418+ switch (currentButtonPressed ) {
419+ case BUTTON_STATUS_LEFT :
420+ newMenu = SELECCION_MENU_CONFIG_DEBUG_SOFT_RST_COUNT ;
421+ break ;
422+ case BUTTON_STATUS_RIGHT :
423+ newMenu = SELECCION_MENU_CONFIG_DEBUG_WIFI_IP ;
424+ break ;
378425 case BUTTON_STATUS_UP :
379426 case BUTTON_STATUS_DOWN :
427+ buzzer_sound_error ();
428+ break ;
429+ }
430+ break ;
431+ case SELECCION_MENU_CONFIG_DEBUG_WIFI_IP :
432+ switch (currentButtonPressed ) {
433+ case BUTTON_STATUS_LEFT :
434+ newMenu = SELECCION_MENU_CONFIG_DEBUG_WIFI_SSID ;
435+ break ;
380436 case BUTTON_STATUS_RIGHT :
437+ case BUTTON_STATUS_UP :
438+ case BUTTON_STATUS_DOWN :
381439 buzzer_sound_error ();
382440 break ;
383441 }
@@ -805,6 +863,23 @@ void pantalla_actualizarMenuConfigDebugSoftRstCount(String* lcdBuffer) {
805863 while (lcdBuffer -> length () < 16 ) {
806864 * lcdBuffer += String (" " );
807865 }
866+ * lcdBuffer += String ("< >" );
867+ }
868+
869+ void pantalla_actualizarMenuConfigDebugWifiSsid (String * lcdBuffer ) {
870+ * lcdBuffer = String ("WIFI: " );
871+ * lcdBuffer += _getScrollingText (settings .wifiSettings .ssid_sta , 10 );
872+
873+ if (ESP8266Utils_isWifiConnected ()) {
874+ * lcdBuffer += String ("< CONECTADO >" );
875+ } else {
876+ * lcdBuffer += String ("< DESCONECTADO >" );
877+ }
878+ }
879+
880+ void pantalla_actualizarMenuConfigDebugWifiIp (String * lcdBuffer ) {
881+ * lcdBuffer += String ("IP: " );
882+ * lcdBuffer += _getScrollingText (ESP8266Utils_getWifiIP (), 12 );
808883 * lcdBuffer += String ("< " );
809884}
810885
@@ -912,38 +987,7 @@ void pantalla_actualizarMenuConfigWifiSsid(String* lcdBuffer) {
912987 if (adjustedSSIDindex < 0 ) {
913988 mySSID = "No hay redes" ;
914989 }
915-
916- static unsigned long lastScrollTime = 0 ;
917- static unsigned int scrollOffset = 0 ;
918-
919- // Espacio visible para SSID
920- const int visibleChars = 11 ;
921-
922- // Añadir separación al final para el efecto loop
923- String scrollingSSID = mySSID + " " ; // espacio entre loops
924-
925- // Actualizar desplazamiento cada 200ms
926- if (millis () - lastScrollTime >= LCD_SLIDE_OR_FLASH_SPEED_MS ) {
927- lastScrollTime = millis ();
928- scrollOffset ++ ;
929- if (scrollOffset >= scrollingSSID .length ()) {
930- scrollOffset = 0 ;
931- }
932- }
933-
934- // Construir ventana deslizante
935- String scrolled ;
936- for (int i = 0 ; i < visibleChars ; ++ i ) {
937- int charIndex = (scrollOffset + i ) % scrollingSSID .length ();
938- scrolled += scrollingSSID .charAt (charIndex );
939- }
940-
941- * lcdBuffer += scrolled ;
942-
943- // Asegurar longitud mínima de 16
944- while (lcdBuffer -> length () < 16 ) {
945- * lcdBuffer += " " ;
946- }
990+ * lcdBuffer += _getScrollingText (mySSID , 11 );
947991
948992 // Agregar navegación
949993 * lcdBuffer += String ("< " );
@@ -1026,6 +1070,12 @@ void pantalla_actualizarMenu(uint8_t selectedMenu) {
10261070 case SELECCION_MENU_CONFIG_DEBUG_SOFT_RST_COUNT :
10271071 pantalla_actualizarMenuConfigDebugSoftRstCount (& lcdBuffer );
10281072 break ;
1073+ case SELECCION_MENU_CONFIG_DEBUG_WIFI_SSID :
1074+ pantalla_actualizarMenuConfigDebugWifiSsid (& lcdBuffer );
1075+ break ;
1076+ case SELECCION_MENU_CONFIG_DEBUG_WIFI_IP :
1077+ pantalla_actualizarMenuConfigDebugWifiIp (& lcdBuffer );
1078+ break ;
10291079 case SELECCION_MENU_CONFIG_WIFI :
10301080 pantalla_actualizarMenuConfigWifi (& lcdBuffer );
10311081 break ;
0 commit comments