The access point section on the dashboard is now filled and corrected a typo. Finished the implementation of the apWifiInfoApi end point, disabled some traces, updated the dashboard's javascript code

This commit is contained in:
anschrammh 2022-10-12 23:46:02 +02:00
parent ff37020638
commit 436e0d7336
4 changed files with 84 additions and 27 deletions

View File

@ -43,6 +43,16 @@
{ {
cursor: pointer; cursor: pointer;
} }
.hide
{
display: none;
}
.show
{
display:block;
}
</style> </style>
@ -154,26 +164,27 @@
Enabled Enabled
</label> </label>
</div> </div>
<div class="row white-text left-align" style="font-size:1.2em;margin-top: 20px;margin-bottom: -40px;">
<div class="col m6"> <div class="white-text" style="font-size:1.2em;margin-top: 20px;margin-bottom: -40px;">
Connected devivces : <div class="row">
</div> <div class="col m6">
<div class="col m6"> Connected devices :
<span id="ap_connected_dev_count_id">0</span> </div>
</div> <div class="col m6">
</div> <span id="ap_connected_dev_count_id">0</span>
<div class="row white-text left-align" style="font-size:1.2em;margin-top: 20px;margin-bottom: -40px;"> </div>
<div class="col m3"> <div class="col m2">
AP IP : AP IP :
</div> </div>
<div class="col m3"> <div class="col m4">
<span id="apIP"></span> <span id="ap_IP"></span>
</div> </div>
<div class="col m3"> <div class="col m2">
MAC : MAC :
</div> </div>
<div class="col m3"> <div class="col m4">
<span id="ap_mac"></span> <span id="ap_MAC"></span>
</div>
</div> </div>
</div> </div>
@ -309,7 +320,8 @@
Available OTA update : Available OTA update :
</div> </div>
<div class="col m6"> <div class="col m6">
<span id="otaUpdateInfo"></span> <button class="btn waves-effect waves-light lime darken-3" id="otaUpdateAction"><span id="ota_update_message">refresh</span></button>
<button class="btn waves-effect waves-light green darken-3 hide" id="otaUpdateAction">update device to <span id="ota_update_version"></span> !</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -18,6 +18,7 @@ var setFrequencyReq = null;
var setRTCReq = null; var setRTCReq = null;
var sdCardSizeReq = null; var sdCardSizeReq = null;
var sdCardActionReq = null; var sdCardActionReq = null;
var apStationReq = null;
var setIoModeReq = null; var setIoModeReq = null;
var setIoLevelReq = null; var setIoLevelReq = null;
@ -111,6 +112,7 @@ function init()
App.registerAutomatedRequest({timeout:5000, pollInterval: 5000, apiEndPoint:deviceIPAddr + '/sab/io/get/mode', gotResponse:(data) => {ioModeRefreshHandler(data, 'OK');}, gotError:(e) => {ioModeRefreshHandler(e, 'FAIL');}}); App.registerAutomatedRequest({timeout:5000, pollInterval: 5000, apiEndPoint:deviceIPAddr + '/sab/io/get/mode', gotResponse:(data) => {ioModeRefreshHandler(data, 'OK');}, gotError:(e) => {ioModeRefreshHandler(e, 'FAIL');}});
App.registerAutomatedRequest({timeout:5000, pollInterval: 1000, apiEndPoint:deviceIPAddr + '/sab/io/get/level', gotResponse:(data) => {ioLevelRefreshHandler(data, 'OK');}, gotError:(e) => {ioLevelRefreshHandler(e, 'FAIL');}}); App.registerAutomatedRequest({timeout:5000, pollInterval: 1000, apiEndPoint:deviceIPAddr + '/sab/io/get/level', gotResponse:(data) => {ioLevelRefreshHandler(data, 'OK');}, gotError:(e) => {ioLevelRefreshHandler(e, 'FAIL');}});
App.registerAutomatedRequest({timeout:5000, pollInterval: 10000, apiEndPoint:deviceIPAddr + '/sab/power/info', gotResponse:(data) => {powerInfoRefreshHandler(data, 'OK');}, gotError:(e) => {powerInfoRefreshHandler(e, 'FAIL');}}); App.registerAutomatedRequest({timeout:5000, pollInterval: 10000, apiEndPoint:deviceIPAddr + '/sab/power/info', gotResponse:(data) => {powerInfoRefreshHandler(data, 'OK');}, gotError:(e) => {powerInfoRefreshHandler(e, 'FAIL');}});
App.registerAutomatedRequest({timeout:5000, pollInterval: 10000, apiEndPoint:deviceIPAddr + '/sab/power/info', gotResponse:(data) => {powerInfoRefreshHandler(data, 'OK');}, gotError:(e) => {powerInfoRefreshHandler(e, 'FAIL');}});
//All requests needing an UI action: //All requests needing an UI action:
setFrequencyReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {setFreqHandler(data, 'OK');}, gotError:(e) => {setFreqHandler(e, 'FAIL');}}); setFrequencyReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {setFreqHandler(data, 'OK');}, gotError:(e) => {setFreqHandler(e, 'FAIL');}});
@ -120,6 +122,7 @@ function init()
setIoModeReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {setIoModeHandler(data, 'OK');}, gotError:(e) => {setIoModeHandler(e, 'FAIL');}}); setIoModeReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {setIoModeHandler(data, 'OK');}, gotError:(e) => {setIoModeHandler(e, 'FAIL');}});
setIoLevelReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {setIoLevelHandler(data, 'OK');}, gotError:(e) => {setIoLevelHandler(e, 'FAIL');}}); setIoLevelReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {setIoLevelHandler(data, 'OK');}, gotError:(e) => {setIoLevelHandler(e, 'FAIL');}});
scanNetworkReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {scanAvailableNetworksHandler(data, 'OK');}, gotError:(e) => {scanAvailableNetworksHandler(data, 'FAIL');}}); scanNetworkReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {scanAvailableNetworksHandler(data, 'OK');}, gotError:(e) => {scanAvailableNetworksHandler(data, 'FAIL');}});
apStationReq = App.buildXMLHttpRequest({timeout:2000, gotResponse:(data) => {apStationHandler(data, 'OK');}, gotError:(e) => {apStationHandler(data, 'FAIL');}});
} }
//Callback functions //Callback functions
@ -193,6 +196,7 @@ function staInfoRefreshHandler(data,kind)
elemById('sigStrength').innerHTML = wifiStaObj.RSSI; elemById('sigStrength').innerHTML = wifiStaObj.RSSI;
elemById('sigStrengthPercent').innerHTML = wifiStaObj.RSSI2; elemById('sigStrengthPercent').innerHTML = wifiStaObj.RSSI2;
elemById('localIP').innerHTML = wifiStaObj['local IP']; elemById('localIP').innerHTML = wifiStaObj['local IP'];
elemById('sta_mac').innerHTML = wifiStaObj.MAC;
setSigStrenthPicture(wifiStaObj.RSSI2); setSigStrenthPicture(wifiStaObj.RSSI2);
} }
else else
@ -375,6 +379,36 @@ function scanAvailableNetworksHandler(data, kind)
} }
} }
function apStationHandler(data, kind)
{
if(kind === 'OK')
{
var apStationObj = JSON.parse(data);
var apEnabled = apStationObj.AP === 'enabled';
elemById('ap_enabled_id').checked = apEnabled;
if(apEnabled)
{
elemById('ap_connected_dev_count_id').innerHTML = apStationObj['STA count'];
elemById('ap_IP').innerHTML = apStationObj['AP IP'];
elemById('ap_MAC').innerHTML = apStationObj.MAC;
elemById('ssid').value = apStationObj.SSID;
elemById('ap_password').value = apStationObj.Password;
}
else
{
elemById('ap_connected_dev_count_id').innerHTML = '0';
elemById('ap_IP').innerHTML = 'Nan';
elemById('ap_MAC').innerHTML = 'Nan';
elemById('ssid').value = '';
elemById('ap_password').value = '';
}
}
else
{
elemById('ap_enabled_id').checked = false;
}
}
//All UI action functions are here //All UI action functions are here
function setCpuFrequ(freq) function setCpuFrequ(freq)
@ -451,6 +485,12 @@ function scanAvailableNetworks()
scanNetworkReq.send(); scanNetworkReq.send();
} }
function apStation()
{
apStationReq.open('GET', deviceIPAddr + "/sab/wifi/apinfo");
apStationReq.send();
}
App = { App = {
init:function() init:function()
@ -499,6 +539,7 @@ App = {
/*We need to update everything when we connect*/ /*We need to update everything when we connect*/
this.updateApp(); this.updateApp();
sdCardSize(); sdCardSize();
apStation();
} }
}, },
registerAutomatedRequest:function(param) registerAutomatedRequest:function(param)

View File

@ -1,8 +1,8 @@
#include "WEBServerManager.h" #include "WEBServerManager.h"
#include "definition.h" #include "definition.h"
//#define DEBUG_WEB_SERVER_MANAGER(...) do {} while(0) #define DEBUG_WEB_SERVER_MANAGER(...) do {} while(0)
#define DEBUG_WEB_SERVER_MANAGER(...) do { Serial.printf(__VA_ARGS__); Serial.println();} while(0) //#define DEBUG_WEB_SERVER_MANAGER(...) do { Serial.printf(__VA_ARGS__); Serial.println();} while(0)
WEBServerManager::WEBServerManager(SDCardManager &sdCardManager) : _sdCardManager(&sdCardManager), _webServer(80, &sdCardManager, 10) WEBServerManager::WEBServerManager(SDCardManager &sdCardManager) : _sdCardManager(&sdCardManager), _webServer(80, &sdCardManager, 10)
{ {

View File

@ -227,7 +227,7 @@ boolean staWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *w
char buffer[300]; char buffer[300];
IPAddress IP = p->getConnectivityManager().localIP(); IPAddress IP = p->getConnectivityManager().localIP();
sprintf(buffer,"{\"status\":\"ok\",\"RSSI\":%d,\"RSSI2\":%d,\"local IP\":\"%u.%u.%u.%u\",\"mac\":\"%s\"}", p->getConnectivityManager().RSSI(), p->getConnectivityManager().RSSIPercent(), IP[0], IP[1], IP[2], IP[3], p->getConnectivityManager().macAddress().c_str()); sprintf(buffer,"{\"status\":\"ok\",\"RSSI\":%d,\"RSSI2\":%d,\"local IP\":\"%u.%u.%u.%u\",\"MAC\":\"%s\"}", p->getConnectivityManager().RSSI(), p->getConnectivityManager().RSSIPercent(), IP[0], IP[1], IP[2], IP[3], p->getConnectivityManager().macAddress().c_str());
WEBServer<WEBClient>::sendHTTPHeader(wc, HttpConstants::httpMIMETypeToString(HttpConstants::APPLICATION_JSON), strlen(buffer)); WEBServer<WEBClient>::sendHTTPHeader(wc, HttpConstants::httpMIMETypeToString(HttpConstants::APPLICATION_JSON), strlen(buffer));
wc->print(buffer); wc->print(buffer);
@ -241,10 +241,15 @@ boolean apWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
//We check if the AP is enabled //We check if the AP is enabled
boolean apEnabled = p->getConnectivityManager().getMode() == WIFI_AP || p->getConnectivityManager().getMode() == WIFI_AP_STA; boolean apEnabled = p->getConnectivityManager().getMode() == WIFI_AP || p->getConnectivityManager().getMode() == WIFI_AP_STA;
if(apEnabled) if(apEnabled)
{ {
sprintf(buffer, "{\"status\":\"ok\",\"AP\":\"enabled\",\"AP IP\":\"%u.%u.%u.%u\",\"STA count\":%u,\"SSID\":\"%s\",\"Password\":\"%s\"}", IPAddress apIP = p->getConnectivityManager().softAPIP();
sprintf(buffer, "{\"status\":\"ok\",\"AP\":\"enabled\",\"AP IP\":\"%u.%u.%u.%u\",\"MAC\":\"%s\",\"STA count\":%u,\"SSID\":\"%s\",\"Password\":\"%s\"}",
apIP[0], apIP[1], apIP[2], apIP[3],
p->getConnectivityManager().softAPmacAddress().c_str(),
p->getConnectivityManager().softAPgetStationNum(),
p->getConnectivityManager().softAPSSID().c_str(), p->getConnectivityManager().softAPSSID().c_str(),
p->getConnectivityManager().softAPPSK().c_str()); p->getConnectivityManager().softAPPSK().c_str());
} }
@ -256,7 +261,6 @@ boolean apWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
} }
WEBServer<WEBClient>::sendHTTPHeader(wc, HttpConstants::httpMIMETypeToString(HttpConstants::APPLICATION_JSON), strlen(buffer)); WEBServer<WEBClient>::sendHTTPHeader(wc, HttpConstants::httpMIMETypeToString(HttpConstants::APPLICATION_JSON), strlen(buffer));
wc->print(buffer); wc->print(buffer);
return true; return true;
} }