Skip to content

Commit

Permalink
added Companion support for crsfArmingMode setting
Browse files Browse the repository at this point in the history
  • Loading branch information
mha1 committed Sep 29, 2024
1 parent 0a971f3 commit 5f68e37
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 1 deletion.
2 changes: 2 additions & 0 deletions companion/src/firmwares/edgetx/yaml_modeldata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1002,6 +1002,7 @@ Node convert<ModelData>::encode(const ModelData& rhs)
node["extendedTrims"] = (int)rhs.extendedTrims;
node["throttleReversed"] = (int)rhs.throttleReversed;
node["checklistInteractive"] = (int)rhs.checklistInteractive;
node["crsfArmingMode"] = rhs.crsfArmingMode;

for (int i = 0; i < CPN_MAX_FLIGHT_MODES; i++) {
if (!rhs.flightModeData[i].isEmpty(i)) {
Expand Down Expand Up @@ -1308,6 +1309,7 @@ bool convert<ModelData>::decode(const Node& node, ModelData& rhs)
node["extendedTrims"] >> rhs.extendedTrims;
node["throttleReversed"] >> rhs.throttleReversed;
node["checklistInteractive"] >> rhs.checklistInteractive;
node["crsfArmingMode"] >> rhs.crsfArmingMode;

node["flightModeData"] >> rhs.flightModeData;
node["mixData"] >> rhs.mixData;
Expand Down
1 change: 1 addition & 0 deletions companion/src/firmwares/modeldata.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ class ModelData {
bool extendedTrims;
bool throttleReversed;
bool checklistInteractive;
int crsfArmingMode;
FlightModeData flightModeData[CPN_MAX_FLIGHT_MODES];
MixData mixData[CPN_MAX_MIXERS];
LimitData limitData[CPN_MAX_CHNOUT];
Expand Down
15 changes: 14 additions & 1 deletion companion/src/modeledit/setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ void TimerPanel::onModeChanged(int index)
#define MASK_CHANNELMAP (1<<20)
#define MASK_MULTI_BAYANG_OPT (1<<21)
#define MASK_AFHDS (1<<22)
#define MASK_CSRF_ARMING_MODE (1<<23)

quint8 ModulePanel::failsafesValueDisplayType = ModulePanel::FAILSAFE_DISPLAY_PERCENT;

Expand Down Expand Up @@ -505,7 +506,7 @@ void ModulePanel::update()
max_rx_num = 20;
break;
case PULSES_CROSSFIRE:
mask |= MASK_CHANNELS_RANGE | MASK_RX_NUMBER | MASK_BAUDRATE;
mask |= MASK_CHANNELS_RANGE | MASK_RX_NUMBER | MASK_BAUDRATE | MASK_CSRF_ARMING_MODE;
module.channelsCount = 16;
ui->telemetryBaudrate->setModel(ModuleData::telemetryBaudrateItemModel(protocol));
ui->telemetryBaudrate->setField(module.crsf.telemetryBaudrate);
Expand Down Expand Up @@ -602,6 +603,8 @@ void ModulePanel::update()
ui->channelsCount->setMaximum(module.getMaxChannelCount());
ui->channelsCount->setValue(module.channelsCount);
ui->channelsCount->setSingleStep(firmware->getCapability(HasPPMStart) ? 1 : 2);
ui->label_crsfArmingMode->setVisible(mask & MASK_CSRF_ARMING_MODE);
ui->crsfArmingMode->setVisible(mask & MASK_CSRF_ARMING_MODE);

// PPM settings fields
ui->label_ppmPolarity->setVisible(mask & MASK_SBUSPPM_FIELDS);
Expand Down Expand Up @@ -837,12 +840,22 @@ void ModulePanel::update()
}
}

if (mask & MASK_CSRF_ARMING_MODE) {
ui->crsfArmingMode->setCurrentIndex(model->crsfArmingMode);
}

ui->label_rxFreq->setVisible((mask & MASK_RX_FREQ));
ui->rxFreq->setVisible((mask & MASK_RX_FREQ));

lock = false;
}

void ModulePanel::on_crsfArmingMode_currentIndexChanged(int index)
{
model->crsfArmingMode = index;
emit modified();
}

void ModulePanel::onProtocolChanged(int index)
{
if (!lock) {
Expand Down
1 change: 1 addition & 0 deletions companion/src/modeledit/setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ class ModulePanel : public ModelPanel
void onClearAccessRxClicked();
void on_chkOption_stateChanged(int state);
void on_cboOption_currentIndexChanged(int value);
void on_crsfArmingMode_currentIndexChanged(int index);

private:
enum FailsafeValueDisplayTypes { FAILSAFE_DISPLAY_PERCENT = 1, FAILSAFE_DISPLAY_USEC = 2 };
Expand Down
21 changes: 21 additions & 0 deletions companion/src/modeledit/setup_module.ui
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,27 @@
</item>
</layout>
</item>
<item row="15" column="0">
<widget class="QLabel" name="label_crsfArmingMode">
<property name="text">
<string>Arming</string>
</property>
</widget>
</item>
<item row="15" column="1">
<widget class="QComboBox" name="crsfArmingMode">
<item>
<property name="text">
<string>Channel</string>
</property>
</item>
<item>
<property name="text">
<string>Function</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
Expand Down
13 changes: 13 additions & 0 deletions companion/src/modelprinter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,18 @@ QString ModelPrinter::printTrimIncrementMode()
}
}

QString ModelPrinter::printCrsfArmingMode()
{
switch (model.crsfArmingMode) {
case 0:
return tr("Channel");
case 1:
return tr("Function");
default:
return tr("Unknown");
}
}

QString ModelPrinter::printModule(int idx)
{
QStringList str;
Expand Down Expand Up @@ -749,6 +761,7 @@ QString ModelPrinter::printSettingsOther()
{
QStringList str;
str << printLabelValue(tr("Extended Limits"), printBoolean(model.extendedLimits, BOOLEAN_YESNO));
str << printLabelValue(tr("CRSF Arming"), printCrsfArmingMode());
if (firmware->getCapability(HasDisplayText))
str << printLabelValue(tr("Display Checklist"), printBoolean(model.displayChecklist, BOOLEAN_YESNO));
if (firmware->getCapability(GlobalFunctions))
Expand Down
1 change: 1 addition & 0 deletions companion/src/modelprinter.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ class ModelPrinter: public QObject
QString printTelemetryScreenType(unsigned int val);
QString printTelemetryScreen(unsigned int idx, unsigned int line, unsigned int width);
QString printChecklist();
QString printCrsfArmingMode();
const GeneralSettings * gs() { return &generalSettings; }

private:
Expand Down

0 comments on commit 5f68e37

Please sign in to comment.