From e5b03868df914a4080c1a8f75f72e5076e71421f Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Sun, 28 Feb 2016 12:07:16 +0100 Subject: [PATCH] LP-247 Add Naza GPS to Wizard --- .../plugins/setupwizard/connectiondiagram.cpp | 3 + .../src/plugins/setupwizard/pages/gpspage.cpp | 5 + .../resources/connection-diagrams.svg | 1586 +++++++++++++- .../setupwizard/resources/sensor-shapes.svg | 1821 +++++++++-------- .../src/plugins/setupwizard/setupwizard.cpp | 3 + .../vehicleconfigurationhelper.cpp | 13 + .../setupwizard/vehicleconfigurationsource.h | 2 +- 7 files changed, 2494 insertions(+), 939 deletions(-) diff --git a/ground/gcs/src/plugins/setupwizard/connectiondiagram.cpp b/ground/gcs/src/plugins/setupwizard/connectiondiagram.cpp index 0169a9c85..433b0b57d 100644 --- a/ground/gcs/src/plugins/setupwizard/connectiondiagram.cpp +++ b/ground/gcs/src/plugins/setupwizard/connectiondiagram.cpp @@ -237,6 +237,9 @@ void ConnectionDiagram::setupGraphicsScene() case VehicleConfigurationSource::GPS_PLATINUM: elementsToShow << QString("%1OPGPS-v9").arg(prefix); break; + case VehicleConfigurationSource::GPS_NAZA: + elementsToShow << QString("%1NazaGPS").arg(prefix); + break; case VehicleConfigurationSource::GPS_UBX: elementsToShow << QString("%1OPGPS-v8-ublox").arg(prefix); break; diff --git a/ground/gcs/src/plugins/setupwizard/pages/gpspage.cpp b/ground/gcs/src/plugins/setupwizard/pages/gpspage.cpp index 1a6b8b30e..094322c5a 100644 --- a/ground/gcs/src/plugins/setupwizard/pages/gpspage.cpp +++ b/ground/gcs/src/plugins/setupwizard/pages/gpspage.cpp @@ -83,6 +83,11 @@ void GpsPage::setupSelection(Selection *selection) "OPGPS-v9", SetupWizard::GPS_PLATINUM); + selection->addItem(tr("Naza GPS"), + tr("Select this option to use the Naza GPS with integrated Magnetometer."), + "NazaGPS", + SetupWizard::GPS_NAZA); + selection->addItem(tr("U-Blox Based + Magnetometer"), tr("Select this option for the generic U-Blox chipset based GPS + I2C Magnetometer.\n\n" "GPS is connected to MainPort and two wires I2C to FlexiPort."), diff --git a/ground/gcs/src/plugins/setupwizard/resources/connection-diagrams.svg b/ground/gcs/src/plugins/setupwizard/resources/connection-diagrams.svg index ac497327d..17d728df6 100644 --- a/ground/gcs/src/plugins/setupwizard/resources/connection-diagrams.svg +++ b/ground/gcs/src/plugins/setupwizard/resources/connection-diagrams.svg @@ -36,7 +36,7 @@ inkscape:window-x="0" inkscape:window-y="27" inkscape:window-maximized="1" - inkscape:current-layer="layer64" + inkscape:current-layer="flexi-revo-NazaGPS" fit-margin-top="15" fit-margin-left="15" fit-margin-right="15" @@ -48,7 +48,7 @@ inkscape:snap-bbox="true" inkscape:object-paths="true" inkscape:snap-bbox-midpoints="true" - inkscape:snap-bbox-edge-midpoints="false" + inkscape:snap-bbox-edge-midpoints="true" inkscape:object-nodes="true" inkscape:snap-nodes="true"> + + + + + + + + + + + + + + + @@ -18748,7 +18830,7 @@ inkscape:groupmode="layer" id="layer64" inkscape:label="cc-exbus" - style="display:inline" + style="display:none" sodipodi:insensitive="true"> @@ -19185,25 +19267,25 @@ sodipodi:nodetypes="cc" style="fill:none;stroke:#1f4697;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:round" inkscape:connector-curvature="0" - d="m 303.76407,219.75113 l 126.79968,-0.0948" + d="M 303.76407,219.75113 L 430.56375,219.65633" id="path8856-5-7" /> @@ -19270,19 +19352,19 @@ id="text9734-2-5" transform="translate(0,31)"> @@ -19291,23 +19373,23 @@ id="text9734-2-6-6" transform="translate(0,31)"> @@ -19316,15 +19398,15 @@ id="text9734-2-6-4-4" transform="translate(0,31)"> @@ -19333,49 +19415,49 @@ id="text9734-2-6-4-2-7" transform="translate(0,31)"> @@ -19869,7 +19951,7 @@ inkscape:groupmode="layer" id="layer21" inkscape:label="revo-sbus" - style="display:none" + style="display:inline" sodipodi:insensitive="true"> @@ -20094,8 +20176,8 @@ sodipodi:nodetypes="sssccccssssss" inkscape:connector-curvature="0" id="rect8853-0-8-1" - d="M 236.31357,289.05542 L 423.35356,289.05542 C 426.94348,289.05542 429.83356,291.9455 429.83356,295.53542 L 429.83356,304.37557 L 423.83356,304.37557 L 423.83356,426.73558 L 429.834,426.73558 L 429.83356,436.97542 C 429.83341,440.56534 426.94348,443.45542 423.35356,443.45542 L 236.31357,443.45542 C 232.72364,443.45542 229.83356,440.56534 229.83356,436.97542 L 229.83356,295.53542 C 229.83356,291.9455 232.72364,289.05542 236.31357,289.05542 z" - style="color:#000000;fill:url(#linearGradient13971);fill-rule:nonzero;stroke:#000000;stroke-width:3.09599996;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:accumulate" /> + d="M 236.31357,289.05542 L 423.35356,289.05542 C 426.94348,289.05542 429.83356,291.9455 429.83356,295.53542 L 429.83356,304.37557 L 423.83356,304.37557 L 423.83356,426.73558 L 429.834,426.73558 L 429.83356,436.97542 C 429.83341,440.56534 426.94348,443.45542 423.35356,443.45542 L 236.31357,443.45542 C 232.72364,443.45542 229.83356,440.56534 229.83356,436.97542 L 229.83356,295.53542 C 229.83356,291.9455 232.72364,289.05542 236.31357,289.05542 Z" + style="color:#000000;display:inline;fill:url(#linearGradient13971);fill-rule:nonzero;stroke:#000000;stroke-width:3.09599996;stroke-miterlimit:4;stroke-dasharray:none;enable-background:accumulate" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.39999962px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.39999962px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#488eff"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.39999962px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffdc00"> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.39999962px;line-height:125%;font-family:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;fill:#73ff00;fill-rule:nonzero;enable-background:accumulate"> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.39999962px;line-height:125%;font-family:Sans;text-indent:0;text-align:end;text-decoration:none;text-decoration-line:none;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:end;fill:#ff7e00;fill-rule:nonzero;enable-background:accumulate"> @@ -20955,7 +21037,7 @@ id="layer8" inkscape:label="gps" transform="translate(-32.46875,315.85439)" - style="display:none"> + style="display:inline"> + points="242.74,467.777 251.619,467.777 251.619,467.777 251.619,460.783 233.13,460.783 233.13,492.937 251.619,492.937 251.619,485.734 242.74,485.734 242.74,480.095 251.619,480.095 251.619,473.728 242.74,473.728 " /> + points="253.082,454.937 220.283,454.937 220.283,364.946 220.283,364.946 253.082,364.946 " /> + points="247.754,449.298 247.754,370.688 225.505,370.688 225.505,370.688 225.505,449.298 " /> + points="186.194,11.031 181.129,13.319 186.083,4.74 191.036,13.319 " /> + + points="233.13,492.937 251.619,492.937 251.619,485.734 242.74,485.734 242.74,480.095 251.619,480.095 251.619,473.728 242.74,473.728 242.74,467.777 251.619,467.777 251.619,467.777 251.619,460.783 233.13,460.783 " /> + points="220.283,364.946 220.283,364.946 253.082,364.946 253.082,454.937 220.283,454.937 " /> + points="225.505,370.688 225.505,370.688 225.505,449.298 247.754,449.298 247.754,370.688 " /> + points="186.194,11.031 181.129,13.319 186.083,4.74 191.036,13.319 " /> + + points="186.083,4.74 191.036,13.319 186.194,11.031 181.129,13.319 " /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transform="translate(-4.5499998,3.9657339e-6)"> @@ -4553,7 +4654,7 @@ + style="fill:#dbddde;fill-opacity:1;fill-rule:evenodd;stroke:#393a3e;stroke-width:0.85634619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4805,7 +4906,7 @@ + style="fill:url(#radialGradient13230);fill-opacity:1;fill-rule:evenodd;stroke:#393a3e;stroke-width:0.58099997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="fill:url(#radialGradient13234);fill-opacity:1;fill-rule:evenodd;stroke:#393a3e;stroke-width:0.58099997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="fill:url(#radialGradient13236);fill-opacity:1;fill-rule:evenodd;stroke:#393a3e;stroke-width:0.58099997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="fill:url(#radialGradient13240);fill-opacity:1;fill-rule:evenodd;stroke:#393a3e;stroke-width:0.58099997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="fill:url(#radialGradient13244);fill-opacity:1;fill-rule:evenodd;stroke:#393a3e;stroke-width:0.58099997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 379.71034,1197.185 L 379.71034,1195.3655 L 385.09482,1195.3545 L 385.09482,1201.1092 C 384.26968,1201.9131 383.41635,1202.5197 382.53481,1202.9287 C 381.65326,1203.3307 380.74703,1203.5317 379.81613,1203.5317 C 378.57491,1203.5317 377.46769,1203.2214 376.49447,1202.6008 C 375.52124,1201.9801 374.74901,1201.0739 374.17777,1199.8821 C 373.61358,1198.6902 373.33149,1197.2586 373.33149,1195.5872 C 373.33149,1193.8946 373.61711,1192.4207 374.18835,1191.1654 C 374.75959,1189.9101 375.50714,1188.9862 376.431,1188.3938 C 377.35485,1187.7944 378.44797,1187.4946 379.71034,1187.4946 C 380.64125,1187.4946 381.45579,1187.6674 382.15398,1188.013 C 382.85216,1188.3585 383.42692,1188.8487 383.87829,1189.4834 C 384.32962,1190.1181 384.66814,1190.9891 384.89382,1192.0963 L 383.38109,1192.604 C 383.17657,1191.7296 382.91915,1191.0772 382.60886,1190.647 C 382.29855,1190.2098 381.88951,1189.8677 381.38175,1189.6209 C 380.87397,1189.3741 380.30273,1189.2507 379.66803,1189.2506 C 378.74417,1189.2507 377.94725,1189.4763 377.27728,1189.9277 C 376.61436,1190.372 376.07838,1191.0666 375.66935,1192.0116 C 375.26736,1192.9567 375.06637,1194.1097 375.06637,1195.4708 C 375.06637,1197.5442 375.50009,1199.0993 376.36753,1200.136 C 377.23496,1201.1656 378.36334,1201.6804 379.75266,1201.6804 C 380.41557,1201.6804 381.0926,1201.5217 381.78374,1201.2044 C 382.48191,1200.887 383.03552,1200.5097 383.44457,1200.0725 L 383.44457,1197.1845 L 379.71034,1197.1845" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 390.8178,1203.2677 L 390.8178,1189.5897 L 386.6287,1189.5897 L 386.6287,1187.7596 L 396.71004,1187.7596 L 396.71004,1189.5897 L 392.49979,1189.5897 L 392.49979,1203.2677 L 390.8178,1203.2677" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 398.43434,1203.2677 L 398.43434,1187.7596 L 403.22642,1187.7596 C 404.35479,1187.7596 405.18697,1187.8586 405.72295,1188.0558 C 406.45639,1188.3238 407.04173,1188.821 407.47899,1189.5473 C 407.91622,1190.2738 408.13485,1191.1659 408.13486,1192.2237 C 408.13485,1193.6201 407.7787,1194.759 407.06643,1195.6406 C 406.35413,1196.5221 405.12349,1196.9629 403.37452,1196.9629 L 400.11633,1196.9629 L 400.11633,1203.2677 L 398.43434,1203.2677 M 400.11633,1195.1328 L 403.40625,1195.1328 C 404.44294,1195.1328 405.20107,1194.9001 405.68064,1194.4346 C 406.16019,1193.9621 406.39997,1193.2534 406.39998,1192.3083 C 406.39997,1191.6948 406.28008,1191.1694 406.04031,1190.7321 C 405.80757,1190.2949 405.52195,1189.9952 405.18345,1189.833 C 404.85198,1189.6708 404.249,1189.5897 403.37452,1189.5897 L 400.11633,1189.5897 L 400.11633,1195.1328" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 407.59535,1203.2677 L 412.48263,1187.7596 L 414.29156,1187.7596 L 419.4962,1203.2677 L 417.57091,1203.2677 L 416.08991,1198.5708 L 410.77949,1198.5708 L 409.38312,1203.2677 L 407.59535,1203.2677 M 411.2661,1196.8994 L 415.57156,1196.8994 L 414.24925,1192.6045 C 413.8402,1191.2858 413.54048,1190.2138 413.35007,1189.3887 C 413.18786,1190.3831 412.95866,1191.3704 412.66247,1192.3507 L 411.2661,1196.8994" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 420.19438,1195.6194 C 420.19438,1193.0171 420.54347,1191.046 421.24165,1189.706 C 421.94689,1188.3661 422.98358,1187.6961 424.35174,1187.6961 C 425.56474,1187.6961 426.52033,1188.2391 427.21852,1189.3252 C 428.0648,1190.6369 428.48794,1192.735 428.48795,1195.6194 C 428.48794,1198.2076 428.13885,1200.1752 427.44067,1201.5222 C 426.74248,1202.8622 425.70579,1203.5322 424.33059,1203.5322 C 423.11758,1203.5322 422.1232,1202.9398 421.34744,1201.755 C 420.57873,1200.5702 420.19438,1198.525 420.19438,1195.6194 M 421.79174,1195.6194 C 421.79174,1198.1371 422.03152,1199.8262 422.51108,1200.6865 C 422.99769,1201.5399 423.61829,1201.9665 424.3729,1201.9665 C 425.08518,1201.9665 425.68111,1201.5328 426.16067,1200.6654 C 426.64022,1199.7979 426.88,1198.116 426.88001,1195.6194 C 426.88,1193.0947 426.6367,1191.4057 426.15009,1190.5523 C 425.67053,1189.699 425.04639,1189.2723 424.27769,1189.2723 C 423.57245,1189.2723 422.98006,1189.706 422.5005,1190.5735 C 422.02799,1191.4409 421.79174,1193.1229 421.79174,1195.6194" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 435.97755,1203.2677 L 434.41193,1203.2677 L 434.41193,1191.1341 C 434.05225,1191.5573 433.56916,1191.991 432.96267,1192.4353 C 432.35616,1192.8725 431.79903,1193.204 431.29126,1193.4297 L 431.29126,1191.589 C 432.15164,1191.0953 432.90977,1190.4924 433.56564,1189.7801 C 434.22856,1189.0678 434.69401,1188.3731 434.96201,1187.6961 L 435.97755,1187.6961 L 435.97755,1203.2677" /> + style="font-weight:normal;-inkscape-font-specification:'Arial Narrow Condensed'" + d="M 439.99739,1195.6194 C 439.99739,1193.0171 440.34648,1191.046 441.04466,1189.706 C 441.7499,1188.3661 442.78659,1187.6961 444.15475,1187.6961 C 445.36775,1187.6961 446.32334,1188.2391 447.02153,1189.3252 C 447.86781,1190.6369 448.29095,1192.735 448.29096,1195.6194 C 448.29095,1198.2076 447.94186,1200.1752 447.24368,1201.5222 C 446.54549,1202.8622 445.5088,1203.5322 444.13359,1203.5322 C 442.92059,1203.5322 441.92621,1202.9398 441.15045,1201.755 C 440.38174,1200.5702 439.99739,1198.525 439.99739,1195.6194 M 441.59475,1195.6194 C 441.59475,1198.1371 441.83452,1199.8262 442.31409,1200.6865 C 442.8007,1201.5399 443.4213,1201.9665 444.17591,1201.9665 C 444.88819,1201.9665 445.48411,1201.5328 445.96368,1200.6654 C 446.44323,1199.7979 446.68301,1198.116 446.68302,1195.6194 C 446.68301,1193.0947 446.43971,1191.4057 445.9531,1190.5523 C 445.47354,1189.699 444.8494,1189.2723 444.0807,1189.2723 C 443.37546,1189.2723 442.78307,1189.706 442.30351,1190.5735 C 441.831,1191.4409 441.59475,1193.1229 441.59475,1195.6194" /> + d="M 444.40744,1038.0272 C 452.57603,1038.0272 459.19798,1044.6491 459.19798,1052.8177 C 459.19798,1060.9863 452.57603,1067.6082 444.40744,1067.6082 C 436.23885,1067.6082 429.6169,1060.9863 429.6169,1052.8177 C 429.6169,1044.6491 436.23885,1038.0272 444.40744,1038.0272 Z" + style="fill:url(#radialGradient13246);fill-opacity:1;fill-rule:evenodd;stroke:#87878d;stroke-width:5.08913088;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:condensed;font-size:40px;line-height:125%;font-family:'Arial Narrow';-inkscape-font-specification:'Arial Narrow Bold Condensed';letter-spacing:0px;word-spacing:0px;fill:#545352;fill-opacity:1;stroke:none"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:condensed;font-size:40px;line-height:125%;font-family:'Arial Narrow';-inkscape-font-specification:'Arial Narrow Bold Condensed';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"> diff --git a/ground/gcs/src/plugins/setupwizard/setupwizard.cpp b/ground/gcs/src/plugins/setupwizard/setupwizard.cpp index 9de73be50..e9cb8ac94 100644 --- a/ground/gcs/src/plugins/setupwizard/setupwizard.cpp +++ b/ground/gcs/src/plugins/setupwizard/setupwizard.cpp @@ -434,6 +434,9 @@ QString SetupWizard::getSummaryText() case GPS_PLATINUM: summary.append(tr("OpenPilot Platinum")); break; + case GPS_NAZA: + summary.append(tr("Naza GPS")); + break; case GPS_UBX_FLEXI_I2CMAG: summary.append(tr("Generic UBLOX + I2C Magnetometer")); break; diff --git a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp index e8004b034..f2fcd804a 100644 --- a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp +++ b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationhelper.cpp @@ -259,6 +259,19 @@ void VehicleConfigurationHelper::applyHardwareConfiguration() addModifiedObject(magSettings, tr("Writing External Mag sensor settings")); break; } + case VehicleConfigurationSource::GPS_NAZA: + { + gpsData.DataProtocol = GPSSettings::DATAPROTOCOL_DJI; + gpsData.UbxAutoConfig = GPSSettings::UBXAUTOCONFIG_DISABLED; + AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager); + Q_ASSERT(magSettings); + AuxMagSettings::DataFields magsData = magSettings->getData(); + magsData.Type = AuxMagSettings::TYPE_DJI; + magsData.Usage = AuxMagSettings::USAGE_AUXONLY; + magSettings->setData(magsData); + addModifiedObject(magSettings, tr("Writing External Mag sensor settings")); + break; + } case VehicleConfigurationSource::GPS_UBX_FLEXI_I2CMAG: { gpsData.DataProtocol = GPSSettings::DATAPROTOCOL_UBX; diff --git a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h index 49e152af0..73f66b32f 100644 --- a/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h +++ b/ground/gcs/src/plugins/setupwizard/vehicleconfigurationsource.h @@ -68,7 +68,7 @@ public: enum SERVO_TYPE { SERVO_ANALOG, SERVO_DIGITAL, SERVO_UNKNOWN }; enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSM, INPUT_SRXL, INPUT_HOTT_SUMD, INPUT_EXBUS, INPUT_UNKNOWN }; enum AIRSPEED_TYPE { AIRSPEED_ESTIMATE, AIRSPEED_EAGLETREE, AIRSPEED_MS4525, AIRSPEED_DISABLED }; - enum GPS_TYPE { GPS_PLATINUM, GPS_UBX_FLEXI_I2CMAG, GPS_UBX, GPS_NMEA, GPS_DISABLED }; + enum GPS_TYPE { GPS_PLATINUM, GPS_NAZA, GPS_UBX_FLEXI_I2CMAG, GPS_UBX, GPS_NMEA, GPS_DISABLED }; enum RADIO_SETTING { RADIO_TELEMETRY, RADIO_DISABLED }; virtual VehicleConfigurationSource::CONTROLLER_TYPE getControllerType() const = 0;