Skip to content

Commit

Permalink
Companion support
Browse files Browse the repository at this point in the history
  • Loading branch information
raphaelcoeffic authored and pfeerick committed Oct 12, 2022
1 parent 9a65076 commit 9de8a51
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 9 deletions.
49 changes: 42 additions & 7 deletions companion/src/firmwares/edgetx/yaml_modeldata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -555,17 +555,36 @@ struct convert<ScriptData> {
}
};

struct RFAlarms {
int warning = 0;
int critical = 0;

RFAlarms() {}

RFAlarms(const RSSIAlarmData& rhs)
: warning(rhs.warning), critical(rhs.critical)
{}
};

template <>
struct convert<RSSIAlarmData> {
static Node encode(const RSSIAlarmData& rhs)
struct convert<RFAlarms> {
static Node encode(const RFAlarms& rhs)
{
Node node;
node["disabled"] = (int)rhs.disabled;
node["warning"] = rhs.warning - 45;
node["critical"] = rhs.critical - 42;
node["warning"] = rhs.warning;
node["critical"] = rhs.critical;
return node;
}
static bool decode(const Node& node, RFAlarms& rhs)
{
node["warning"] >> rhs.warning;
node["critical"] >> rhs.critical;
return true;
}
};

template <>
struct convert<RSSIAlarmData> {
static bool decode(const Node& node, RSSIAlarmData& rhs)
{
node["disabled"] >> rhs.disabled;
Expand Down Expand Up @@ -904,7 +923,8 @@ Node convert<ModelData>::encode(const ModelData& rhs)
node["altitudeSource"] = YamlTelemSource(rhs.frsky.altitudeSource);
}

node["rssiAlarms"] = rhs.rssiAlarms;
node["rfAlarms"] = RFAlarms(rhs.rssiAlarms);
node["disableTelemetryWarning"] = (int)rhs.rssiAlarms.disabled;

for (int i=0; i<CPN_MAX_MODULES; i++) {
if (rhs.moduleData[i].protocol != PULSES_OFF) {
Expand Down Expand Up @@ -1096,7 +1116,22 @@ bool convert<ModelData>::decode(const Node& node, ModelData& rhs)
rhs.frsky.altitudeSource = altitudeSource.src;
}

node["rssiAlarms"] >> rhs.rssiAlarms;
if (node["rssiAlarms"]) {
// Old format (pre 2.8)
node["rssiAlarms"] >> rhs.rssiAlarms;
} else if (node["rfAlarms"] || node["disableTelemetryWarning"]) {
// New format (post 2.8)
RFAlarms rfAlarms;
node["rfAlarms"] >> rfAlarms;
rhs.rssiAlarms.warning = rfAlarms.warning;
rhs.rssiAlarms.critical = rfAlarms.critical;
node["disableTelemetryWarning"] >> rhs.rssiAlarms.disabled;
} else {
// Use old defaults
rhs.rssiAlarms.warning = 45;
rhs.rssiAlarms.critical = 42;
rhs.rssiAlarms.disabled = false;
}

node["moduleData"] >> rhs.moduleData;
for (int i=0; i<CPN_MAX_MODULES; i++) {
Expand Down
4 changes: 2 additions & 2 deletions companion/src/modeledit/telemetry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -518,9 +518,9 @@ void TelemetryPanel::setup()
ui->ignoreSensorIds->setField(model->frsky.ignoreSensorIds, this);
ui->disableTelemetryAlarms->setField(model->rssiAlarms.disabled);

ui->rssiAlarmWarningSB->setRange(45 - 30, 45 + 30);
ui->rssiAlarmWarningSB->setRange(0, 127);
ui->rssiAlarmWarningSB->setValue(model->rssiAlarms.warning);
ui->rssiAlarmCriticalSB->setRange(42 - 30, 42 + 30);
ui->rssiAlarmCriticalSB->setRange(0, 127);
ui->rssiAlarmCriticalSB->setValue(model->rssiAlarms.critical);

ui->rssiSourceLabel->show();
Expand Down

0 comments on commit 9de8a51

Please sign in to comment.