Merge branch 'master' of https://github.com/wellenvogel/esp32-nmea2000 into feature/env2
This commit is contained in:
commit
62d742268b
|
@ -7,6 +7,8 @@ import inspect
|
|||
import json
|
||||
from datetime import datetime
|
||||
Import("env")
|
||||
#print(env.Dump())
|
||||
OWN_FILE="extra_script.py"
|
||||
GEN_DIR='generated'
|
||||
CFG_FILE='web/config.json'
|
||||
XDR_FILE='web/xdrconfig.json'
|
||||
|
@ -43,6 +45,11 @@ def isCurrent(infile,outfile):
|
|||
otime=os.path.getmtime(outfile)
|
||||
itime=os.path.getmtime(infile)
|
||||
if (otime >= itime):
|
||||
own=os.path.join(basePath(),OWN_FILE)
|
||||
if os.path.exists(own):
|
||||
owntime=os.path.getmtime(own)
|
||||
if owntime > otime:
|
||||
return False
|
||||
print("%s is newer then %s, no need to recreate"%(outfile,infile))
|
||||
return True
|
||||
return False
|
||||
|
|
|
@ -72,13 +72,7 @@ private:
|
|||
|
||||
String buildXdrEntry(GwXDRFoundMapping &mapping,double value){
|
||||
char buffer[40];
|
||||
String name=mapping.definition->xdrName;
|
||||
if (mapping.definition->instanceMode == GwXDRMappingDef::IS_AUTO ||
|
||||
mapping.definition->instanceMode == GwXDRMappingDef::IS_SINGLE
|
||||
){
|
||||
name+="#";
|
||||
name+=String(mapping.instanceId);
|
||||
}
|
||||
String name=mapping.getTransducerName();
|
||||
if (mapping.type->tonmea){
|
||||
value=(* (mapping.type->tonmea))(value);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "GwXDRMappings.h"
|
||||
#include "N2kMessages.h"
|
||||
|
||||
double PtoBar(double v)
|
||||
{
|
||||
if (N2kIsNA(v))
|
||||
|
@ -189,6 +190,16 @@ GwXDRMappingDef *GwXDRMappingDef::fromString(String s)
|
|||
}
|
||||
return rt;
|
||||
}
|
||||
String GwXDRMappingDef::getTransducerName(int instance)
|
||||
{
|
||||
String name = xdrName;
|
||||
if (instanceMode == GwXDRMappingDef::IS_AUTO)
|
||||
{
|
||||
name += "#";
|
||||
name += String(instance);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
GwXDRMappings::GwXDRMappings(GwLog *logger, GwConfigHandler *config)
|
||||
{
|
||||
|
@ -373,6 +384,20 @@ bool GwXDRMappings::addUnknown(GwXDRCategory category,int selector,int field,int
|
|||
uk=(uk<<7) + (field & 0x7f);
|
||||
if (instance < 0 || instance > 255) instance=256; //unknown
|
||||
uk=(uk << 9) + (instance & 0x1ff);
|
||||
unknown.push_back(uk);
|
||||
unknown.insert(uk);
|
||||
return true;
|
||||
}
|
||||
|
||||
char * GwXDRMappings::getUnMapped(){
|
||||
const int ESIZE=13;
|
||||
int sz=(unknown.size()+1)*ESIZE;
|
||||
char *rt=new char[sz];
|
||||
*rt=0;
|
||||
char *ptr=rt;
|
||||
for (auto it=unknown.begin();it!=unknown.end();it++){
|
||||
snprintf(ptr,ESIZE-1,"%lu,",*it);
|
||||
*(ptr+ESIZE-1)=0;
|
||||
while (*ptr != 0) ptr++;
|
||||
}
|
||||
return rt;
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
#include <WString.h>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <unordered_set>
|
||||
//enum must match the defines in xdrconfig.json
|
||||
typedef enum {
|
||||
XDRTEMP=0,
|
||||
|
@ -124,6 +125,7 @@ class GwXDRMappingDef{
|
|||
rt += xdrUnit;
|
||||
return rt;
|
||||
}
|
||||
String getTransducerName(int instance);
|
||||
private:
|
||||
static bool handleToken(String tok,int index,GwXDRMappingDef *def);
|
||||
};
|
||||
|
@ -157,6 +159,9 @@ class GwXDRFoundMapping{
|
|||
empty=false;
|
||||
}
|
||||
GwXDRFoundMapping(){}
|
||||
String getTransducerName(){
|
||||
return definition->getTransducerName(instanceId);
|
||||
}
|
||||
};
|
||||
|
||||
class GwXDRMappings{
|
||||
|
@ -165,7 +170,7 @@ class GwXDRMappings{
|
|||
GwConfigHandler *config;
|
||||
GwXDRMapping::N138Map n183Map;
|
||||
GwXDRMapping::N2KMap n2kMap;
|
||||
std::vector<unsigned long> unknown;
|
||||
std::unordered_set<unsigned long> unknown;
|
||||
GwXDRFoundMapping selectMapping(GwXDRMapping::MappingList *list,int instance,const char * key);
|
||||
bool addUnknown(GwXDRCategory category,int selector,int field=0,int instance=-1);
|
||||
public:
|
||||
|
@ -175,6 +180,8 @@ class GwXDRMappings{
|
|||
//the returned mapping will exactly contain one mapping def
|
||||
GwXDRFoundMapping getMapping(String xName,String xType,String xUnit);
|
||||
GwXDRFoundMapping getMapping(GwXDRCategory category,int selector,int field=0,int instance=-1);
|
||||
//returns a newly created buffer - user must destroy!
|
||||
char * getUnMapped();
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue