convert VHW,VTG
This commit is contained in:
parent
5560c39a02
commit
e1e2998a9a
|
@ -520,6 +520,37 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
void convertVHW(const SNMEA0183Msg &msg){
|
||||||
|
double TrueHeading=NMEA0183DoubleNA;
|
||||||
|
double MagneticHeading=NMEA0183DoubleNA;
|
||||||
|
double STW=NMEA0183DoubleNA;
|
||||||
|
if (! NMEA0183ParseVHW_nc(msg,TrueHeading,MagneticHeading,STW)){
|
||||||
|
logger->logDebug(GwLog::DEBUG, "failed to parse VHW %s", msg.line);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (! updateDouble(boatData->STW,STW,msg.sourceId)) return;
|
||||||
|
if (! updateDouble(boatData->Heading,TrueHeading,msg.sourceId)) return;
|
||||||
|
if (MagneticHeading == NMEA0183DoubleNA) MagneticHeading=N2kDoubleNA;
|
||||||
|
tN2kMsg n2kMsg;
|
||||||
|
SetN2kBoatSpeed(n2kMsg,1,STW);
|
||||||
|
send(n2kMsg);
|
||||||
|
|
||||||
|
}
|
||||||
|
void convertVTG(const SNMEA0183Msg &msg){
|
||||||
|
double COG=NMEA0183DoubleNA;
|
||||||
|
double SOG=NMEA0183DoubleNA;
|
||||||
|
double MCOG=NMEA0183DoubleNA;
|
||||||
|
if (! NMEA0183ParseVTG_nc(msg,COG,MCOG,SOG)){
|
||||||
|
logger->logDebug(GwLog::DEBUG, "failed to parse VTG %s", msg.line);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (! UD(COG)) return;
|
||||||
|
if (! UD(SOG)) return;
|
||||||
|
tN2kMsg n2kMsg;
|
||||||
|
//TODO: maybe use MCOG if no COG?
|
||||||
|
SetN2kCOGSOGRapid(n2kMsg,1,N2khr_true,COG,SOG);
|
||||||
|
send(n2kMsg);
|
||||||
|
}
|
||||||
|
|
||||||
//shortcut for lambda converters
|
//shortcut for lambda converters
|
||||||
#define CVL [](const SNMEA0183Msg &msg, NMEA0183DataToN2KFunctions *p) -> void
|
#define CVL [](const SNMEA0183Msg &msg, NMEA0183DataToN2KFunctions *p) -> void
|
||||||
|
@ -563,6 +594,12 @@ private:
|
||||||
converters.registerConverter(
|
converters.registerConverter(
|
||||||
127245UL,
|
127245UL,
|
||||||
String(F("RSA")), &NMEA0183DataToN2KFunctions::convertRSA);
|
String(F("RSA")), &NMEA0183DataToN2KFunctions::convertRSA);
|
||||||
|
converters.registerConverter(
|
||||||
|
128259UL,
|
||||||
|
String(F("VHW")), &NMEA0183DataToN2KFunctions::convertVHW);
|
||||||
|
converters.registerConverter(
|
||||||
|
129026UL,
|
||||||
|
String(F("VTG")), &NMEA0183DataToN2KFunctions::convertVTG);
|
||||||
unsigned long *aispgns=new unsigned long[7]{129810UL,129809UL,129040UL,129039UL,129802UL,129794UL,129038UL};
|
unsigned long *aispgns=new unsigned long[7]{129810UL,129809UL,129040UL,129039UL,129802UL,129794UL,129038UL};
|
||||||
converters.registerConverter(7,&aispgns[0],
|
converters.registerConverter(7,&aispgns[0],
|
||||||
String(F("AIVDM")),&NMEA0183DataToN2KFunctions::convertAIVDX);
|
String(F("AIVDM")),&NMEA0183DataToN2KFunctions::convertAIVDX);
|
||||||
|
|
Loading…
Reference in New Issue