Add ssid and ip dynamic text parameters

This commit is contained in:
fvanroie 2021-05-18 13:41:00 +02:00
parent 62540e8443
commit 952ab55b98
4 changed files with 39 additions and 16 deletions

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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);