Add ipinfo in status proto message
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
This commit is contained in:
@@ -34,6 +34,7 @@ typedef struct _WifiStatus {
|
|||||||
bool connected;
|
bool connected;
|
||||||
pb_callback_t ssid;
|
pb_callback_t ssid;
|
||||||
int32_t rssi;
|
int32_t rssi;
|
||||||
|
pb_callback_t ip_address;
|
||||||
} WifiStatus;
|
} WifiStatus;
|
||||||
|
|
||||||
/* Contains raw UART data */
|
/* Contains raw UART data */
|
||||||
@@ -66,13 +67,13 @@ extern "C" {
|
|||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define SensorChannelData_init_default {0, 0, 0}
|
#define SensorChannelData_init_default {0, 0, 0}
|
||||||
#define SensorData_init_default {false, SensorChannelData_init_default, false, SensorChannelData_init_default, false, SensorChannelData_init_default, 0, 0}
|
#define SensorData_init_default {false, SensorChannelData_init_default, false, SensorChannelData_init_default, false, SensorChannelData_init_default, 0, 0}
|
||||||
#define WifiStatus_init_default {0, {{NULL}, NULL}, 0}
|
#define WifiStatus_init_default {0, {{NULL}, NULL}, 0, {{NULL}, NULL}}
|
||||||
#define UartData_init_default {{{NULL}, NULL}}
|
#define UartData_init_default {{{NULL}, NULL}}
|
||||||
#define LoadSwStatus_init_default {0, 0}
|
#define LoadSwStatus_init_default {0, 0}
|
||||||
#define StatusMessage_init_default {0, {SensorData_init_default}}
|
#define StatusMessage_init_default {0, {SensorData_init_default}}
|
||||||
#define SensorChannelData_init_zero {0, 0, 0}
|
#define SensorChannelData_init_zero {0, 0, 0}
|
||||||
#define SensorData_init_zero {false, SensorChannelData_init_zero, false, SensorChannelData_init_zero, false, SensorChannelData_init_zero, 0, 0}
|
#define SensorData_init_zero {false, SensorChannelData_init_zero, false, SensorChannelData_init_zero, false, SensorChannelData_init_zero, 0, 0}
|
||||||
#define WifiStatus_init_zero {0, {{NULL}, NULL}, 0}
|
#define WifiStatus_init_zero {0, {{NULL}, NULL}, 0, {{NULL}, NULL}}
|
||||||
#define UartData_init_zero {{{NULL}, NULL}}
|
#define UartData_init_zero {{{NULL}, NULL}}
|
||||||
#define LoadSwStatus_init_zero {0, 0}
|
#define LoadSwStatus_init_zero {0, 0}
|
||||||
#define StatusMessage_init_zero {0, {SensorData_init_zero}}
|
#define StatusMessage_init_zero {0, {SensorData_init_zero}}
|
||||||
@@ -89,6 +90,7 @@ extern "C" {
|
|||||||
#define WifiStatus_connected_tag 1
|
#define WifiStatus_connected_tag 1
|
||||||
#define WifiStatus_ssid_tag 2
|
#define WifiStatus_ssid_tag 2
|
||||||
#define WifiStatus_rssi_tag 3
|
#define WifiStatus_rssi_tag 3
|
||||||
|
#define WifiStatus_ip_address_tag 4
|
||||||
#define UartData_data_tag 1
|
#define UartData_data_tag 1
|
||||||
#define LoadSwStatus_main_tag 1
|
#define LoadSwStatus_main_tag 1
|
||||||
#define LoadSwStatus_usb_tag 2
|
#define LoadSwStatus_usb_tag 2
|
||||||
@@ -120,7 +122,8 @@ X(a, STATIC, SINGULAR, UINT32, uptime_sec, 5)
|
|||||||
#define WifiStatus_FIELDLIST(X, a) \
|
#define WifiStatus_FIELDLIST(X, a) \
|
||||||
X(a, STATIC, SINGULAR, BOOL, connected, 1) \
|
X(a, STATIC, SINGULAR, BOOL, connected, 1) \
|
||||||
X(a, CALLBACK, SINGULAR, STRING, ssid, 2) \
|
X(a, CALLBACK, SINGULAR, STRING, ssid, 2) \
|
||||||
X(a, STATIC, SINGULAR, INT32, rssi, 3)
|
X(a, STATIC, SINGULAR, INT32, rssi, 3) \
|
||||||
|
X(a, CALLBACK, SINGULAR, STRING, ip_address, 4)
|
||||||
#define WifiStatus_CALLBACK pb_default_field_callback
|
#define WifiStatus_CALLBACK pb_default_field_callback
|
||||||
#define WifiStatus_DEFAULT NULL
|
#define WifiStatus_DEFAULT NULL
|
||||||
|
|
||||||
|
|||||||
@@ -138,6 +138,8 @@ static void status_wifi_callback(void* arg)
|
|||||||
StatusMessage message = StatusMessage_init_zero;
|
StatusMessage message = StatusMessage_init_zero;
|
||||||
message.which_payload = StatusMessage_wifi_status_tag;
|
message.which_payload = StatusMessage_wifi_status_tag;
|
||||||
WifiStatus* wifi_status = &message.payload.wifi_status;
|
WifiStatus* wifi_status = &message.payload.wifi_status;
|
||||||
|
char ip_str[16];
|
||||||
|
esp_netif_ip_info_t ip_info;
|
||||||
|
|
||||||
if (wifi_get_current_ap_info(&ap_info) == ESP_OK)
|
if (wifi_get_current_ap_info(&ap_info) == ESP_OK)
|
||||||
{
|
{
|
||||||
@@ -153,6 +155,17 @@ static void status_wifi_callback(void* arg)
|
|||||||
wifi_status->rssi = 0;
|
wifi_status->rssi = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (wifi_get_current_ip_info(&ip_info) == ESP_OK)
|
||||||
|
{
|
||||||
|
esp_ip4addr_ntoa(&ip_info.ip, ip_str, sizeof(ip_str));
|
||||||
|
wifi_status->ip_address.funcs.encode = &encode_string;
|
||||||
|
wifi_status->ip_address.arg = ip_str;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wifi_status->ip_address.arg = ""; // Empty string
|
||||||
|
}
|
||||||
|
|
||||||
send_pb_message(StatusMessage_fields, &message);
|
send_pb_message(StatusMessage_fields, &message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ export function updateSwitchStatusUI(swStatus) {
|
|||||||
*/
|
*/
|
||||||
export function updateWifiStatusUI(data) {
|
export function updateWifiStatusUI(data) {
|
||||||
if (data.connected) {
|
if (data.connected) {
|
||||||
|
// Update header status
|
||||||
dom.wifiSsidStatus.textContent = data.ssid;
|
dom.wifiSsidStatus.textContent = data.ssid;
|
||||||
dom.wifiStatus.title = `Signal Strength: ${data.rssi} dBm`;
|
dom.wifiStatus.title = `Signal Strength: ${data.rssi} dBm`;
|
||||||
let iconClass = 'bi me-2 ';
|
let iconClass = 'bi me-2 ';
|
||||||
@@ -91,12 +92,21 @@ export function updateWifiStatusUI(data) {
|
|||||||
dom.wifiIcon.className = iconClass;
|
dom.wifiIcon.className = iconClass;
|
||||||
dom.wifiStatus.classList.replace('text-muted', 'text-success');
|
dom.wifiStatus.classList.replace('text-muted', 'text-success');
|
||||||
dom.wifiStatus.classList.remove('text-danger');
|
dom.wifiStatus.classList.remove('text-danger');
|
||||||
|
|
||||||
|
// Update settings modal
|
||||||
|
dom.currentWifiSsid.textContent = data.ssid;
|
||||||
|
dom.currentWifiIp.textContent = `IP Address: ${data.ipAddress || 'N/A'}`;
|
||||||
} else {
|
} else {
|
||||||
|
// Update header status
|
||||||
dom.wifiSsidStatus.textContent = 'Disconnected';
|
dom.wifiSsidStatus.textContent = 'Disconnected';
|
||||||
dom.wifiStatus.title = '';
|
dom.wifiStatus.title = '';
|
||||||
dom.wifiIcon.className = 'bi bi-wifi-off me-2';
|
dom.wifiIcon.className = 'bi bi-wifi-off me-2';
|
||||||
dom.wifiStatus.classList.replace('text-success', 'text-muted');
|
dom.wifiStatus.classList.replace('text-success', 'text-muted');
|
||||||
dom.wifiStatus.classList.remove('text-danger');
|
dom.wifiStatus.classList.remove('text-danger');
|
||||||
|
|
||||||
|
// Update settings modal
|
||||||
|
dom.currentWifiSsid.textContent = 'Not Connected';
|
||||||
|
dom.currentWifiIp.textContent = 'IP Address: -';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ message WifiStatus {
|
|||||||
bool connected = 1;
|
bool connected = 1;
|
||||||
string ssid = 2;
|
string ssid = 2;
|
||||||
int32 rssi = 3;
|
int32 rssi = 3;
|
||||||
|
string ip_address = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Contains raw UART data
|
// Contains raw UART data
|
||||||
|
|||||||
Reference in New Issue
Block a user