diff --git a/src/app/webApi.cpp b/src/app/webApi.cpp index 92acecd..8f0ec0e 100644 --- a/src/app/webApi.cpp +++ b/src/app/webApi.cpp @@ -7,7 +7,7 @@ boolean apiTesterApi(WEBServerManager::HttpRequestData &HRD, WiFiClient* wc, voi return true; } -boolean ViewByUIDApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) +boolean viewByUIDApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) { SAB *p = (SAB *)pData; char buffer[200]; @@ -102,9 +102,12 @@ boolean rtcSetTimeApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, vo boolean sdCardUnmountApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) { - SAB *p = (SAB *)pData; + SdCardApiPacket *pV = (SdCardApiPacket*)pData; + SAB *p = (SAB *)pV->pSab; + float *sdCardSize = (float *) &pV->pView->sdCardSize; char buffer[200]; p->getSdCardManager().end(); + *sdCardSize = 0.0; sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"card\" : \"unmounted\" }"); wc->print(buffer); return true; @@ -112,11 +115,16 @@ boolean sdCardUnmountApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, boolean sdCardMountApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) { - SAB *p = (SAB *)pData; + SdCardApiPacket *pV = (SdCardApiPacket*)pData; + SAB *p = (SAB *)pV->pSab; + float *sdCardSize = (float *) &pV->pView->sdCardSize; char buffer[200]; if(p->getSdCardManager().begin(p->getSdCardConfig().getSPISpeed(), p->getPinConfig().getSPI_sdCard_cs())) + { sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"card\" : \"mounted\" }"); + *sdCardSize = p->getSdCardManager().getSize(GBYTE); + } else sprintf(buffer,"HTTP/1.1 500 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"error\", \"message\" : \"begin failed\" }"); @@ -159,10 +167,28 @@ boolean powerInfoApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, voi return true; } -boolean wifiInfoApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) +boolean staWifiInfoApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) { SAB *p = (SAB *)pData; - + char buffer[200]; + 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\", \"local IP\" : \"%u.%u.%u.%u\", \"mac\" : \"%s\" }", p->getConnectivityManager().RSSI(), IP[0], IP[1], IP[2], IP[3], p->getConnectivityManager().macAddress().c_str()); + + wc->print(buffer); return true; } +boolean systemInfoApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) +{ + SAB *p = (SAB *)pData; + char buffer[200]; + uint32_t freeMem; + 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()); + + wc->print(buffer); + return true; +} diff --git a/src/app/webApi.h b/src/app/webApi.h index 3a7fbbe..52f4f04 100644 --- a/src/app/webApi.h +++ b/src/app/webApi.h @@ -1,18 +1,29 @@ #ifndef WEBAPI_H #define WEBAPI_H #include "WebServerManager.h" +#include "SAB.h" +#include "views.h" boolean apiTesterApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean nextViewApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); -boolean ViewByUIDApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); +boolean viewByUIDApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean rtcGetTimeApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean rtcSetTimeApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean sdCardSizeApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); + +typedef struct sdCardApiPacket +{ + SAB *pSab; + View1Packet *pView; +} SdCardApiPacket; boolean sdCardUnmountApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean sdCardMountApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); + boolean powerInfoApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); -boolean wifiInfoApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); +boolean staWifiInfoApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); +boolean apWifiInfoApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean espRestartApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); boolean espResetApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); +boolean systemInfoApi(WEBServerManager::HttpRequestData&, WiFiClient*, void*); #endif