@@ -541,25 +541,85 @@ bool parseLine(char* str) {
541
541
else if (strcmp (settingName, " maxLogLength_minutes" ) == 0 )
542
542
settings.maxLogLength_minutes = d;
543
543
else if (strcmp (settingName, " observationSeconds" ) == 0 )
544
- settings.observationSeconds = d;
544
+ {
545
+ if (settings.observationSeconds != d) // If a setting for the ZED has changed, apply, and trigger module config update
546
+ {
547
+ settings.observationSeconds = d;
548
+ updateZEDSettings = true ;
549
+ }
550
+ }
545
551
else if (strcmp (settingName, " observationPositionAccuracy" ) == 0 )
546
- settings.observationPositionAccuracy = d;
552
+ {
553
+ if (settings.observationPositionAccuracy != d)
554
+ {
555
+ settings.observationPositionAccuracy = d;
556
+ updateZEDSettings = true ;
557
+ }
558
+ }
547
559
else if (strcmp (settingName, " fixedBase" ) == 0 )
548
- settings.fixedBase = d;
560
+ {
561
+ if (settings.fixedBase != d)
562
+ {
563
+ settings.fixedBase = d;
564
+ updateZEDSettings = true ;
565
+ }
566
+ }
549
567
else if (strcmp (settingName, " fixedBaseCoordinateType" ) == 0 )
550
- settings.fixedBaseCoordinateType = d;
568
+ {
569
+ if (settings.fixedBaseCoordinateType != d)
570
+ {
571
+ settings.fixedBaseCoordinateType = d;
572
+ updateZEDSettings = true ;
573
+ }
574
+ }
551
575
else if (strcmp (settingName, " fixedEcefX" ) == 0 )
552
- settings.fixedEcefX = d;
576
+ {
577
+ if (settings.fixedEcefX != d)
578
+ {
579
+ settings.fixedEcefX = d;
580
+ updateZEDSettings = true ;
581
+ }
582
+ }
553
583
else if (strcmp (settingName, " fixedEcefY" ) == 0 )
554
- settings.fixedEcefY = d;
584
+ {
585
+ if (settings.fixedEcefY != d)
586
+ {
587
+ settings.fixedEcefY = d;
588
+ updateZEDSettings = true ;
589
+ }
590
+ }
555
591
else if (strcmp (settingName, " fixedEcefZ" ) == 0 )
556
- settings.fixedEcefZ = d;
592
+ {
593
+ if (settings.fixedEcefZ != d)
594
+ {
595
+ settings.fixedEcefZ = d;
596
+ updateZEDSettings = true ;
597
+ }
598
+ }
557
599
else if (strcmp (settingName, " fixedLat" ) == 0 )
558
- settings.fixedLat = d;
600
+ {
601
+ if (settings.fixedLat != d)
602
+ {
603
+ settings.fixedLat = d;
604
+ updateZEDSettings = true ;
605
+ }
606
+ }
559
607
else if (strcmp (settingName, " fixedLong" ) == 0 )
560
- settings.fixedLong = d;
608
+ {
609
+ if (settings.fixedLong != d)
610
+ {
611
+ settings.fixedLong = d;
612
+ updateZEDSettings = true ;
613
+ }
614
+ }
561
615
else if (strcmp (settingName, " fixedAltitude" ) == 0 )
562
- settings.fixedAltitude = d;
616
+ {
617
+ if (settings.fixedAltitude != d)
618
+ {
619
+ settings.fixedAltitude = d;
620
+ updateZEDSettings = true ;
621
+ }
622
+ }
563
623
else if (strcmp (settingName, " dataPortBaud" ) == 0 )
564
624
settings.dataPortBaud = d;
565
625
else if (strcmp (settingName, " radioPortBaud" ) == 0 )
@@ -570,7 +630,6 @@ bool parseLine(char* str) {
570
630
strcpy (settings.casterHost , settingValue);
571
631
else if (strcmp (settingName, " casterPort" ) == 0 )
572
632
settings.casterPort = d;
573
-
574
633
else if (strcmp (settingName, " casterUser" ) == 0 )
575
634
strcpy (settings.casterUser , settingValue);
576
635
else if (strcmp (settingName, " casterUserPW" ) == 0 )
@@ -592,9 +651,21 @@ bool parseLine(char* str) {
592
651
else if (strcmp (settingName, " surveyInStartingAccuracy" ) == 0 )
593
652
settings.surveyInStartingAccuracy = d;
594
653
else if (strcmp (settingName, " measurementRate" ) == 0 )
595
- settings.measurementRate = d;
654
+ {
655
+ if (settings.measurementRate != d)
656
+ {
657
+ settings.measurementRate = d;
658
+ updateZEDSettings = true ;
659
+ }
660
+ }
596
661
else if (strcmp (settingName, " navigationRate" ) == 0 )
597
- settings.navigationRate = d;
662
+ {
663
+ if (settings.navigationRate != d)
664
+ {
665
+ settings.navigationRate = d;
666
+ updateZEDSettings = true ;
667
+ }
668
+ }
598
669
else if (strcmp (settingName, " enableI2Cdebug" ) == 0 )
599
670
settings.enableI2Cdebug = d;
600
671
else if (strcmp (settingName, " enableHeapReport" ) == 0 )
@@ -612,27 +683,81 @@ bool parseLine(char* str) {
612
683
else if (strcmp (settingName, " sppTxQueueSize" ) == 0 )
613
684
settings.sppTxQueueSize = d;
614
685
else if (strcmp (settingName, " dynamicModel" ) == 0 )
615
- settings.dynamicModel = d;
686
+ {
687
+ if (settings.dynamicModel != d)
688
+ {
689
+ settings.dynamicModel = d;
690
+ updateZEDSettings = true ;
691
+ }
692
+ }
616
693
else if (strcmp (settingName, " lastState" ) == 0 )
617
- settings.lastState = (SystemState)d;
694
+ {
695
+ if (settings.lastState != (SystemState)d)
696
+ {
697
+ settings.lastState = (SystemState)d;
698
+ updateZEDSettings = true ;
699
+ }
700
+ }
618
701
else if (strcmp (settingName, " throttleDuringSPPCongestion" ) == 0 )
619
702
settings.throttleDuringSPPCongestion = d;
620
703
else if (strcmp (settingName, " enableSensorFusion" ) == 0 )
621
- settings.enableSensorFusion = d;
704
+ {
705
+ if (settings.enableSensorFusion != d)
706
+ {
707
+ settings.enableSensorFusion = d;
708
+ updateZEDSettings = true ;
709
+ }
710
+ }
622
711
else if (strcmp (settingName, " autoIMUmountAlignment" ) == 0 )
623
- settings.autoIMUmountAlignment = d;
712
+ {
713
+ if (settings.autoIMUmountAlignment != d)
714
+ {
715
+ settings.autoIMUmountAlignment = d;
716
+ updateZEDSettings = true ;
717
+ }
718
+ }
624
719
else if (strcmp (settingName, " enableResetDisplay" ) == 0 )
625
720
settings.enableResetDisplay = d;
626
721
else if (strcmp (settingName, " enableExternalPulse" ) == 0 )
627
- settings.enableExternalPulse = d;
722
+ {
723
+ if (settings.enableExternalPulse != d)
724
+ {
725
+ settings.enableExternalPulse = d;
726
+ updateZEDSettings = true ;
727
+ }
728
+ }
628
729
else if (strcmp (settingName, " externalPulseTimeBetweenPulse_us" ) == 0 )
629
- settings.externalPulseTimeBetweenPulse_us = d;
730
+ {
731
+ if (settings.externalPulseTimeBetweenPulse_us != d)
732
+ {
733
+ settings.externalPulseTimeBetweenPulse_us = d;
734
+ updateZEDSettings = true ;
735
+ }
736
+ }
630
737
else if (strcmp (settingName, " externalPulseLength_us" ) == 0 )
631
- settings.externalPulseLength_us = d;
738
+ {
739
+ if (settings.externalPulseLength_us != d)
740
+ {
741
+ settings.externalPulseLength_us = d;
742
+ updateZEDSettings = true ;
743
+ }
744
+ }
632
745
else if (strcmp (settingName, " externalPulsePolarity" ) == 0 )
633
- settings.externalPulsePolarity = (pulseEdgeType_e)d;
746
+ {
747
+ if (settings.externalPulsePolarity != (pulseEdgeType_e)d)
748
+ {
749
+ settings.externalPulsePolarity = (pulseEdgeType_e)d;
750
+ updateZEDSettings = true ;
751
+ }
752
+ }
634
753
else if (strcmp (settingName, " enableExternalHardwareEventLogging" ) == 0 )
635
- settings.enableExternalHardwareEventLogging = d;
754
+ {
755
+ if (settings.enableExternalHardwareEventLogging != d)
756
+ {
757
+ settings.enableExternalHardwareEventLogging = d;
758
+ updateZEDSettings = true ;
759
+ }
760
+ }
636
761
else if (strcmp (settingName, " profileName" ) == 0 )
637
762
strcpy (settings.profileName , settingValue);
638
763
@@ -652,7 +777,12 @@ bool parseLine(char* str) {
652
777
653
778
if (strcmp (settingName, tempString) == 0 )
654
779
{
655
- settings.ubxConstellations [x].enabled = d;
780
+ if (settings.ubxConstellations [x].enabled != d)
781
+ {
782
+ settings.ubxConstellations [x].enabled = d;
783
+ updateZEDSettings = true ;
784
+ }
785
+
656
786
knownSetting = true ;
657
787
break ;
658
788
}
@@ -669,7 +799,12 @@ bool parseLine(char* str) {
669
799
670
800
if (strcmp (settingName, tempString) == 0 )
671
801
{
672
- settings.ubxMessages [x].msgRate = d;
802
+ if (settings.ubxMessages [x].msgRate != d)
803
+ {
804
+ settings.ubxMessages [x].msgRate = d;
805
+ updateZEDSettings = true ;
806
+ }
807
+
673
808
knownSetting = true ;
674
809
break ;
675
810
}
0 commit comments