@@ -329,7 +329,7 @@ bool GNSS_LG290P::configureRover()
329329 if (settingsWereSaved)
330330 settings.updateGNSSSettings = false ;
331331
332- // For RTCM and MSM messages to take effect (ie, PointPerfect is active) we must save/reset
332+ // For RTCM and MSM messages to take effect (ie, PointPerfect is active) we must save/reset
333333 softwareReset ();
334334
335335 if (settings.debugGnss )
@@ -618,9 +618,9 @@ bool GNSS_LG290P::enableRTCMBase()
618618 // If firmware is 4 or higher, use setMessageRateOnPort, otherwise setMessageRate
619619 if (lg290pFirmwareVersion >= 4 )
620620 // Enable this message, at this rate, on this port
621- response &=
622- _lg290p-> setMessageRateOnPort (lgMessagesRTCM [messageNumber]. msgTextName ,
623- settings. lg290pMessageRatesRTCMBase [messageNumber], portNumber);
621+ response &= _lg290p-> setMessageRateOnPort (lgMessagesRTCM[messageNumber]. msgTextName ,
622+ settings. lg290pMessageRatesRTCMBase [messageNumber],
623+ portNumber);
624624 else
625625 // Enable this message, at this rate
626626 response &= _lg290p->setMessageRate (lgMessagesRTCM[messageNumber].msgTextName ,
@@ -1639,24 +1639,42 @@ void GNSS_LG290P::menuMessagesSubtype(int *localMessageRate, const char *message
16391639 endOfBlock = MAX_LG290P_NMEA_MSG;
16401640
16411641 for (int x = 0 ; x < MAX_LG290P_NMEA_MSG; x++)
1642- systemPrintf (" %d) Message %s: %d\r\n " , x + 1 , lgMessagesNMEA[x].msgTextName ,
1643- settings.lg290pMessageRatesNMEA [x]);
1642+ {
1643+ if (lg290pFirmwareVersion <= lgMessagesNMEA[x].firmwareVersionSupported )
1644+ systemPrintf (" %d) Message %s: %d - Requires firmware update\r\n " , x + 1 ,
1645+ lgMessagesNMEA[x].msgTextName , settings.lg290pMessageRatesNMEA [x]);
1646+ else
1647+ systemPrintf (" %d) Message %s: %d\r\n " , x + 1 , lgMessagesNMEA[x].msgTextName ,
1648+ settings.lg290pMessageRatesNMEA [x]);
1649+ }
16441650 }
16451651 else if (strcmp (messageType, " RTCMRover" ) == 0 )
16461652 {
16471653 endOfBlock = MAX_LG290P_RTCM_MSG;
16481654
16491655 for (int x = 0 ; x < MAX_LG290P_RTCM_MSG; x++)
1650- systemPrintf (" %d) Message %s: %d\r\n " , x + 1 , lgMessagesRTCM[x].msgTextName ,
1651- settings.lg290pMessageRatesRTCMRover [x]);
1656+ {
1657+ if (lg290pFirmwareVersion <= lgMessagesRTCM[x].firmwareVersionSupported )
1658+ systemPrintf (" %d) Message %s: %d - Requires firmware update\r\n " , x + 1 ,
1659+ lgMessagesRTCM[x].msgTextName , settings.lg290pMessageRatesRTCMRover [x]);
1660+ else
1661+ systemPrintf (" %d) Message %s: %d\r\n " , x + 1 , lgMessagesRTCM[x].msgTextName ,
1662+ settings.lg290pMessageRatesRTCMRover [x]);
1663+ }
16521664 }
16531665 else if (strcmp (messageType, " RTCMBase" ) == 0 )
16541666 {
16551667 endOfBlock = MAX_LG290P_RTCM_MSG;
16561668
16571669 for (int x = 0 ; x < MAX_LG290P_RTCM_MSG; x++)
1658- systemPrintf (" %d) Message %s: %d\r\n " , x + 1 , lgMessagesRTCM[x].msgTextName ,
1659- settings.lg290pMessageRatesRTCMBase [x]);
1670+ {
1671+ if (lg290pFirmwareVersion <= lgMessagesRTCM[x].firmwareVersionSupported )
1672+ systemPrintf (" %d) Message %s: %d - Requires firmware update\r\n " , x + 1 , lgMessagesRTCM[x].msgTextName ,
1673+ settings.lg290pMessageRatesRTCMBase [x]);
1674+ else
1675+ systemPrintf (" %d) Message %s: %d\r\n " , x + 1 , lgMessagesRTCM[x].msgTextName ,
1676+ settings.lg290pMessageRatesRTCMBase [x]);
1677+ }
16601678 }
16611679
16621680 systemPrintln (" x) Exit" );
0 commit comments