1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2025-12-13 05:53:06 +01:00

allow usercode to define config and set capabilities

This commit is contained in:
wellenvogel
2021-11-27 20:56:36 +01:00
parent 39bc516def
commit e3d4ac5eba
11 changed files with 224 additions and 101 deletions

View File

@@ -265,6 +265,7 @@ bool delayedRestart(){
},"reset",1000,&logger,0,NULL) == pdPASS;
}
GwUserCode userCodeHandler(new ApiImpl(200));
#define JSON_OK "{\"status\":\"OK\"}"
@@ -329,7 +330,12 @@ class CapabilitiesRequest : public GwRequestMessage{
CapabilitiesRequest() : GwRequestMessage(F("application/json"),F("capabilities")){};
protected:
virtual void processRequest(){
DynamicJsonDocument json(JSON_OBJECT_SIZE(6));
int numCapabilities=userCodeHandler.getCapabilities()->size();
DynamicJsonDocument json(JSON_OBJECT_SIZE(numCapabilities*3+6));
for (auto it=userCodeHandler.getCapabilities()->begin();
it != userCodeHandler.getCapabilities()->end();it++){
json[it->first]=it->second;
}
#ifdef GWSERIAL_MODE
String serial(F(GWSERIAL_MODE));
#else
@@ -692,11 +698,10 @@ void setup() {
NMEA2000.Open();
logger.logDebug(GwLog::LOG,"starting addon tasks");
logger.flush();
GwUserCode userHandler(new ApiImpl(200));
userHandler.startAddonTask(F("handleButtons"),handleButtons,100);
userCodeHandler.startAddonTask(F("handleButtons"),handleButtons,100);
setLedMode(LED_GREEN);
userHandler.startAddonTask(F("handleLeds"),handleLeds,101);
userHandler.startUserTasks(200);
userCodeHandler.startAddonTask(F("handleLeds"),handleLeds,101);
userCodeHandler.startUserTasks(200);
logger.logDebug(GwLog::LOG,"setup done");
}