1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2025-12-14 06:23:07 +01:00

#17: rename boat data values

This commit is contained in:
andreas
2022-03-01 16:33:09 +01:00
parent 7c89718735
commit f9180d36ed
3 changed files with 125 additions and 125 deletions

View File

@@ -182,22 +182,22 @@ private:
//if we have no variation we send either HDM or HDT
if (ParseN2kHeading(N2kMsg, SID, Heading, _Deviation, Variation, ref))
{
updateDouble(boatData->Variation,Variation);
updateDouble(boatData->Deviation,_Deviation);
updateDouble(boatData->VAR,Variation);
updateDouble(boatData->DEV,_Deviation);
if (N2kIsNA(Variation)){
//maybe we still have a valid variation
Variation=boatData->Variation->getDataWithDefault(N2kDoubleNA);
Variation=boatData->VAR->getDataWithDefault(N2kDoubleNA);
}
if (N2kIsNA(Variation)){
//no variation
if (ref == N2khr_magnetic){
updateDouble(boatData->MagneticHeading,Heading);
updateDouble(boatData->MHDG,Heading);
if (NMEA0183SetHDM(NMEA0183Msg,Heading,talkerId)){
SendMessage(NMEA0183Msg);
}
}
if (ref == N2khr_true){
updateDouble(boatData->Heading,Heading);
updateDouble(boatData->HDG,Heading);
if (NMEA0183SetHDT(NMEA0183Msg,Heading,talkerId)){
SendMessage(NMEA0183Msg);
}
@@ -212,8 +212,8 @@ private:
if (ref == N2khr_true){
MagneticHeading=Heading-Variation;
}
updateDouble(boatData->MagneticHeading,MagneticHeading);
updateDouble(boatData->Heading,Heading);
updateDouble(boatData->MHDG,MagneticHeading);
updateDouble(boatData->HDG,Heading);
if (!N2kIsNA(MagneticHeading)){
if (NMEA0183SetHDG(NMEA0183Msg, MagneticHeading,_Deviation,
Variation,talkerId))
@@ -240,9 +240,9 @@ private:
uint16_t DaysSince1970;
double Variation;
ParseN2kMagneticVariation(N2kMsg, SID, Source, DaysSince1970, Variation);
updateDouble(boatData->Variation, Variation);
updateDouble(boatData->VAR, Variation);
if (DaysSince1970 != N2kUInt16NA && DaysSince1970 != 0)
boatData->GpsDate->update(DaysSince1970,sourceId);
boatData->GPSD->update(DaysSince1970,sourceId);
}
//*****************************************************************************
@@ -258,8 +258,8 @@ private:
tNMEA0183Msg NMEA0183Msg;
updateDouble(boatData->STW, WaterReferenced);
unsigned long now = millis();
double MagneticHeading = (boatData->Heading->isValid(now) && boatData->Variation->isValid(now)) ? boatData->Heading->getData() + boatData->Variation->getData() : NMEA0183DoubleNA;
if (NMEA0183SetVHW(NMEA0183Msg, boatData->Heading->getDataWithDefault(NMEA0183DoubleNA), MagneticHeading, WaterReferenced,talkerId))
double MagneticHeading = (boatData->HDG->isValid(now) && boatData->VAR->isValid(now)) ? boatData->HDG->getData() + boatData->VAR->getData() : NMEA0183DoubleNA;
if (NMEA0183SetVHW(NMEA0183Msg, boatData->HDG->getDataWithDefault(NMEA0183DoubleNA), MagneticHeading, WaterReferenced,talkerId))
{
SendMessage(NMEA0183Msg);
}
@@ -278,8 +278,8 @@ private:
{
WaterDepth = DepthBelowTransducer + Offset;
updateDouble(boatData->WaterDepth, WaterDepth);
updateDouble(boatData->DepthTransducer,DepthBelowTransducer);
updateDouble(boatData->DBS, WaterDepth);
updateDouble(boatData->DBT,DepthBelowTransducer);
tNMEA0183Msg NMEA0183Msg;
if (NMEA0183SetDPT(NMEA0183Msg, DepthBelowTransducer, Offset,talkerId))
{
@@ -299,8 +299,8 @@ private:
double Longitude;
if (ParseN2kPGN129025(N2kMsg, Latitude, Longitude))
{
updateDouble(boatData->Latitude, Latitude);
updateDouble(boatData->Longitude, Longitude);
updateDouble(boatData->LAT, Latitude);
updateDouble(boatData->LON, Longitude);
}
}
@@ -316,13 +316,13 @@ private:
{
updateDouble(boatData->COG, COG);
updateDouble(boatData->SOG, SOG);
double MCOG = (!N2kIsNA(COG) && boatData->Variation->isValid()) ? COG - boatData->Variation->getData() : NMEA0183DoubleNA;
double MCOG = (!N2kIsNA(COG) && boatData->VAR->isValid()) ? COG - boatData->VAR->getData() : NMEA0183DoubleNA;
if (HeadingReference == N2khr_magnetic)
{
MCOG = COG;
if (boatData->Variation->isValid())
if (boatData->VAR->isValid())
{
COG -= boatData->Variation->getData();
COG -= boatData->VAR->getData();
updateDouble(boatData->COG, COG);
}
}
@@ -382,14 +382,14 @@ private:
nSatellites, HDOP, PDOP, GeoidalSeparation,
nReferenceStations, ReferenceStationType, ReferenceSationID, AgeOfCorrection))
{
updateDouble(boatData->Latitude, Latitude);
updateDouble(boatData->Longitude, Longitude);
updateDouble(boatData->Altitude, Altitude);
updateDouble(boatData->GpsTime, GpsTime);
updateDouble(boatData->LAT, Latitude);
updateDouble(boatData->LON, Longitude);
updateDouble(boatData->ALT, Altitude);
updateDouble(boatData->GPST, GpsTime);
updateDouble(boatData->HDOP,HDOP);
updateDouble(boatData->PDOP,PDOP);
if (DaysSince1970 != N2kUInt16NA && DaysSince1970 != 0)
boatData->GpsDate->update(DaysSince1970,sourceId);
boatData->GPSD->update(DaysSince1970,sourceId);
int quality=0;
if ((int)GNSSmethod <= 5) quality=(int)GNSSmethod;
tNMEA0183AISMsg nmeaMsg;
@@ -518,8 +518,8 @@ private:
boatData->TWS->getDataWithDefault(NMEA0183DoubleNA),talkerId))
SendMessage(NMEA0183Msg);
double magnetic = boatData->TWD->getData();
if (boatData->Variation->isValid())
magnetic -= boatData->Variation->getData();
if (boatData->VAR->isValid())
magnetic -= boatData->VAR->getData();
if (!NMEA0183Msg.Init("MWD", talkerId))
return;
if (!NMEA0183Msg.AddDoubleField(formatCourse(boatData->TWD->getData())))
@@ -548,20 +548,20 @@ private:
{
long now = millis();
if (NextRMCSend <= millis() &&
boatData->Latitude->isValid(now) &&
boatData->Latitude->getLastSource() == sourceId
boatData->LAT->isValid(now) &&
boatData->LAT->getLastSource() == sourceId
)
{
tNMEA0183Msg NMEA0183Msg;
if (NMEA0183SetRMC(NMEA0183Msg,
boatData->GpsTime->getDataWithDefault(NMEA0183DoubleNA),
boatData->Latitude->getDataWithDefault(NMEA0183DoubleNA),
boatData->Longitude->getDataWithDefault(NMEA0183DoubleNA),
boatData->GPST->getDataWithDefault(NMEA0183DoubleNA),
boatData->LAT->getDataWithDefault(NMEA0183DoubleNA),
boatData->LON->getDataWithDefault(NMEA0183DoubleNA),
boatData->COG->getDataWithDefault(NMEA0183DoubleNA),
boatData->SOG->getDataWithDefault(NMEA0183DoubleNA),
boatData->GpsDate->getDataWithDefault(NMEA0183UInt32NA),
boatData->Variation->getDataWithDefault(NMEA0183DoubleNA),
boatData->GPSD->getDataWithDefault(NMEA0183UInt32NA),
boatData->VAR->getDataWithDefault(NMEA0183DoubleNA),
talkerId))
{
SendMessage(NMEA0183Msg);
@@ -583,7 +583,7 @@ private:
if (TripLog != N2kUInt32NA)
boatData->TripLog->update(TripLog,sourceId);
if (DaysSince1970 != N2kUInt16NA && DaysSince1970 != 0)
boatData->GpsDate->update(DaysSince1970,sourceId);
boatData->GPSD->update(DaysSince1970,sourceId);
tNMEA0183Msg NMEA0183Msg;
if (!NMEA0183Msg.Init("VLW", talkerId))
@@ -613,7 +613,7 @@ private:
if (ParseN2kRudder(N2kMsg, RudderPosition, Instance, RudderDirectionOrder, AngleOrder))
{
updateDouble(boatData->RudderPosition, RudderPosition);
updateDouble(boatData->RPOS, RudderPosition);
if (Instance != 0)
return;
@@ -1003,26 +1003,26 @@ private:
LOG_DEBUG(GwLog::DEBUG,"unable to parse PGN %d",msg.PGN);
return;
}
updateDouble(boatData->GpsTime,GpsTime);
if (DaysSince1970 != N2kUInt16NA) boatData->GpsDate->update(DaysSince1970,sourceId);
if (boatData->GpsDate->isValid() && boatData->GpsTime->isValid()){
updateDouble(boatData->GPST,GpsTime);
if (DaysSince1970 != N2kUInt16NA) boatData->GPSD->update(DaysSince1970,sourceId);
if (boatData->GPSD->isValid() && boatData->GPST->isValid()){
tNMEA0183Msg nmeaMsg;
nmeaMsg.Init("ZDA",talkerId);
char utc[7];
double seconds=boatData->GpsTime->getData();
double seconds=boatData->GPST->getData();
int hours=floor(seconds/3600.0);
int minutes=floor(seconds/60) - hours *60;
int sec=floor(seconds)-60*minutes-3600*hours;
snprintf(utc,7,"%02d%02d%02d",hours,minutes,sec);
nmeaMsg.AddStrField(utc);
tmElements_t timeParts;
tNMEA0183Msg::breakTime(tNMEA0183Msg::daysToTime_t(boatData->GpsDate->getData()),timeParts);
tNMEA0183Msg::breakTime(tNMEA0183Msg::daysToTime_t(boatData->GPSD->getData()),timeParts);
nmeaMsg.AddUInt32Field(tNMEA0183Msg::GetDay(timeParts));
nmeaMsg.AddUInt32Field(tNMEA0183Msg::GetMonth(timeParts));
nmeaMsg.AddUInt32Field(tNMEA0183Msg::GetYear(timeParts));
if (boatData->Timezone->isValid()){
int hours=boatData->Timezone->getData()/60;
int minutes=boatData->Timezone->getData() - 60 *hours;
if (boatData->TZ->isValid()){
int hours=boatData->TZ->getData()/60;
int minutes=boatData->TZ->getData() - 60 *hours;
nmeaMsg.AddDoubleField(hours,1,"%02.0f");
nmeaMsg.AddDoubleField(minutes,1,"%02.0f");
}
@@ -1042,9 +1042,9 @@ private:
LOG_DEBUG(GwLog::DEBUG,"unable to parse PGN %d",msg.PGN);
return;
}
updateDouble(boatData->GpsTime,GpsTime);
if (DaysSince1970 != N2kUInt16NA) boatData->GpsDate->update(DaysSince1970,sourceId);
if (LocalOffset != N2kInt16NA) boatData->Timezone->update(LocalOffset,sourceId);
updateDouble(boatData->GPST,GpsTime);
if (DaysSince1970 != N2kUInt16NA) boatData->GPSD->update(DaysSince1970,sourceId);
if (LocalOffset != N2kInt16NA) boatData->TZ->update(LocalOffset,sourceId);
}
void HandleROT(const tN2kMsg &msg){
unsigned char SID=0;
@@ -1137,17 +1137,17 @@ private:
return;
}
if (BearingReference == N2khr_magnetic){
if (! boatData->Variation->isValid()){
if (! boatData->VAR->isValid()){
LOG_DEBUG(GwLog::DEBUG,"missing variation to compute true heading for %d ", msg.PGN);
return;
}
BearingPositionToDestinationWaypoint-=boatData->Variation->getData();
BearingPositionToDestinationWaypoint-=boatData->VAR->getData();
}
if (! updateDouble(boatData->DTW,DistanceToWaypoint)) return;
if (! updateDouble(boatData->BTW,BearingPositionToDestinationWaypoint)) return;
if (! updateDouble(boatData->WPLatitude,DestinationLatitude)) return;
if (! updateDouble(boatData->WPLongitude,DestinationLongitude)) return;
if (! updateDouble(boatData->WPLat,DestinationLatitude)) return;
if (! updateDouble(boatData->WPLon,DestinationLongitude)) return;
tNMEA0183Msg nmeaMsg;
if (! nmeaMsg.Init("RMB",talkerId)) return;
if (! nmeaMsg.AddStrField("A")) return;
@@ -1242,7 +1242,7 @@ private:
double WaterTemperature;
if (ParseN2kPGN130310(N2kMsg, SID, WaterTemperature, OutsideAmbientAirTemperature, AtmosphericPressure))
{
updateDouble(boatData->WaterTemperature, WaterTemperature);
updateDouble(boatData->WTemp, WaterTemperature);
tNMEA0183Msg NMEA0183Msg;
if (!NMEA0183Msg.Init("MTW", talkerId))