diff --git a/Tools/autotest/param_metadata/ednemit.py b/Tools/autotest/param_metadata/ednemit.py
index d024e13a5dbae..2989381c839ef 100644
--- a/Tools/autotest/param_metadata/ednemit.py
+++ b/Tools/autotest/param_metadata/ednemit.py
@@ -49,6 +49,9 @@ def emit(self, g):
# remove any keys we don't really care to share
for key in self.remove_keys:
output_dict.pop(key, None)
+ for key in list(output_dict.keys()):
+ if not self.should_emit_field(param, key):
+ output_dict.pop(key, None)
# rearrange bitmasks to be a vector with nil's if the bit doesn't have meaning
if "bitmask" in output_dict:
diff --git a/Tools/autotest/param_metadata/emit.py b/Tools/autotest/param_metadata/emit.py
index 6bffd455d4816..daad4bbfc5a49 100644
--- a/Tools/autotest/param_metadata/emit.py
+++ b/Tools/autotest/param_metadata/emit.py
@@ -19,3 +19,6 @@ def start_libraries(self):
def emit(self, g):
pass
+
+ def should_emit_field(self, param, field):
+ return field not in ['Legacy']
diff --git a/Tools/autotest/param_metadata/htmlemit.py b/Tools/autotest/param_metadata/htmlemit.py
index 201a13ef9a85b..1f3a26bb290d4 100644
--- a/Tools/autotest/param_metadata/htmlemit.py
+++ b/Tools/autotest/param_metadata/htmlemit.py
@@ -65,6 +65,8 @@ def emit(self, g):
t += "
\n"
for field in param.__dict__.keys():
+ if not self.should_emit_field(param, field):
+ continue
if field not in ['name', 'DisplayName', 'Description', 'User', 'SortValues'] and field in known_param_fields:
if field == 'Values' and Emit.prog_values_field.match(param.__dict__[field]):
values = (param.__dict__[field]).split(',')
diff --git a/Tools/autotest/param_metadata/jsonemit.py b/Tools/autotest/param_metadata/jsonemit.py
index 0ff31366a0c30..b5e9e5c42830f 100644
--- a/Tools/autotest/param_metadata/jsonemit.py
+++ b/Tools/autotest/param_metadata/jsonemit.py
@@ -56,6 +56,9 @@ def emit(self, g):
name = name.split(':')[1]
# Remove various unwanted keys
+ for key in list(param.__dict__.keys()):
+ if not self.should_emit_field(param, key):
+ param.__dict__.pop(key)
for key in 'real_path', 'SortValues', '__field_text':
try:
param.__dict__.pop(key)
diff --git a/Tools/autotest/param_metadata/mdemit.py b/Tools/autotest/param_metadata/mdemit.py
index e6edba803bd8c..1b37acaf34484 100644
--- a/Tools/autotest/param_metadata/mdemit.py
+++ b/Tools/autotest/param_metadata/mdemit.py
@@ -90,6 +90,8 @@ def emit(self, g):
t += "\n\n%s" % param.Description
for field in param.__dict__.keys():
+ if not self.should_emit_field(param, field):
+ continue
if field not in ['name', 'DisplayName', 'Description', 'User', 'SortValues'] and field in known_param_fields:
if field == 'Values' and Emit.prog_values_field.match(param.__dict__[field]):
values = (param.__dict__[field]).split(',')
diff --git a/Tools/autotest/param_metadata/param.py b/Tools/autotest/param_metadata/param.py
index e8be59cfd6f26..89e0294e8fa05 100644
--- a/Tools/autotest/param_metadata/param.py
+++ b/Tools/autotest/param_metadata/param.py
@@ -51,7 +51,8 @@ def has_param(self, pname):
'ReadOnly',
'Calibration',
'Vector3Parameter',
- 'SortValues'
+ 'SortValues',
+ 'Legacy',
]
# Follow SI units conventions from:
diff --git a/Tools/autotest/param_metadata/rstemit.py b/Tools/autotest/param_metadata/rstemit.py
index 4fa423b69089b..6175c21fa5a01 100755
--- a/Tools/autotest/param_metadata/rstemit.py
+++ b/Tools/autotest/param_metadata/rstemit.py
@@ -225,6 +225,9 @@ def emit(self, g):
reference=reference)
for param in g.params:
+ if getattr(param, "Legacy", False):
+ # do not emit legacy parameters to the Wiki
+ continue
if not hasattr(param, 'DisplayName') or not hasattr(param, 'Description'):
continue
d = param.__dict__
@@ -263,6 +266,8 @@ def emit(self, g):
headings = []
row = []
for field in sorted(param.__dict__.keys()):
+ if not self.should_emit_field(param, field):
+ continue
if (field not in ['name', 'DisplayName', 'Description', 'User', 'SortValues', 'RebootRequired'] and
field in known_param_fields):
headings.append(field)
diff --git a/Tools/autotest/param_metadata/xmlemit.py b/Tools/autotest/param_metadata/xmlemit.py
index 7d19234baa502..0ec4b6654a55b 100644
--- a/Tools/autotest/param_metadata/xmlemit.py
+++ b/Tools/autotest/param_metadata/xmlemit.py
@@ -63,6 +63,8 @@ def emit(self, g):
# Add values as chidren of this node
for field in param.__dict__.keys():
+ if not self.should_emit_field(param, field):
+ continue
if field not in ['name', 'DisplayName', 'Description', 'User', 'SortValues'] and field in known_param_fields:
if field == 'Values' and Emit.prog_values_field.match(param.__dict__[field]):
xml_values = etree.SubElement(xml_param, 'values')
diff --git a/libraries/AP_GPS/AP_GPS.cpp b/libraries/AP_GPS/AP_GPS.cpp
index 6ca80fccc82fe..0a1cbec4d3e51 100644
--- a/libraries/AP_GPS/AP_GPS.cpp
+++ b/libraries/AP_GPS/AP_GPS.cpp
@@ -2002,6 +2002,7 @@ bool AP_GPS::gps_yaw_deg(uint8_t instance, float &yaw_deg, float &accuracy_deg,
// @Values: 0:None,1:AUTO,2:uBlox,5:NMEA,6:SiRF,7:HIL,8:SwiftNav,9:DroneCAN,10:SBF,11:GSOF,13:ERB,14:MAV,15:NOVA,16:HemisphereNMEA,17:uBlox-MovingBaseline-Base,18:uBlox-MovingBaseline-Rover,19:MSP,20:AllyStar,21:ExternalAHRS,22:DroneCAN-MovingBaseline-Base,23:DroneCAN-MovingBaseline-Rover,24:UnicoreNMEA,25:UnicoreMovingBaselineNMEA,26:SBF-DualAntenna
// @RebootRequired: True
// @User: Advanced
+ // @Legacy: only included here so GCSs running stable can get the description. Omitted in the Wiki.
// @Param: _TYPE2
// @CopyFieldsFrom: GPS_TYPE