mirror of
https://github.com/thooge/esp32-nmea2000-obp60.git
synced 2025-12-13 05:53:06 +01:00
dynamic adding of xdr boat data for implemented n2k conversions
This commit is contained in:
@@ -17,6 +17,8 @@ template<class T> GwBoatItem<T> *GwBoatData::getOrCreate(T initial, GwBoatItemNa
|
||||
if (it != values.end()) {
|
||||
int expectedType=GwBoatItemTypes::getType(initial);
|
||||
if (expectedType != it->second->getCurrentType()){
|
||||
LOG_DEBUG(GwLog::DEBUG,"invalid type for boat item %s, expected %d, got %d",
|
||||
name.c_str(),expectedType,it->second->getCurrentType());
|
||||
return NULL;
|
||||
}
|
||||
return (GwBoatItem<T>*)(it->second);
|
||||
@@ -26,6 +28,8 @@ template<class T> GwBoatItem<T> *GwBoatData::getOrCreate(T initial, GwBoatItemNa
|
||||
provider->getInvalidTime(),
|
||||
&values);
|
||||
rt->update(initial);
|
||||
LOG_DEBUG(GwLog::LOG,"creating boatItem %s, type %d",
|
||||
name.c_str(),rt->getCurrentType());
|
||||
return rt;
|
||||
}
|
||||
template<class T> bool GwBoatData::update(T value,int source,GwBoatItemNameProvider *provider){
|
||||
|
||||
@@ -80,7 +80,7 @@ template<class T> class GwBoatItem : public GwBoatItemBase{
|
||||
public:
|
||||
GwBoatItem(int type,String name,String formatInfo,unsigned long invalidTime=INVALID_TIME,GwBoatItemMap *map=NULL):
|
||||
GwBoatItemBase(name,formatInfo,invalidTime){
|
||||
type=type;
|
||||
this->type=type;
|
||||
if (map){
|
||||
(*map)[name]=this;
|
||||
}
|
||||
@@ -93,7 +93,7 @@ template<class T> class GwBoatItem : public GwBoatItemBase{
|
||||
//priority handling
|
||||
//sources with lower ids will win
|
||||
//and we will not overwrite their value
|
||||
if (lastUpdateSource < source){
|
||||
if (lastUpdateSource < source && lastUpdateSource >= 0){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user