Skip to content

Commit c9edb61

Browse files
committed
Enable MSM output to get EPH RTCM output
1 parent 0a0fa77 commit c9edb61

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Firmware/RTK_Everywhere/GNSS_LG290P.ino

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,7 @@ bool GNSS_LG290P::enableNMEA()
545545
bool GNSS_LG290P::enableRTCMBase()
546546
{
547547
bool response = true;
548+
bool enableMSM = false; // Goes true if we need to enable MSM output reporting
548549

549550
for (int messageNumber = 0; messageNumber < MAX_LG290P_RTCM_MSG; messageNumber++)
550551
{
@@ -574,6 +575,17 @@ bool GNSS_LG290P::enableRTCMBase()
574575
response &= false; // If any one of the commands fails, report failure overall
575576
}
576577
}
578+
579+
// If any message is enabled, enable MSM output
580+
if (lgMessagesRTCM[messageNumber].msgTextName, settings.lg290pMessageRatesRTCMRover[messageNumber] == true)
581+
enableMSM = true;
582+
}
583+
584+
if (enableMSM == true)
585+
{
586+
// PQTMCFGRTCM fails to respond with OK over UART2 of LG290P, so don't look for it
587+
_lg290p->sendOkCommand(
588+
"PQTMCFGRTCM,W,7,0,-90,07,06,2,1"); // Enable MSM7, output regular intervals, interval (seconds)
577589
}
578590

579591
return (response);
@@ -589,6 +601,7 @@ bool GNSS_LG290P::enableRTCMRover()
589601
bool rtcm1020Enabled = false;
590602
bool rtcm1042Enabled = false;
591603
bool rtcm1046Enabled = false;
604+
bool enableMSM = false; // Goes true if we need to enable MSM output reporting
592605

593606
for (int messageNumber = 0; messageNumber < MAX_LG290P_RTCM_MSG; messageNumber++)
594607
{
@@ -619,6 +632,10 @@ bool GNSS_LG290P::enableRTCMRover()
619632
}
620633
}
621634

635+
// If any message is enabled, enable MSM output
636+
if (lgMessagesRTCM[messageNumber].msgTextName, settings.lg290pMessageRatesRTCMRover[messageNumber] == true)
637+
enableMSM = true;
638+
622639
// If we are using IP based corrections, we need to send local data to the PPL
623640
// The PPL requires being fed GPGGA/ZDA, and RTCM1019/1020/1042/1046
624641
if (settings.enablePointPerfectCorrections)
@@ -632,6 +649,7 @@ bool GNSS_LG290P::enableRTCMRover()
632649
rtcm1042Enabled = true;
633650
if (strcmp(lgMessagesNMEA[messageNumber].msgTextName, "RTCM3-1046") == 0)
634651
rtcm1046Enabled = true;
652+
enableMSM = true; // Force enable MSM output
635653
}
636654
}
637655

@@ -648,6 +666,13 @@ bool GNSS_LG290P::enableRTCMRover()
648666
response &= _lg290p->setMessageRate("RTCM3-1046", 1);
649667
}
650668

669+
if (enableMSM == true)
670+
{
671+
// PQTMCFGRTCM fails to respond with OK over UART2 of LG290P, so don't look for it
672+
_lg290p->sendOkCommand(
673+
"PQTMCFGRTCM,W,7,0,-90,07,06,2,1"); // Enable MSM7, output regular intervals, interval (seconds)
674+
}
675+
651676
return (response);
652677
}
653678

0 commit comments

Comments
 (0)