mirror of
https://github.com/thooge/esp32-nmea2000-obp60.git
synced 2025-12-13 05:53:06 +01:00
only recreate value string in boatData if changed
This commit is contained in:
@@ -172,12 +172,15 @@ static void writeToString(GwTextWriter *writer,GwSatInfoList &value){
|
||||
|
||||
template <class T>
|
||||
void GwBoatItem<T>::fillString(){
|
||||
bool valid=isValid();
|
||||
if (writer.getSize() && (valid == lastStringValid)) return;
|
||||
lastStringValid=valid;
|
||||
writer.reset();
|
||||
WriterWrapper wrapper(&writer);
|
||||
GwTextWriter stringWriter(wrapper);
|
||||
stringWriter.writeRaw(name.c_str());
|
||||
stringWriter.writeChar(',');
|
||||
stringWriter.writeInteger(isValid()?1:0);
|
||||
stringWriter.writeInteger(valid?1:0);
|
||||
stringWriter.writeChar(',');
|
||||
stringWriter.writeInteger(lastSet);
|
||||
stringWriter.writeChar(',');
|
||||
|
||||
@@ -48,6 +48,7 @@ class GwBoatItemBase{
|
||||
void uls(unsigned long ts=0){
|
||||
if (ts) lastSet=ts;
|
||||
else lastSet=millis();
|
||||
writer.reset(); //value has changed
|
||||
}
|
||||
int lastUpdateSource;
|
||||
public:
|
||||
@@ -74,6 +75,7 @@ class GwBoatData;
|
||||
template<class T> class GwBoatItem : public GwBoatItemBase{
|
||||
protected:
|
||||
T data;
|
||||
bool lastStringValid=false;
|
||||
public:
|
||||
GwBoatItem(String name,String formatInfo,unsigned long invalidTime=INVALID_TIME,GwBoatItemMap *map=NULL);
|
||||
virtual ~GwBoatItem(){}
|
||||
|
||||
Reference in New Issue
Block a user