Skip to content

Commit

Permalink
#17: rename boat data values
Browse files Browse the repository at this point in the history
  • Loading branch information
andreas committed Mar 1, 2022
1 parent 7c89718 commit f9180d3
Show file tree
Hide file tree
Showing 3 changed files with 125 additions and 125 deletions.
34 changes: 17 additions & 17 deletions lib/boatData/GwBoatData.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,39 +172,39 @@ class GwBoatData{

GWBOATDATA(double,COG,4000,formatCourse)
GWBOATDATA(double,TWD,4000,formatCourse)
GWBOATDATA(double,AWD,4000,formatCourse)
//GWBOATDATA(double,AWD,4000,formatCourse)
GWBOATDATA(double,SOG,4000,formatKnots)
GWBOATDATA(double,STW,4000,formatKnots)
GWBOATDATA(double,TWS,4000,formatKnots)
GWBOATDATA(double,AWS,4000,formatKnots)
GWBOATDATA(double,MaxTws,0,formatKnots)
GWBOATDATA(double,MaxAws,0,formatKnots)
GWBOATDATA(double,AWA,4000,formatWind)
GWBOATDATA(double,Heading,4000,formatCourse) //true
GWBOATDATA(double,MagneticHeading,4000,formatCourse)
GWBOATDATA(double,HDG,4000,formatCourse) //true heading
GWBOATDATA(double,MHDG,4000,formatCourse) //magnetic heading
GWBOATDATA(double,ROT,4000,formatRot)
GWBOATDATA(double,Variation,4000,formatCourse)
GWBOATDATA(double,Deviation,4000,formatCourse)
GWBOATDATA(double,VAR,4000,formatCourse) //Variation
GWBOATDATA(double,DEV,4000,formatCourse) //Deviation
GWBOATDATA(double,HDOP,4000,formatDop)
GWBOATDATA(double,PDOP,4000,formatDop)
GWBOATDATA(double,VDOP,4000,formatDop)
GWBOATDATA(double,RudderPosition,4000,formatCourse)
GWBOATDATA(double,Latitude,4000,formatLatitude)
GWBOATDATA(double,Longitude,4000,formatLongitude)
GWBOATDATA(double,Altitude,4000,formatFixed0)
GWBOATDATA(double,WaterDepth,4000,formatDepth)
GWBOATDATA(double,DepthTransducer,4000,formatDepth)
GWBOATDATA(double,GpsTime,4000,formatTime)
GWBOATDATA(double,WaterTemperature,4000,kelvinToC)
GWBOATDATA(double,RPOS,4000,formatCourse) //RudderPosition
GWBOATDATA(double,LAT,4000,formatLatitude)
GWBOATDATA(double,LON,4000,formatLongitude)
GWBOATDATA(double,ALT,4000,formatFixed0) //altitude
GWBOATDATA(double,DBS,4000,formatDepth) //waterDepth (below surface)
GWBOATDATA(double,DBT,4000,formatDepth) //DepthTransducer
GWBOATDATA(double,GPST,4000,formatTime) //GpsTime
GWBOATDATA(double,WTemp,4000,kelvinToC)
GWBOATDATA(double,XTE,4000,formatXte)
GWBOATDATA(double,DTW,4000,mtr2nm)
GWBOATDATA(double,BTW,4000,formatCourse)
GWBOATDATA(double,WPLatitude,4000,formatLatitude)
GWBOATDATA(double,WPLongitude,4000,formatLongitude)
GWBOATDATA(double,WPLat,4000,formatLatitude)
GWBOATDATA(double,WPLon,4000,formatLongitude)
GWBOATDATA(uint32_t,Log,16000,mtr2nm)
GWBOATDATA(uint32_t,TripLog,16000,mtr2nm)
GWBOATDATA(uint32_t,GpsDate,4000,formatDate)
GWBOATDATA(int16_t,Timezone,8000,formatFixed0)
GWBOATDATA(uint32_t,GPSD,4000,formatDate) //Date
GWBOATDATA(int16_t,TZ,8000,formatFixed0)
GWSPECBOATDATA(GwBoatDataSatList,SatInfo,GwSatInfoList::lifeTime,formatFixed0);
public:
GwBoatData(GwLog *logger);
Expand Down
116 changes: 58 additions & 58 deletions lib/nmea0183ton2k/NMEA0183DataToN2K.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -340,8 +340,8 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
uint8_t sourceId=getWaypointId(rmb.originID);
if (boatData->DTW->update(rmb.dtw,msg.sourceId)
&& boatData->BTW->update(rmb.btw,msg.sourceId)
&& boatData->WPLatitude->update(rmb.latitude,msg.sourceId)
&& boatData->WPLongitude->update(rmb.longitude,msg.sourceId)
&& boatData->WPLat->update(rmb.latitude,msg.sourceId)
&& boatData->WPLon->update(rmb.longitude,msg.sourceId)
){
SetN2kNavigationInfo(n2kMsg,1,rmb.dtw,N2khr_true,
false,
Expand All @@ -365,37 +365,37 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
}
void convertRMC(const SNMEA0183Msg &msg)
{
double GpsTime=0, Latitude=0, Longitude=0, COG=0, SOG=0, Variation=0;
unsigned long GpsDate=0;
double GPST=0, LAT=0, LON=0, COG=0, SOG=0, VAR=0;
unsigned long GPSD=0;
time_t DateTime;
char status;
if (!NMEA0183ParseRMC_nc(msg, GpsTime, status, Latitude, Longitude, COG, SOG, GpsDate, Variation, &DateTime))
if (!NMEA0183ParseRMC_nc(msg, GPST, status, LAT, LON, COG, SOG, GPSD, VAR, &DateTime))
{
LOG_DEBUG(GwLog::DEBUG, "failed to parse RMC %s", msg.line);
return;
}
tN2kMsg n2kMsg;
if (
UD(GpsTime) &&
UI(GpsDate)
UD(GPST) &&
UI(GPSD)
)
{

SetN2kSystemTime(n2kMsg, 1, GpsDate, GpsTime);
SetN2kSystemTime(n2kMsg, 1, GPSD, GPST);
send(n2kMsg,msg.sourceId);
}
if (UD(Latitude) &&
UD(Longitude)){
SetN2kLatLonRapid(n2kMsg,Latitude,Longitude);
if (UD(LAT) &&
UD(LON)){
SetN2kLatLonRapid(n2kMsg,LAT,LON);
send(n2kMsg,msg.sourceId);
}
if (UD(COG) && UD(SOG)){
SetN2kCOGSOGRapid(n2kMsg,1,N2khr_true,COG,SOG);
send(n2kMsg,msg.sourceId);
}
if (UD(Variation)){
if (UD(VAR)){
SetN2kMagneticVariation(n2kMsg,1,N2kmagvar_Calc,
getUint32(boatData->GpsDate), Variation);
getUint32(boatData->GPSD), VAR);
send(n2kMsg,msg.sourceId);
}

Expand Down Expand Up @@ -529,62 +529,62 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
}

void convertHDM(const SNMEA0183Msg &msg){
double MagneticHeading=NMEA0183DoubleNA;
if (!NMEA0183ParseHDM_nc(msg, MagneticHeading))
double MHDG=NMEA0183DoubleNA;
if (!NMEA0183ParseHDM_nc(msg, MHDG))
{
LOG_DEBUG(GwLog::DEBUG, "failed to parse HDM %s", msg.line);
return;
}
if (! UD(MagneticHeading)) return;
if (! UD(MHDG)) return;
tN2kMsg n2kMsg;
SetN2kMagneticHeading(n2kMsg,1,MagneticHeading,
boatData->Variation->getDataWithDefault(N2kDoubleNA),
boatData->Deviation->getDataWithDefault(N2kDoubleNA)
SetN2kMagneticHeading(n2kMsg,1,MHDG,
boatData->VAR->getDataWithDefault(N2kDoubleNA),
boatData->DEV->getDataWithDefault(N2kDoubleNA)
);
send(n2kMsg,msg.sourceId);
}

void convertHDT(const SNMEA0183Msg &msg){
double Heading=NMEA0183DoubleNA;
if (!NMEA0183ParseHDT_nc(msg, Heading))
double HDG=NMEA0183DoubleNA;
if (!NMEA0183ParseHDT_nc(msg, HDG))
{
LOG_DEBUG(GwLog::DEBUG, "failed to parse HDT %s", msg.line);
return;
}
if (! UD(Heading)) return;
if (! UD(HDG)) return;
tN2kMsg n2kMsg;
SetN2kTrueHeading(n2kMsg,1,Heading);
SetN2kTrueHeading(n2kMsg,1,HDG);
send(n2kMsg,msg.sourceId);
}
void convertHDG(const SNMEA0183Msg &msg){
double MagneticHeading=NMEA0183DoubleNA;
double Variation=NMEA0183DoubleNA;
double Deviation=NMEA0183DoubleNA;
double MHDG=NMEA0183DoubleNA;
double VAR=NMEA0183DoubleNA;
double DEV=NMEA0183DoubleNA;
if (msg.FieldCount() < 5)
{
LOG_DEBUG(GwLog::DEBUG, "failed to parse HDG %s", msg.line);
return;
}
if (msg.FieldLen(0)>0){
MagneticHeading=formatDegToRad(atof(msg.Field(0)));
MHDG=formatDegToRad(atof(msg.Field(0)));
}
else{
return;
}
if (msg.FieldLen(1)>0){
Deviation=formatDegToRad(atof(msg.Field(1)));
if (msg.Field(2)[0] == 'W') Deviation=-Deviation;
DEV=formatDegToRad(atof(msg.Field(1)));
if (msg.Field(2)[0] == 'W') DEV=-DEV;
}
if (msg.FieldLen(3)>0){
Variation=formatDegToRad(atof(msg.Field(3)));
if (msg.Field(4)[0] == 'W') Variation=-Variation;
VAR=formatDegToRad(atof(msg.Field(3)));
if (msg.Field(4)[0] == 'W') VAR=-VAR;
}

if (! UD(MagneticHeading)) return;
UD(Variation);
UD(Deviation);
if (! UD(MHDG)) return;
UD(VAR);
UD(DEV);
tN2kMsg n2kMsg;
SetN2kMagneticHeading(n2kMsg,1,MagneticHeading,Deviation,Variation);
SetN2kMagneticHeading(n2kMsg,1,MHDG,DEV,VAR);
send(n2kMsg,msg.sourceId);
}

Expand All @@ -607,10 +607,10 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
}
//offset == 0? SK does not allow this
if (Offset != NMEA0183DoubleNA && Offset>=0 ){
if (! boatData->WaterDepth->update(DepthBelowTransducer+Offset)) return;
if (! boatData->DBS->update(DepthBelowTransducer+Offset)) return;
}
if (Offset == NMEA0183DoubleNA) Offset=N2kDoubleNA;
if (! boatData->DepthTransducer->update(DepthBelowTransducer)) return;
if (! boatData->DBT->update(DepthBelowTransducer)) return;
tN2kMsg n2kMsg;
SetN2kWaterDepth(n2kMsg,1,DepthBelowTransducer,Offset);
send(n2kMsg,msg.sourceId,String(n2kMsg.PGN)+String((Offset != N2kDoubleNA)?1:0));
Expand Down Expand Up @@ -645,16 +645,16 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
continue;
}
if (dt == DBT){
if (! boatData->DepthTransducer->update(Depth,msg.sourceId)) return;
if (! boatData->DBT->update(Depth,msg.sourceId)) return;
tN2kMsg n2kMsg;
SetN2kWaterDepth(n2kMsg,1,Depth,N2kDoubleNA);
send(n2kMsg,msg.sourceId,String(n2kMsg.PGN)+String(0));
return;
}
//we can only send if we have a valid depth beloww tranducer
//to compute the offset
if (! boatData->DepthTransducer->isValid()) return;
double offset=Depth-boatData->DepthTransducer->getData();
if (! boatData->DBT->isValid()) return;
double offset=Depth-boatData->DBT->getData();
if (offset >= 0 && dt == DBT){
logger->logDebug(GwLog::DEBUG, "strange DBK - more depth then transducer %s", msg.line);
return;
Expand All @@ -664,7 +664,7 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
return;
}
if (dt == DBS){
if (! boatData->WaterDepth->update(Depth,msg.sourceId)) return;
if (! boatData->DBS->update(Depth,msg.sourceId)) return;
}
tN2kMsg n2kMsg;
SetN2kWaterDepth(n2kMsg,1,Depth,offset);
Expand All @@ -683,18 +683,18 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
}

void convertRSA(const SNMEA0183Msg &msg){
double RudderPosition=NMEA0183DoubleNA;
double RPOS=NMEA0183DoubleNA;
if (msg.FieldCount() < 4)
{
LOG_DEBUG(GwLog::DEBUG, "failed to parse RSA %s", msg.line);
return;
}
if (msg.FieldLen(0)>0){
if (msg.Field(1)[0] != 'A') return;
RudderPosition=degToRad*atof(msg.Field(0));
RPOS=degToRad*atof(msg.Field(0));
tN2kMsg n2kMsg;
if (! UD(RudderPosition)) return;
SetN2kRudder(n2kMsg,RudderPosition);
if (! UD(RPOS)) return;
SetN2kRudder(n2kMsg,RPOS);
send(n2kMsg,msg.sourceId);
}

Expand All @@ -708,7 +708,7 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
return;
}
if (! updateDouble(boatData->STW,STW,msg.sourceId)) return;
if (! updateDouble(boatData->Heading,TrueHeading,msg.sourceId)) return;
if (! updateDouble(boatData->HDG,TrueHeading,msg.sourceId)) return;
if (MagneticHeading == NMEA0183DoubleNA) MagneticHeading=N2kDoubleNA;
tN2kMsg n2kMsg;
SetN2kBoatSpeed(n2kMsg,1,STW);
Expand Down Expand Up @@ -741,12 +741,12 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
tmElements_t parts;
tNMEA0183Msg::breakTime(DateTime,parts);
double GpsTime=parts.tm_sec+60*parts.tm_min+3600*parts.tm_hour;
if (! boatData->GpsDate->update(DaysSince1970,msg.sourceId)) return;
if (! boatData->GpsTime->update(GpsTime,msg.sourceId)) return;
if (! boatData->GPSD->update(DaysSince1970,msg.sourceId)) return;
if (! boatData->GPST->update(GpsTime,msg.sourceId)) return;
bool timezoneValid=false;
if (msg.FieldLen(4) > 0 && msg.FieldLen(5)>0){
Timezone=Timezone/60; //N2K has offset in minutes
if (! boatData->Timezone->update(Timezone,msg.sourceId)) return;
if (! boatData->TZ->update(Timezone,msg.sourceId)) return;
timezoneValid=true;
}
tN2kMsg n2kMsg;
Expand Down Expand Up @@ -774,16 +774,16 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
LOG_DEBUG(GwLog::DEBUG, "failed to parse GGA %s", msg.line);
return;
}
if (! updateDouble(boatData->GpsTime,GPSTime,msg.sourceId)) return;
if (! updateDouble(boatData->Latitude,Latitude,msg.sourceId)) return;
if (! updateDouble(boatData->Longitude,Longitude,msg.sourceId)) return;
if (! updateDouble(boatData->Altitude,Altitude,msg.sourceId)) return;
if (! updateDouble(boatData->GPST,GPSTime,msg.sourceId)) return;
if (! updateDouble(boatData->LAT,Latitude,msg.sourceId)) return;
if (! updateDouble(boatData->LON,Longitude,msg.sourceId)) return;
if (! updateDouble(boatData->ALT,Altitude,msg.sourceId)) return;
if (! updateDouble(boatData->HDOP,HDOP,msg.sourceId)) return;
if (! boatData->GpsDate->isValid()) return;
if (! boatData->GPSD->isValid()) return;
tN2kMsg n2kMsg;
tN2kGNSSmethod method=N2kGNSSm_noGNSS;
if (GPSQualityIndicator <=5 ) method= (tN2kGNSSmethod)GPSQualityIndicator;
SetN2kGNSS(n2kMsg,1, boatData->GpsDate->getData(),
SetN2kGNSS(n2kMsg,1, boatData->GPSD->getData(),
GPSTime, Latitude, Longitude, Altitude,
N2kGNSSt_GPS, method,
SatelliteCount, HDOP, boatData->PDOP->getDataWithDefault(N2kDoubleNA), 0,
Expand Down Expand Up @@ -881,9 +881,9 @@ class NMEA0183DataToN2KFunctions : public NMEA0183DataToN2K
return;
}
if (GLL.status != 'A') return;
if (! updateDouble(boatData->Latitude,GLL.latitude,msg.sourceId)) return;
if (! updateDouble(boatData->Longitude,GLL.longitude,msg.sourceId)) return;
if (! updateDouble(boatData->GpsTime,GLL.GPSTime,msg.sourceId)) return;
if (! updateDouble(boatData->LAT,GLL.latitude,msg.sourceId)) return;
if (! updateDouble(boatData->LON,GLL.longitude,msg.sourceId)) return;
if (! updateDouble(boatData->GPST,GLL.GPSTime,msg.sourceId)) return;
tN2kMsg n2kMsg;
SetN2kLatLonRapid(n2kMsg,GLL.latitude,GLL.longitude);
send(n2kMsg,msg.sourceId);
Expand Down
Loading

0 comments on commit f9180d3

Please sign in to comment.