Added an api endpoint to adjust CPU frequency and used the new injectApiHeader for testing purposes
This commit is contained in:
parent
1db65be493
commit
6ac860861d
@ -4,7 +4,10 @@
|
||||
|
||||
boolean apiTesterApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient* wc, void* pData)
|
||||
{
|
||||
wc->printf_P(PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"API\" : \"available\" }"));
|
||||
char buffer[100];
|
||||
|
||||
WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", "{\"status\":\"ok\",\"API\":\"available\"}");
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -16,17 +19,17 @@ boolean viewByUIDApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc,
|
||||
|
||||
if(pSE == NULL)
|
||||
{
|
||||
sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"expected UID parameter\" }"));
|
||||
sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"expected UID parameter\" }");
|
||||
}
|
||||
else if(strlen(pSE->getString()) > 0)
|
||||
{
|
||||
if(p->getScreenManager().displayView(atoi(pSE->getString())))
|
||||
sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"ViewUID\" : \"%d\" }"), p->getScreenManager().getCurrentViewUID());
|
||||
sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"ViewUID\" : \"%d\" }", p->getScreenManager().getCurrentViewUID());
|
||||
else
|
||||
sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"%s\" }"), p->getScreenManager().getErrorMessage());
|
||||
sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"%s\" }", p->getScreenManager().getErrorMessage());
|
||||
}
|
||||
else
|
||||
sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"UID parameter empty\" }"));
|
||||
sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"UID parameter empty\" }");
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
}
|
||||
@ -49,9 +52,9 @@ boolean reloadViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
|
||||
char buffer[200];
|
||||
|
||||
if(p->getScreenManager().init())
|
||||
strcpy_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"message\" : \"config reloaded\" }"));
|
||||
strcpy(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"message\" : \"config reloaded\" }");
|
||||
else
|
||||
strcpy_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"unable to reload config\" }"));
|
||||
strcpy(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"unable to reload config\" }");
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
@ -62,7 +65,10 @@ boolean rtcGetTimeApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
|
||||
SAB *p = (SAB *)pData;
|
||||
char buffer[200];
|
||||
DateTime d = p->getRtcManager().getDateTime();
|
||||
sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"date\" : \"%d/%d/%d\", \"time\" : \"%d:%d:%d\" }", d.day(), d.month(), d.year(), d.hour(), d.minute(), d.second());
|
||||
|
||||
sprintf(buffer, "{\"status\":\"ok\",\"date\":\"%d/%d/%d\",\"time\":\"%d:%d:%d\"}", d.day(), d.month(), d.year(), d.hour(), d.minute(), d.second());
|
||||
WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", buffer);
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
}
|
||||
@ -188,12 +194,27 @@ boolean staWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *w
|
||||
char buffer[300];
|
||||
IPAddress IP = p->getConnectivityManager().localIP();
|
||||
|
||||
sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"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>::injectApiHeader(buffer, "application/json", buffer);
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
/*boolean apWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
|
||||
{
|
||||
SAB *p = (SAB *)pData;
|
||||
char buffer[300];
|
||||
|
||||
p->getSdCardManager().getCFGFile(AP_CFG_FILE);
|
||||
|
||||
sprintf(buffer, "");
|
||||
WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", buffer);
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
}*/
|
||||
|
||||
boolean systemInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
|
||||
{
|
||||
SAB *p = (SAB *)pData;
|
||||
@ -202,7 +223,10 @@ boolean systemInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
|
||||
uint16_t biggestContigMemBlock;
|
||||
uint8_t frag;
|
||||
ESP.getHeapStats(&freeMem, &biggestContigMemBlock, &frag);
|
||||
sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"CPU freq\" : \"%u\", \"free RAM\" : \"%u\", \"heap frag\" : \"%u\", \"max block\" : \"%u\", \"nb views\" : \"%u\" }", ESP.getCpuFreqMHz(), freeMem, frag, biggestContigMemBlock, p->getScreenManager().getViewCount());
|
||||
TimeSpan ts(p->getUpTime());
|
||||
|
||||
sprintf(buffer, "{\"status\":\"ok\",\"CPU freq\":%u,\"free RAM\":%u,\"heap frag\":%u,\"max block\":%u,\"nb views\":%u,\"up time\":{\"days\":%d,\"hours\":%d,\"minutes\":%d,\"seconds\":%d},\"temperature\":{\"level\":%.2f, \"unit\":\"°C\"}}", ESP.getCpuFreqMHz(), freeMem, frag, biggestContigMemBlock, p->getScreenManager().getViewCount(), ts.days(), ts.hours(), ts.minutes(), ts.seconds(), p->getRtcManager().getTemperature());
|
||||
WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", buffer);
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
@ -220,6 +244,39 @@ boolean powerInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc,
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean powerSettingsApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
|
||||
{
|
||||
SAB *p = (SAB *)pData;
|
||||
char buffer[300];
|
||||
|
||||
if(HRD.getParams.count() != 1)
|
||||
{
|
||||
strcpy(buffer, "{\"status\":\"error\",\"message\":\"One and only one parameter is expected\"}");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(HRD.getParams("FREQ") != NULL)
|
||||
{
|
||||
uint8_t frequency = strtoul(HRD.getParams("FREQ")->getString(), NULL, 10);
|
||||
if(frequency != 80 && frequency != 160)
|
||||
{
|
||||
strcpy(buffer, "{\"status\":\"error\",\"message\":\"Parameter FREQ should be 80 or 160\"}");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buffer, "{\"status\":\"%s\",\"CPU freq\":%u}", p->getPowerManager().setCpuFreq(frequency) ? "ok" : "failed", ESP.getCpuFreqMHz());
|
||||
}
|
||||
}
|
||||
else
|
||||
strcpy(buffer, "{\"status\":\"error\",\"message\":\"Parameter FREQ expected\"}");
|
||||
}
|
||||
|
||||
WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", buffer);
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean ioGetLevelApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
|
||||
{
|
||||
boolean *ioState = (boolean *)pData;
|
||||
|
@ -25,6 +25,7 @@ boolean espRestartApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*
|
||||
boolean espResetApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
boolean systemInfoApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
boolean powerInfoApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
boolean powerSettingsApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
boolean ioGetLevelApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
boolean ioSetLevelApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
boolean ioGetModeApi(WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||
|
Loading…
Reference in New Issue
Block a user