mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-24 11:46:34 +00:00
Fix disconnected mqtt info not showing up
This commit is contained in:
parent
0d1066e97f
commit
4da628cc68
@ -1146,14 +1146,21 @@ static hasp_attribute_type_t specific_options_attribute(lv_obj_t* obj, const cha
|
||||
} else {
|
||||
strcpy_P(*text, "Not implemented"); // TODO : Literal String
|
||||
}
|
||||
return hasp_attribute_type_t::HASP_ATTR_TYPE_METHOD_OK;
|
||||
return hasp_attribute_type_t::HASP_ATTR_TYPE_STR;
|
||||
case LV_HASP_MSGBOX:
|
||||
if(update) {
|
||||
my_msgbox_set_map(obj, payload);
|
||||
} else {
|
||||
strcpy_P(*text, "Not implemented"); // TODO : Literal String
|
||||
}
|
||||
return hasp_attribute_type_t::HASP_ATTR_TYPE_METHOD_OK;
|
||||
return hasp_attribute_type_t::HASP_ATTR_TYPE_STR;
|
||||
case LV_HASP_LIST:
|
||||
if(update) {
|
||||
my_list_set_options(obj, payload);
|
||||
} else {
|
||||
strcpy_P(*text, "Not implemented"); // TODO : Literal String
|
||||
}
|
||||
return hasp_attribute_type_t::HASP_ATTR_TYPE_STR;
|
||||
default:
|
||||
break; // not found
|
||||
}
|
||||
@ -1324,6 +1331,11 @@ static bool my_obj_get_range(lv_obj_t* obj, int32_t& min, int32_t& max)
|
||||
max = my_chart_get_max_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_SPINBOX:
|
||||
min = my_spinbox_get_min_value(obj);
|
||||
max = my_spinbox_get_max_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_DROPDOWN:
|
||||
case LV_HASP_ROLLER:
|
||||
return false; // not supported yet
|
||||
@ -1336,70 +1348,102 @@ static bool my_obj_get_range(lv_obj_t* obj, int32_t& min, int32_t& max)
|
||||
|
||||
static hasp_attribute_type_t attribute_common_val(lv_obj_t* obj, int32_t& val, bool update)
|
||||
{
|
||||
if(obj_check_type(obj, LV_HASP_BUTTON)) {
|
||||
if(lv_btn_get_checkable(obj)) {
|
||||
if(update) {
|
||||
if(val)
|
||||
lv_obj_add_state(obj, LV_STATE_CHECKED);
|
||||
else
|
||||
lv_obj_clear_state(obj, LV_STATE_CHECKED);
|
||||
switch(obj_get_type(obj)) {
|
||||
|
||||
case LV_HASP_BUTTON:
|
||||
if(lv_btn_get_checkable(obj)) {
|
||||
if(update) {
|
||||
if(val)
|
||||
lv_obj_add_state(obj, LV_STATE_CHECKED);
|
||||
else
|
||||
lv_obj_clear_state(obj, LV_STATE_CHECKED);
|
||||
} else {
|
||||
val = lv_obj_get_state(obj, LV_BTN_PART_MAIN) & LV_STATE_CHECKED;
|
||||
}
|
||||
} else {
|
||||
val = lv_obj_get_state(obj, LV_BTN_PART_MAIN) & LV_STATE_CHECKED;
|
||||
return HASP_ATTR_TYPE_NOT_FOUND; // not checkable
|
||||
}
|
||||
} else {
|
||||
return HASP_ATTR_TYPE_NOT_FOUND; // not checkable
|
||||
}
|
||||
} else if(obj_check_type(obj, LV_HASP_CHECKBOX)) {
|
||||
if(update)
|
||||
lv_checkbox_set_checked(obj, !!val);
|
||||
else
|
||||
val = lv_checkbox_is_checked(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_SWITCH)) {
|
||||
if(update)
|
||||
!val ? lv_switch_off(obj, LV_ANIM_ON) : lv_switch_on(obj, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_switch_get_state(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_DROPDOWN)) {
|
||||
lv_dropdown_set_selected(obj, (uint16_t)val);
|
||||
} else if(obj_check_type(obj, LV_HASP_LINEMETER)) {
|
||||
if(update)
|
||||
lv_linemeter_set_value(obj, val);
|
||||
else
|
||||
val = lv_linemeter_get_value(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_SLIDER)) {
|
||||
if(update)
|
||||
lv_slider_set_value(obj, val, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_slider_get_value(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_LED)) {
|
||||
if(update)
|
||||
lv_led_set_bright(obj, (uint8_t)val);
|
||||
else
|
||||
val = lv_led_get_bright(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_ARC)) {
|
||||
if(update)
|
||||
lv_arc_set_value(obj, val);
|
||||
else
|
||||
val = lv_arc_get_value(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_GAUGE)) {
|
||||
if(update)
|
||||
lv_gauge_set_value(obj, 0, val);
|
||||
else
|
||||
val = lv_gauge_get_value(obj, 0);
|
||||
} else if(obj_check_type(obj, LV_HASP_ROLLER)) {
|
||||
lv_roller_set_selected(obj, (uint16_t)val, LV_ANIM_ON);
|
||||
} else if(obj_check_type(obj, LV_HASP_BAR)) {
|
||||
if(update)
|
||||
lv_bar_set_value(obj, val, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_bar_get_value(obj);
|
||||
} else if(obj_check_type(obj, LV_HASP_TABVIEW)) {
|
||||
if(update)
|
||||
lv_tabview_set_tab_act(obj, val, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_tabview_get_tab_act(obj);
|
||||
} else {
|
||||
return HASP_ATTR_TYPE_NOT_FOUND; // not found
|
||||
break;
|
||||
|
||||
case LV_HASP_CHECKBOX:
|
||||
if(update)
|
||||
lv_checkbox_set_checked(obj, !!val);
|
||||
else
|
||||
val = lv_checkbox_is_checked(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_SWITCH:
|
||||
if(update)
|
||||
!val ? lv_switch_off(obj, LV_ANIM_ON) : lv_switch_on(obj, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_switch_get_state(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_DROPDOWN:
|
||||
lv_dropdown_set_selected(obj, (uint16_t)val);
|
||||
|
||||
case LV_HASP_LINEMETER:
|
||||
if(update)
|
||||
lv_linemeter_set_value(obj, val);
|
||||
else
|
||||
val = lv_linemeter_get_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_SLIDER:
|
||||
if(update)
|
||||
lv_slider_set_value(obj, val, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_slider_get_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_LED:
|
||||
if(update)
|
||||
lv_led_set_bright(obj, (uint8_t)val);
|
||||
else
|
||||
val = lv_led_get_bright(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_ARC:
|
||||
if(update)
|
||||
lv_arc_set_value(obj, val);
|
||||
else
|
||||
val = lv_arc_get_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_GAUGE:
|
||||
if(update)
|
||||
lv_gauge_set_value(obj, 0, val);
|
||||
else
|
||||
val = lv_gauge_get_value(obj, 0);
|
||||
break;
|
||||
|
||||
case LV_HASP_ROLLER:
|
||||
lv_roller_set_selected(obj, (uint16_t)val, LV_ANIM_ON);
|
||||
break;
|
||||
|
||||
case LV_HASP_BAR:
|
||||
if(update)
|
||||
lv_bar_set_value(obj, val, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_bar_get_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_SPINBOX:
|
||||
if(update)
|
||||
lv_spinbox_set_value(obj, val);
|
||||
else
|
||||
val = lv_spinbox_get_value(obj);
|
||||
break;
|
||||
|
||||
case LV_HASP_TABVIEW:
|
||||
if(update)
|
||||
lv_tabview_set_tab_act(obj, val, LV_ANIM_ON);
|
||||
else
|
||||
val = lv_tabview_get_tab_act(obj);
|
||||
break;
|
||||
|
||||
default:
|
||||
return HASP_ATTR_TYPE_NOT_FOUND; // not found
|
||||
}
|
||||
|
||||
return HASP_ATTR_TYPE_INT; // found
|
||||
@ -1488,13 +1532,22 @@ static hasp_attribute_type_t attribute_common_range(lv_obj_t* obj, int32_t& val,
|
||||
|
||||
case LV_HASP_CHART:
|
||||
if(update && (set_min ? val : min) == (set_max ? val : max))
|
||||
return HASP_ATTR_TYPE_RANGE_ERROR; // prevent setting min=max
|
||||
return HASP_ATTR_TYPE_RANGE_ERROR; // prevent setting min=max
|
||||
if(update)
|
||||
lv_chart_set_range(obj, set_min ? val : min, set_max ? val : max);
|
||||
else
|
||||
val = set_min ? min : max;
|
||||
break;
|
||||
|
||||
case LV_HASP_SPINBOX:
|
||||
if(update && (set_min ? val : min) == (set_max ? val : max))
|
||||
return HASP_ATTR_TYPE_RANGE_ERROR; // prevent setting min=max
|
||||
if(update)
|
||||
lv_spinbox_set_range(obj, set_min ? val : min, set_max ? val : max);
|
||||
else
|
||||
val = set_min ? min : max;
|
||||
break;
|
||||
|
||||
default:
|
||||
return HASP_ATTR_TYPE_NOT_FOUND;
|
||||
}
|
||||
@ -1906,8 +1959,9 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attribute, const char
|
||||
break;
|
||||
|
||||
// case ATTR_SYMBOL:
|
||||
// (update) ? lv_dropdown_set_symbol(obj, payload) : attr_out_str(obj, attr,
|
||||
// lv_dropdown_get_symbol(obj)); return true;
|
||||
// (update) ? lv_dropdown_set_symbol(obj, payload) :
|
||||
// attr_out_str(obj, attr, lv_dropdown_get_symbol(obj));
|
||||
// return true;
|
||||
|
||||
case ATTR_DELETE:
|
||||
case ATTR_CLEAR:
|
||||
|
@ -76,6 +76,20 @@ lv_chart_series_t* my_chart_get_series(lv_obj_t* chart, uint8_t ser_num)
|
||||
return ser;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t my_spinbox_get_min_value(lv_obj_t* chart)
|
||||
{
|
||||
lv_spinbox_ext_t* ext = (lv_spinbox_ext_t*)lv_obj_get_ext_attr(chart);
|
||||
return ext->range_min;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t my_spinbox_get_max_value(lv_obj_t* chart)
|
||||
{
|
||||
lv_spinbox_ext_t* ext = (lv_spinbox_ext_t*)lv_obj_get_ext_attr(chart);
|
||||
return ext->range_max;
|
||||
}
|
||||
|
||||
// OK
|
||||
static inline lv_color_t haspLogColor(lv_color_t color)
|
||||
{
|
||||
@ -280,6 +294,37 @@ void my_obj_set_value_str_text(lv_obj_t* obj, uint8_t part, lv_state_t state, co
|
||||
// LOG_VERBOSE(TAG_ATTR, F("%s %d"), __FILE__, __LINE__);
|
||||
}
|
||||
|
||||
void my_list_set_options(lv_obj_t* obj, const char* payload)
|
||||
{ // Reserve memory for JsonDocument
|
||||
size_t maxsize = (128u * ((strlen(payload) / 128) + 1)) + 256;
|
||||
DynamicJsonDocument doc(maxsize);
|
||||
DeserializationError jsonError = deserializeJson(doc, payload);
|
||||
|
||||
if(jsonError) { // Couldn't parse incoming JSON payload
|
||||
dispatch_json_error(TAG_ATTR, jsonError);
|
||||
return;
|
||||
}
|
||||
|
||||
doc.shrinkToFit();
|
||||
lv_list_clean(obj);
|
||||
|
||||
JsonArray arr = doc.as<JsonArray>(); // Parse payload
|
||||
lv_obj_t* btn = NULL;
|
||||
for(JsonVariant v : arr) {
|
||||
const char* c = v.as<const char*>();
|
||||
if(*c == 0xee || *c == 0xef) {
|
||||
char icon[4];
|
||||
memcpy(icon, c, 3);
|
||||
icon[3] = '\0';
|
||||
btn = lv_list_add_btn(obj, icon, c + 3);
|
||||
|
||||
} else
|
||||
btn = lv_list_add_btn(obj, NULL, c);
|
||||
}
|
||||
|
||||
if(btn) lv_obj_set_event_cb(btn, selector_event_handler);
|
||||
}
|
||||
|
||||
void my_tabview_set_text(lv_obj_t* obj, const char* payload)
|
||||
{
|
||||
uint16_t id = lv_tabview_get_tab_act(obj);
|
||||
|
@ -529,6 +529,25 @@ void hasp_new_object(const JsonObject& config, uint8_t& saved_page_id)
|
||||
}
|
||||
break;
|
||||
|
||||
case LV_HASP_SPINBOX:
|
||||
case HASP_OBJ_SPINBOX:
|
||||
obj = lv_spinbox_create(parent_obj, NULL);
|
||||
if(obj) {
|
||||
lv_spinbox_set_range(obj, 0, 100);
|
||||
lv_obj_set_event_cb(obj, slider_event_handler);
|
||||
obj->user_data.objid = LV_HASP_SPINBOX;
|
||||
}
|
||||
break;
|
||||
|
||||
case LV_HASP_LIST:
|
||||
case HASP_OBJ_LIST:
|
||||
obj = lv_list_create(parent_obj, NULL);
|
||||
if(obj) {
|
||||
// Callbacks are set on the individual buttons
|
||||
obj->user_data.objid = LV_HASP_LIST;
|
||||
}
|
||||
break;
|
||||
|
||||
case LV_HASP_CHART:
|
||||
case HASP_OBJ_CHART:
|
||||
obj = lv_chart_create(parent_obj, NULL);
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define D_NETWORK_ONLINE "online"
|
||||
#define D_NETWORK_OFFLINE "offline"
|
||||
#define D_NETWORK_CONNECTION_FAILED "Connection failed"
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "Authorization failed"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "plate_%s"
|
||||
#define D_MQTT_CONNECTING "Connecting..."
|
||||
@ -64,7 +65,6 @@
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Client login from %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Client connected from %s"
|
||||
#define D_TELNET_CLIENT_NOT_CONNECTED "Client NOT connected"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "Authorization failed!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Incorrect login attempt from %s"
|
||||
#define D_TELNET_STARTED "Telnet console started"
|
||||
#define D_TELNET_FAILED "Failed to start telnet console"
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define D_NETWORK_ONLINE "en linea"
|
||||
#define D_NETWORK_OFFLINE "fuera de línea"
|
||||
#define D_NETWORK_CONNECTION_FAILED "Falló la conexión"
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "Falló la autorización"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "placa_%s"
|
||||
#define D_MQTT_CONNECTING "Conectando..."
|
||||
@ -63,7 +64,6 @@
|
||||
#define D_TELNET_CLOSING_CONNECTION "Cerrando sesión de %s"
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Se ha firmado el cliente %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Se ha conectado el cliente %s"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "Falló la autorización!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Intento de conexión incorrecta desde %s"
|
||||
#define D_TELNET_STARTED "Console Telnet arrancada"
|
||||
#define D_TELNET_FAILED "Falló el arranque de la consola Telnet"
|
||||
@ -86,8 +86,8 @@
|
||||
|
||||
#define D_ATTRIBUTE_UNKNOWN "Propiedad %s desconocida"
|
||||
// D_ATTRIBUTE_OBSOLETE D_ATTRIBUTE_INSTEAD can be used together or just D_ATTRIBUTE_OBSOLETE alone
|
||||
#define D_ATTRIBUTE_OBSOLETE "%s is obsolete" // new
|
||||
#define D_ATTRIBUTE_INSTEAD ", use %s instead" // new
|
||||
#define D_ATTRIBUTE_OBSOLETE "%s is obsolete" // new
|
||||
#define D_ATTRIBUTE_INSTEAD ", use %s instead" // new
|
||||
#define D_ATTRIBUTE_READ_ONLY "%s es solo lectura"
|
||||
#define D_ATTRIBUTE_PAGE_METHOD_INVALID "No se puede llamar %s en una página"
|
||||
#define D_ATTRIBUTE_ALIGN_INVALID "Invalid align property: %s" // new
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define D_NETWORK_ONLINE "en ligne"
|
||||
#define D_NETWORK_OFFLINE "déconnecté"
|
||||
#define D_NETWORK_CONNECTION_FAILED "Échec de la connexion "
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "Échec de l'autorisation"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "plaque_%s"
|
||||
#define D_MQTT_CONNECTING "Connexion..."
|
||||
@ -64,7 +65,6 @@
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Connexion client depuis %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Client connecté depuis %s"
|
||||
#define D_TELNET_CLIENT_NOT_CONNECTED "Client NON connecté"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "Échec de l'autorisation!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Tentative incorrecte de %s"
|
||||
#define D_TELNET_STARTED "Console Telnet démarré"
|
||||
#define D_TELNET_FAILED "Échec du démarrage de la console telnet"
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define D_NETWORK_ONLINE "online"
|
||||
#define D_NETWORK_OFFLINE "offline"
|
||||
#define D_NETWORK_CONNECTION_FAILED "A kapcsolódás meghiúsult"
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "A hitelesítés sikertelen"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "plate_%s"
|
||||
#define D_MQTT_CONNECTING "Csatlakozás..."
|
||||
@ -64,7 +65,6 @@
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Kliens bejelentkezés innen: %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Kliens csatlakozva innen: %s"
|
||||
#define D_TELNET_CLIENT_NOT_CONNECTED "Kliens NEM csatlakozik"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "A hitelesítés sikertelen!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Helytelen bejelentkezési kísérlet %s-ről"
|
||||
#define D_TELNET_STARTED "Telnet konzol elindítva"
|
||||
#define D_TELNET_FAILED "Telnet konzol elindítása meghiúsult"
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define D_NETWORK_ONLINE "online"
|
||||
#define D_NETWORK_OFFLINE "offline"
|
||||
#define D_NETWORK_CONNECTION_FAILED "Verbinding mislukt"
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "Autorisatie mislukt"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "plaat_%s"
|
||||
#define D_MQTT_CONNECTING "Verbinden..."
|
||||
@ -64,7 +65,6 @@
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Client aangemeld van %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Client verbonden van %s"
|
||||
#define D_TELNET_CLIENT_NOT_CONNECTED "Client NIET verbonden"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "Autorisatie mislukt!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Aanmelding van %s mislukt"
|
||||
#define D_TELNET_STARTED "Telnet console gestart"
|
||||
#define D_TELNET_FAILED "Telnet console starten is mislukt"
|
||||
|
@ -44,6 +44,7 @@
|
||||
#define D_NETWORK_ONLINE "Online"
|
||||
#define D_NETWORK_OFFLINE "Offline"
|
||||
#define D_NETWORK_CONNECTION_FAILED "Falhou a ligação"
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "Falhou a autorização"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "placa_%s"
|
||||
#define D_MQTT_CONNECTING "A ligar..."
|
||||
@ -64,7 +65,6 @@
|
||||
#define D_TELNET_CLOSING_CONNECTION "A fechar a ligação de %s"
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Foi feito login ao cliente %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Foi conectado ao cliente %s"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "Falhou a autorização!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Tentativa de ligação incorreta desde %s"
|
||||
#define D_TELNET_STARTED "Consola inicializada"
|
||||
#define D_TELNET_FAILED "Falhou inicialização da consola"
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define D_NETWORK_ONLINE "online"
|
||||
#define D_NETWORK_OFFLINE "offline"
|
||||
#define D_NETWORK_CONNECTION_FAILED "Conexiune eșuată"
|
||||
#define D_NETWORK_CONNECTION_UNAUTHORIZED "Autorizatia a esuat"
|
||||
|
||||
#define D_MQTT_DEFAULT_NAME "plate_%s"
|
||||
#define D_MQTT_CONNECTING "Conectare..."
|
||||
@ -64,7 +65,6 @@
|
||||
#define D_TELNET_CLIENT_LOGIN_FROM "Conectare client de la %s"
|
||||
#define D_TELNET_CLIENT_CONNECT_FROM "Client conectat de la %s"
|
||||
#define D_TELNET_CLIENT_NOT_CONNECTED "Clientul NU este conectat"
|
||||
#define D_TELNET_AUTHENTICATION_FAILED "Autorizatia a esuat!"
|
||||
#define D_TELNET_INCORRECT_LOGIN_ATTEMPT "Încercare incorectă de autentificare de la %s"
|
||||
#define D_TELNET_STARTED "Consola Telnet pornită"
|
||||
#define D_TELNET_FAILED "Nu s-a putut porni consola Telnet"
|
||||
|
@ -372,7 +372,7 @@ void mqttStop()
|
||||
|
||||
void mqtt_get_info(JsonDocument& doc)
|
||||
{
|
||||
char mqttClientId[64];
|
||||
char buffer[64];
|
||||
String mac((char*)0);
|
||||
mac.reserve(64);
|
||||
|
||||
@ -382,15 +382,33 @@ void mqtt_get_info(JsonDocument& doc)
|
||||
|
||||
mac = halGetMacAddress(3, "");
|
||||
mac.toLowerCase();
|
||||
snprintf_P(mqttClientId, sizeof(mqttClientId), PSTR("%s-%s"), haspDevice.get_hostname(), mac.c_str());
|
||||
info[F(D_INFO_CLIENTID)] = mqttClientId;
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s-%s"), haspDevice.get_hostname(), mac.c_str());
|
||||
info[F(D_INFO_CLIENTID)] = buffer;
|
||||
|
||||
if(mqttIsConnected()) { // Check MQTT connection
|
||||
info[F(D_INFO_STATUS)] = F(D_INFO_CONNECTED);
|
||||
} else {
|
||||
info[F(D_INFO_STATUS)] = F("<font color='red'><b>" D_INFO_DISCONNECTED "</b></font>, return code: ");
|
||||
// +String(mqttClient.returnCode());
|
||||
switch(mqttClient.state()) {
|
||||
case MQTT_CONNECT_UNAUTHORIZED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(D_NETWORK_CONNECTION_UNAUTHORIZED));
|
||||
break;
|
||||
case MQTT_CONNECT_FAILED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(D_NETWORK_CONNECTION_FAILED));
|
||||
break;
|
||||
case MQTT_DISCONNECTED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(D_INFO_DISCONNECTED));
|
||||
break;
|
||||
case MQTT_CONNECTED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(D_INFO_CONNECTED));
|
||||
break;
|
||||
case MQTT_CONNECTION_TIMEOUT:
|
||||
case MQTT_CONNECTION_LOST:
|
||||
case MQTT_CONNECT_BAD_PROTOCOL:
|
||||
case MQTT_CONNECT_BAD_CLIENT_ID:
|
||||
case MQTT_CONNECT_UNAVAILABLE:
|
||||
case MQTT_CONNECT_BAD_CREDENTIALS:
|
||||
default:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(D_INFO_DISCONNECTED " (%d)"), mqttClient.state());
|
||||
break;
|
||||
}
|
||||
info[F(D_INFO_STATUS)] = buffer;
|
||||
|
||||
info[F(D_INFO_RECEIVED)] = mqttReceiveCount;
|
||||
info[F(D_INFO_PUBLISHED)] = mqttPublishCount;
|
||||
|
@ -131,7 +131,7 @@ static inline void telnetProcessLine()
|
||||
} else {
|
||||
telnetLoginState = TELNET_UNAUTHENTICATED;
|
||||
telnetLoginAttempt++; // Subsequent attempt
|
||||
telnetClient.println(F(D_TELNET_AUTHENTICATION_FAILED"\r\n"));
|
||||
telnetClient.println(F(D_NETWORK_CONNECTION_UNAUTHORIZED"\r\n"));
|
||||
LOG_WARNING(TAG_TELN, F(D_TELNET_INCORRECT_LOGIN_ATTEMPT), telnetClient.remoteIP().toString().c_str());
|
||||
if(telnetLoginAttempt >= 3) {
|
||||
telnetClientDisconnect();
|
||||
@ -217,7 +217,7 @@ static void telnetProcessLine(const char* input)
|
||||
} else {
|
||||
telnetLoginState = TELNET_UNAUTHENTICATED;
|
||||
telnetLoginAttempt++; // Subsequent attempt
|
||||
telnetClient.println(F(D_TELNET_AUTHENTICATION_FAILED "\r\n"));
|
||||
telnetClient.println(F(D_NETWORK_CONNECTION_UNAUTHORIZED "\r\n"));
|
||||
LOG_WARNING(TAG_TELN, F(D_TELNET_INCORRECT_LOGIN_ATTEMPT), telnetClient.remoteIP().toString().c_str());
|
||||
if(telnetLoginAttempt >= 3) {
|
||||
telnetClientDisconnect();
|
||||
|
Loading…
x
Reference in New Issue
Block a user