diff --git a/src/hasp/hasp_attribute.h b/src/hasp/hasp_attribute.h index 792d1fed..f35cac27 100644 --- a/src/hasp/hasp_attribute.h +++ b/src/hasp/hasp_attribute.h @@ -456,5 +456,6 @@ _HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t) #define ATTR_TEXT_HOSTNAME 10125 #define ATTR_TEXT_MODEL 54561 #define ATTR_TEXT_VERSION 60178 +#define ATTR_TEXT_SSID 62981 #endif diff --git a/src/hasp/hasp_attribute_helper.h b/src/hasp/hasp_attribute_helper.h index e7df8cd2..0cc2cc15 100644 --- a/src/hasp/hasp_attribute_helper.h +++ b/src/hasp/hasp_attribute_helper.h @@ -120,15 +120,6 @@ lv_obj_t* FindButtonLabel(lv_obj_t* btn) return NULL; } -// OK -static inline void my_btn_set_text(lv_obj_t* obj, const char* value) -{ - lv_obj_t* label = FindButtonLabel(obj); - if(label) { - lv_label_set_text(label, value); - } -} - // OK - lvgl does not return a const char * static const char* my_label_get_text(const lv_obj_t* label) { @@ -144,10 +135,18 @@ static void my_label_set_text(lv_obj_t* label, const char* text) switch(hash) { case ATTR_TEXT_MAC: - case ATTR_TEXT_IP: if(len == 4) break; break; +#if HASP_USE_WIFI > 0 + case ATTR_TEXT_SSID: + if(len == 6) static_text = wifi_get_ssid(); + break; + + case ATTR_TEXT_IP: + if(len == 4) static_text = wifi_get_ip_address(); + break; +#endif case ATTR_TEXT_HOSTNAME: if(len == 10) static_text = haspDevice.get_hostname(); break; @@ -200,6 +199,15 @@ static const char* my_btn_get_text(const lv_obj_t* obj) return NULL; } +// OK +static inline void my_btn_set_text(lv_obj_t* obj, const char* value) +{ + lv_obj_t* label = FindButtonLabel(obj); + if(label) { + my_label_set_text(label, value); + } +} + /** * Set a new value_str for an object. Memory will be allocated to store the text by the object. * @param obj pointer to a object diff --git a/src/sys/net/hasp_wifi.cpp b/src/sys/net/hasp_wifi.cpp index 9cfa1af8..1a55de43 100644 --- a/src/sys/net/hasp_wifi.cpp +++ b/src/sys/net/hasp_wifi.cpp @@ -48,6 +48,7 @@ char wifiPassword[64] = WIFI_PASSW; #else char wifiPassword[64] = ""; #endif +char wifiIpAddress[16] = ""; uint8_t wifiReconnectCounter = 0; // const byte DNS_PORT = 53; @@ -60,10 +61,11 @@ static void wifiConnected(IPAddress ipaddress) #if defined(STM32F4xx) IPAddress ip; ip = WiFi.localIP(); - LOG_TRACE(TAG_WIFI, F("Received IP address %d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]); + snprintf_P(wifiIpAddress, sizeof(wifiIpAddress), PSTR("%d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]); #else - LOG_TRACE(TAG_WIFI, F(D_NETWORK_IP_ADDRESS_RECEIVED), ipaddress.toString().c_str()); + strncpy(wifiIpAddress, ipaddress.toString().c_str(), sizeof(wifiIpAddress)); #endif + LOG_TRACE(TAG_WIFI, F(D_NETWORK_IP_ADDRESS_RECEIVED), wifiIpAddress); LOG_VERBOSE(TAG_WIFI, F("Connected = %s"), WiFi.status() == WL_CONNECTED ? PSTR(D_NETWORK_ONLINE) : PSTR(D_NETWORK_OFFLINE)); @@ -73,8 +75,9 @@ static void wifiConnected(IPAddress ipaddress) static void wifiDisconnected(const char* ssid, uint8_t reason) { wifiReconnectCounter++; + char buffer[64]; - haspProgressVal(wifiReconnectCounter * 3); + // haspProgressVal(wifiReconnectCounter * 3); // networkStop(); if(wifiReconnectCounter > 33) { @@ -82,8 +85,6 @@ static void wifiDisconnected(const char* ssid, uint8_t reason) dispatch_reboot(false); } - char buffer[64]; - switch(reason) { #if defined(ARDUINO_ARCH_ESP8266) case REASON_UNSPECIFIED: @@ -514,11 +515,22 @@ void wifi_get_statusupdate(char* buffer, size_t len) snprintf_P(buffer, len, PSTR("\"ssid\":\"%s\",\"rssi\":%i,\"ip\":\"%d.%d.%d.%d\","), WiFi.SSID(), WiFi.RSSI(), ip[0], ip[1], ip[2], ip[3]); #else + strncpy(wifiIpAddress, WiFi.localIP().toString().c_str(), sizeof(wifiIpAddress)); snprintf_P(buffer, len, PSTR("\"ssid\":\"%s\",\"rssi\":%i,\"ip\":\"%s\","), WiFi.SSID().c_str(), WiFi.RSSI(), - WiFi.localIP().toString().c_str()); + wifiIpAddress); #endif } +const char* wifi_get_ssid() +{ + return wifiSsid; +} + +const char* wifi_get_ip_address() +{ + return wifiIpAddress; +} + void wifi_get_info(JsonDocument& doc) { String buffer((char*)0); diff --git a/src/sys/net/hasp_wifi.h b/src/sys/net/hasp_wifi.h index b949bc9a..7abba5bf 100644 --- a/src/sys/net/hasp_wifi.h +++ b/src/sys/net/hasp_wifi.h @@ -16,6 +16,8 @@ bool wifiValidateSsid(const char* ssid, const char* pass); void wifi_get_statusupdate(char* buffer, size_t len); void wifi_get_info(JsonDocument& doc); +const char* wifi_get_ssid(); +const char* wifi_get_ip_address(); #if HASP_USE_CONFIG > 0 bool wifiGetConfig(const JsonObject& settings);