mirror of
https://github.com/thooge/esp32-nmea2000-obp60.git
synced 2025-12-13 05:53:06 +01:00
add calset input
This commit is contained in:
@@ -182,6 +182,13 @@ class GwApi{
|
||||
* The name should be similar to the function name of the user task (although not mandatory)
|
||||
*/
|
||||
virtual bool addUserTask(GwUserTaskFunction task,const String Name, int stackSize=2000)=0;
|
||||
/**
|
||||
* set a value that is used for calibration in config values
|
||||
* for cfg types calset, calvalue
|
||||
* @param name: the config name this value is used for
|
||||
* @param value: the current value
|
||||
*/
|
||||
virtual void setCalibrationValue(const String &name, double value);
|
||||
|
||||
/**
|
||||
* not thread safe methods
|
||||
|
||||
@@ -116,6 +116,10 @@ bool GwWebServer::registerMainHandler(const char *url,RequestCreator creator){
|
||||
});
|
||||
return true;
|
||||
}
|
||||
bool GwWebServer::registerHandler(const char * url,GwWebServer::HandlerFunction handler){
|
||||
server->on(url,HTTP_GET,handler);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GwWebServer::registerPostHandler(const char *url, ArRequestHandlerFunction requestHandler,
|
||||
ArBodyHandlerFunction bodyHandler){
|
||||
|
||||
@@ -11,10 +11,12 @@ class GwWebServer{
|
||||
GwLog *logger;
|
||||
public:
|
||||
typedef GwRequestMessage *(RequestCreator)(AsyncWebServerRequest *request);
|
||||
using HandlerFunction=std::function<void(AsyncWebServerRequest *)>;
|
||||
GwWebServer(GwLog *logger, GwRequestQueue *queue,int port);
|
||||
~GwWebServer();
|
||||
void begin();
|
||||
bool registerMainHandler(const char *url,RequestCreator creator);
|
||||
bool registerHandler(const char * url,HandlerFunction handler);
|
||||
bool registerPostHandler(const char *url, ArRequestHandlerFunction requestHandler, ArBodyHandlerFunction bodyHandler);
|
||||
void handleAsyncWebRequest(AsyncWebServerRequest *request, GwRequestMessage *msg);
|
||||
AsyncWebServer * getServer(){return server;}
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
class GWDMS22B : public SSISensor{
|
||||
int zero=2047;
|
||||
bool invt=false;
|
||||
String zeroConfigName;
|
||||
public:
|
||||
using SSISensor::SSISensor;
|
||||
virtual bool preinit(GwApi * api){
|
||||
@@ -102,6 +103,8 @@ class GWDMS22B : public SSISensor{
|
||||
tN2kMsg msg;
|
||||
SetN2kRudder(msg,DegToRad(resolved),iid);
|
||||
api->sendN2kMessage(msg);
|
||||
api->increment(counterId,prefix);
|
||||
api->setCalibrationValue(zeroConfigName,(double)value);
|
||||
}
|
||||
#define DMS22B(PRFX,...) \
|
||||
if (prefix == #PRFX) {\
|
||||
@@ -109,6 +112,7 @@ class GWDMS22B : public SSISensor{
|
||||
CFG_GET(iid,PRFX); \
|
||||
CFG_GET(fintv,PRFX); \
|
||||
CFG_GET(zero,PRFX); \
|
||||
zeroConfigName=GwConfigDefinitions::PRFX ## zero;\
|
||||
CFG_GET(invt,PRFX); \
|
||||
bits=12; \
|
||||
clock=500000; \
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
{
|
||||
"name": "DMS22B$izero",
|
||||
"label": "DMS22B$i Zero",
|
||||
"type": "number",
|
||||
"type": "calset",
|
||||
"default": 2048,
|
||||
"description": "Zero position (0...2^bits-1)",
|
||||
"category": "spisensors$b",
|
||||
|
||||
@@ -332,6 +332,9 @@ public:
|
||||
api->getLogger()->logDebug(GwLog::LOG,"adding user task %s",tname.c_str());
|
||||
return true;
|
||||
}
|
||||
virtual void setCalibrationValue(const String &name, double value){
|
||||
api->setCalibrationValue(name,value);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user