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

xdrExample and xdrUnmapped requests

This commit is contained in:
wellenvogel
2021-11-22 12:16:19 +01:00
parent 769cf33e67
commit 8610d94382
3 changed files with 91 additions and 2 deletions

View File

@@ -421,6 +421,44 @@ protected:
}
};
class XdrExampleRequest : public GwRequestMessage
{
public:
String mapping;
double value;
XdrExampleRequest(String mapping, double value) : GwRequestMessage(F("text/plain"),F("xdrExample")){
this->mapping=mapping;
this->value=value;
};
protected:
virtual void processRequest()
{
String val=xdrMappings.getXdrEntry(mapping,value);
if (val == "") {
result=val;
return;
}
tNMEA0183Msg msg;
msg.Init("XDR",config.getString(config.talkerId,String("GP")).c_str());
msg.AddStrField(val.c_str());
char buf[MAX_NMEA0183_MSG_BUF_LEN];
msg.GetMessage(buf,MAX_NMEA0183_MSG_BUF_LEN);
result=buf;
}
};
class XdrUnMappedRequest : public GwRequestMessage
{
public:
XdrUnMappedRequest() : GwRequestMessage(F("text/plain"),F("boatData")){};
protected:
virtual void processRequest()
{
result = xdrMappings.getUnMapped();
}
};
void setup() {
uint8_t chipid[6];
@@ -524,6 +562,14 @@ void setup() {
{ return new ResetConfigRequest(); });
webserver.registerMainHandler("/api/boatData", [](AsyncWebServerRequest *request)->GwRequestMessage *
{ return new BoatDataRequest(); });
webserver.registerMainHandler("/api/xdrExample", [](AsyncWebServerRequest *request)->GwRequestMessage *
{
String mapping=request->arg("mapping");
double value=atof(request->arg("value").c_str());
return new XdrExampleRequest(mapping,value);
});
webserver.registerMainHandler("/api/xdrUnmapped", [](AsyncWebServerRequest *request)->GwRequestMessage *
{ return new XdrUnMappedRequest(); });
webserver.begin();
xdrMappings.begin();