feat: Model level ADC Jitter filter option (#1363)

* ADC Filter - On/off state configurable at the model level

* Updated YAML configuration to match change from ADC Filter feature commit

* Companion changes to support ADC jitter filter to be a model configuration item.

* Renamed jitterFilter field to noJitterFilter.

This better describes the semantic, which is inverted.

* Updated after review

* Re-run generate-yaml

* Changed ADC Jitter filter control on Model to be tri state.
Off, On or use the radio setting

* Adde NOBACKUP() to the added field

* Re-generate yaml_datastructs

* Making the default state to use radio setting/Global value

* Updated after review:
Changing to more consistent naming across firmware and companion.

* Reverted  files that was accidently added to the commit.

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
Stephen Mose Aaskov
2022-01-26 20:54:23 +10:00
committed by GitHub
co-authored by Peter Feerick
parent 09980bf640
commit c3c8a2e3f1
66 changed files with 334 additions and 58 deletions
@@ -154,7 +154,7 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
node["bluetoothBaudrate"] = rhs.bluetoothBaudrate;
node["bluetoothMode"] = bluetoothModeLut << rhs.bluetoothMode;
node["countryCode"] = rhs.countryCode;
node["jitterFilter"] = (int)rhs.jitterFilter;
node["noJitterFilter"] = (int)rhs.noJitterFilter;
node["disableRtcWarning"] = (int)rhs.rtcCheckDisable; // TODO: verify
node["keysBacklight"] = (int)rhs.keysBacklight;
node["imperial"] = rhs.imperial;
@@ -314,7 +314,7 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
node["bluetoothBaudrate"] >> rhs.bluetoothBaudrate;
node["bluetoothMode"] >> bluetoothModeLut >> rhs.bluetoothMode;
node["countryCode"] >> rhs.countryCode;
node["jitterFilter"] >> rhs.jitterFilter;
node["noJitterFilter"] >> rhs.noJitterFilter;
node["disableRtcWarning"] >> rhs.rtcCheckDisable; // TODO: verify
node["keysBacklight"] >> rhs.keysBacklight;
node["imperial"] >> rhs.imperial;
@@ -71,6 +71,12 @@ static const YamlLookupTable potsWarningModeLut = {
{ 2, "WARN_AUTO" },
};
static const YamlLookupTable jitterFilterLut = {
{ 0, "GLOBAL" },
{ 1, "OFF" },
{ 2, "ON" },
};
struct YamlTrim {
int mode = 0;
int ref = 0;
@@ -236,7 +242,7 @@ struct YamlSwitchWarningState {
default:
continue;
}
states |= ((uint64_t)value << (index * MASK_LEN));
enabled |= (1 << index);
}
@@ -811,6 +817,7 @@ Node convert<ModelData>::encode(const ModelData& rhs)
node["thrTrimSw"] = rhs.thrTrimSwitch;
node["potsWarnMode"] = potsWarningModeLut << rhs.potsWarningMode;
node["jitterFilter"] = jitterFilterLut << rhs.jitterFilter;
YamlPotsWarnEnabled potsWarnEnabled(&rhs.potsWarnEnabled[CPN_MAX_POTS + CPN_MAX_SLIDERS]);
node["potsWarnEnabled"] = potsWarnEnabled.value;
@@ -990,6 +997,7 @@ bool convert<ModelData>::decode(const Node& node, ModelData& rhs)
node["thrTrimSw"] >> rhs.thrTrimSwitch;
node["potsWarnMode"] >> potsWarningModeLut >> rhs.potsWarningMode;
node["jitterFilter"] >> jitterFilterLut >> rhs.jitterFilter;
YamlPotsWarnEnabled potsWarnEnabled;
node["potsWarnEnabled"] >> potsWarnEnabled.value;
+1 -1
View File
@@ -210,7 +210,7 @@ class GeneralSettings {
unsigned int sticksGain;
unsigned int rotarySteps;
unsigned int countryCode;
bool jitterFilter;
bool noJitterFilter;
bool rtcCheckDisable;
bool keysBacklight;
unsigned int imperial;
+1
View File
@@ -121,6 +121,7 @@ class ModelData {
int trimInc; // Trim Increments
unsigned int trimsDisplay;
bool disableThrottleWarning;
unsigned int jitterFilter; // Added in EdgeTx 2.7 (#870)
unsigned int beepANACenter; // 1<<0->A1.. 1<<6->A7
@@ -3082,7 +3082,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
internalField.Append(new UnsignedField<1>(this, generalData.imperial));
if (version >= 218) {
internalField.Append(new BoolField<1>(this, generalData.jitterFilter));
internalField.Append(new BoolField<1>(this, generalData.noJitterFilter));
internalField.Append(new BoolField<1>(this, generalData.disableRssiPoweroffAlarm));
internalField.Append(new UnsignedField<2>(this, generalData.usbMode));
internalField.Append(new UnsignedField<2>(this, generalData.jackMode));
+1 -1
View File
@@ -174,7 +174,7 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
if (firmware->getCapability(HasADCJitterFilter)) {
addLabel(tr("ADC Filter"), row, 0);
AutoCheckBox *filterEnable = new AutoCheckBox(this);
filterEnable->setField(generalSettings.jitterFilter, this, true);
filterEnable->setField(generalSettings.noJitterFilter, this, true);
addParams(row, filterEnable);
}
+14
View File
@@ -1346,6 +1346,11 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge
ui->gfEnabled->hide();
}
if (!firmware->getCapability(HasADCJitterFilter))
{
ui->jitterFilter->hide();
}
// Beep Center checkboxes
prevFocus = ui->trimsDisplay;
int analogs = CPN_MAX_STICKS + getBoardCapability(board, Board::Pots) + getBoardCapability(board, Board::Sliders);
@@ -1590,6 +1595,7 @@ void SetupPanel::update()
ui->extendedTrims->setChecked(model->extendedTrims);
ui->displayText->setChecked(model->displayChecklist);
ui->gfEnabled->setChecked(!model->noGlobalFunctions);
ui->jitterFilter->setCurrentIndex(model->jitterFilter);
updateBeepCenter();
updateStartupSwitches();
@@ -1741,6 +1747,14 @@ void SetupPanel::on_gfEnabled_toggled(bool checked)
emit modified();
}
void SetupPanel::on_jitterFilter_currentIndexChanged(int index)
{
if (!lock) {
model->jitterFilter = ui->jitterFilter->currentIndex();
emit modified();
}
}
void SetupPanel::on_throttleTrim_toggled(bool checked)
{
model->thrTrim = checked;
+1
View File
@@ -204,6 +204,7 @@ class SetupPanel : public ModelPanel
void onItemModelAboutToBeUpdated();
void onItemModelUpdateComplete();
void onModuleUpdateItemModels();
void on_jitterFilter_currentIndexChanged(int index);
private:
Ui::Setup *ui;
+39
View File
@@ -537,6 +537,45 @@
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QLabel" name="label_jitterFilter">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>ADC filter</string>
</property>
</widget>
</item>
<item row="2" column="5">
<widget class="QComboBox" name="jitterFilter">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Global</string>
</property>
</item>
<item>
<property name="text">
<string>Off</string>
</property>
</item>
<item>
<property name="text">
<string>On</string>
</property>
</item>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="editText">
<property name="sizePolicy">