@@ -628,6 +628,30 @@ bool LG290P::setMessageRate(const char *msgName, int rate, int msgVer)
628628 return ret;
629629}
630630
631+ // Set a message on a given port. Available in v4 and above.
632+ // $PQTMCFGMSGRATE,W,1,2,GGA,1* - <PortType>,<PortID>,<MsgName>,<Rate>[,MsgVersion/Offset]
633+ // Set port type (1 = UART), UART number (2 = UART2), message, rate
634+ bool LG290P::setMessageRateOnPort (const char *msgName, int rate, int portNumber, int msgVer)
635+ {
636+ char parms[50 ];
637+ snprintf (parms, sizeof parms, msgVer == -1 ? " ,W,1,%d,%s,%d" : " ,W,1,%d,%s,%d,%d" , portNumber, msgName, rate, msgVer);
638+ bool ret = sendOkCommand (" PQTMCFGMSGRATE" , parms);
639+
640+ // We internally track whether certain important sentences are enabled
641+ if (ret)
642+ {
643+ std::string str = msgName;
644+ if (str == " GGA" ) devState.ggaRate = rate;
645+ else if (str == " RMC" ) devState.rmcRate = rate;
646+ else if (str == " PQTMPVT" ) devState.pvtRate = rate;
647+ else if (str == " PQTMPL" ) devState.plRate = rate;
648+ else if (str == " PQTMSVINSTATUS" ) devState.svinstatusRate = rate;
649+ else if (str == " PQTMEPE" ) devState.epeRate = rate;
650+ else if (str == " GSV" ) devState.gsvRate = rate;
651+ }
652+ return ret;
653+ }
654+
631655bool LG290P::getMessageRate (const char *msgName, int &rate, int msgVer)
632656{
633657 char parms[50 ];
@@ -1380,7 +1404,7 @@ NmeaPacket NmeaPacket::FromString(const std::string &str)
13801404 size_t start = 0 ;
13811405 size_t delimiterPos = str.find_first_of (" ,*" );
13821406 unsigned long calculatedChksum = 0 ;
1383- log_d (" Parsing sentence %s" , str.c_str ());
1407+ // log_d("Parsing sentence %s", str.c_str());
13841408
13851409 while (true )
13861410 {
0 commit comments