feat: Configurable external CRSF baud rates (see #1581)
CRSF modules baudrate
This commit is contained in:
@@ -111,31 +111,28 @@ const YamlLookupTable internalModuleLut = {
|
||||
{ MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" },
|
||||
};
|
||||
|
||||
struct YamlTelemetryBaudrate {
|
||||
unsigned int value;
|
||||
|
||||
YamlTelemetryBaudrate() = default;
|
||||
|
||||
YamlTelemetryBaudrate(const unsigned int * telemetryBaudrate)
|
||||
{
|
||||
if (Boards::getCapability(getCurrentFirmware()->getBoard(), Board::SportMaxBaudRate) < 400000) {
|
||||
value = *telemetryBaudrate;
|
||||
}
|
||||
else {
|
||||
value = (*telemetryBaudrate + telemetryBaudratesList.size() - 1) % telemetryBaudratesList.size();
|
||||
}
|
||||
YamlTelemetryBaudrate::YamlTelemetryBaudrate(
|
||||
const unsigned int* moduleBaudrate)
|
||||
{
|
||||
if (Boards::getCapability(getCurrentFirmware()->getBoard(),
|
||||
Board::SportMaxBaudRate) < 400000) {
|
||||
value = *moduleBaudrate;
|
||||
} else {
|
||||
value = (*moduleBaudrate + moduleBaudratesList.size() - 1) %
|
||||
moduleBaudratesList.size();
|
||||
}
|
||||
}
|
||||
|
||||
void toCpn(unsigned int * telemetryBaudrate, unsigned int variant)
|
||||
{
|
||||
if (Boards::getCapability((Board::Type)variant, Board::SportMaxBaudRate) < 400000) {
|
||||
*telemetryBaudrate = value;
|
||||
}
|
||||
else {
|
||||
*telemetryBaudrate = (value + 1) % telemetryBaudratesList.size();
|
||||
}
|
||||
void YamlTelemetryBaudrate::toCpn(unsigned int* moduleBaudrate,
|
||||
unsigned int variant)
|
||||
{
|
||||
if (Boards::getCapability((Board::Type)variant, Board::SportMaxBaudRate) <
|
||||
400000) {
|
||||
*moduleBaudrate = value;
|
||||
} else {
|
||||
*moduleBaudrate = (value + 1) % moduleBaudratesList.size();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
namespace YAML
|
||||
{
|
||||
@@ -179,8 +176,8 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
|
||||
node["adjustRTC"] = (int)rhs.adjustRTC;
|
||||
node["inactivityTimer"] = rhs.inactivityTimer;
|
||||
|
||||
YamlTelemetryBaudrate telemetryBaudrate(&rhs.telemetryBaudrate);
|
||||
node["telemetryBaudrate"] = telemetryBaudrate.value;
|
||||
YamlTelemetryBaudrate internalModuleBaudrate(&rhs.internalModuleBaudrate);
|
||||
node["internalModuleBaudrate"] = internalModuleBaudrate.value;
|
||||
|
||||
node["internalModule"] = LookupValue(internalModuleLut, rhs.internalModule);
|
||||
node["splashMode"] = rhs.splashMode; // TODO: B&W only
|
||||
@@ -358,9 +355,13 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
|
||||
node["adjustRTC"] >> rhs.adjustRTC;
|
||||
node["inactivityTimer"] >> rhs.inactivityTimer;
|
||||
|
||||
YamlTelemetryBaudrate telemetryBaudrate;
|
||||
node["telemetryBaudrate"] >> telemetryBaudrate.value;
|
||||
telemetryBaudrate.toCpn(&rhs.telemetryBaudrate, rhs.variant);
|
||||
YamlTelemetryBaudrate internalModuleBaudrate;
|
||||
if (node["telemetryBaudrate"]) {
|
||||
node["telemetryBaudrate"] >> internalModuleBaudrate.value;
|
||||
} else {
|
||||
node["internalModuleBaudrate"] >> internalModuleBaudrate.value;
|
||||
}
|
||||
internalModuleBaudrate.toCpn(&rhs.internalModuleBaudrate, rhs.variant);
|
||||
|
||||
if (node["internalModule"]) {
|
||||
node["internalModule"] >> internalModuleLut >> rhs.internalModule;
|
||||
|
||||
@@ -21,6 +21,14 @@
|
||||
#include "yaml_ops.h"
|
||||
#include "generalsettings.h"
|
||||
|
||||
struct YamlTelemetryBaudrate {
|
||||
unsigned int value;
|
||||
|
||||
YamlTelemetryBaudrate() = default;
|
||||
YamlTelemetryBaudrate(const unsigned int* moduleBaudrate);
|
||||
void toCpn(unsigned int* moduleBaudrate, unsigned int variant);
|
||||
};
|
||||
|
||||
namespace YAML {
|
||||
|
||||
template<>
|
||||
@@ -30,5 +38,3 @@ namespace YAML {
|
||||
static bool decode(const Node& node, GeneralSettings& rhs);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
*/
|
||||
|
||||
#include "yaml_moduledata.h"
|
||||
#include "yaml_generalsettings.h"
|
||||
#include "eeprominterface.h"
|
||||
#include "moduledata.h"
|
||||
#include "rawsource.h"
|
||||
|
||||
@@ -296,8 +298,16 @@ Node convert<ModuleData>::encode(const ModuleData& rhs)
|
||||
case PULSES_GHOST: {
|
||||
Node ghost;
|
||||
ghost["raw12bits"] = (int)rhs.ghost.raw12bits;
|
||||
YamlTelemetryBaudrate br(&rhs.ghost.telemetryBaudrate);
|
||||
ghost["telemetryBaudrate"] = br.value;
|
||||
mod["ghost"] = ghost;
|
||||
} break;
|
||||
case PULSES_CROSSFIRE: {
|
||||
Node crsf;
|
||||
YamlTelemetryBaudrate br(&rhs.crsf.telemetryBaudrate);
|
||||
crsf["telemetryBaudrate"] = br.value;
|
||||
mod["crsf"] = crsf;
|
||||
} break;
|
||||
// TODO: afhds3, flysky
|
||||
default: {
|
||||
Node ppm;
|
||||
@@ -400,7 +410,15 @@ bool convert<ModuleData>::decode(const Node& node, ModuleData& rhs)
|
||||
}
|
||||
} else if (mod["ghost"]) {
|
||||
Node ghost = mod["ghost"];
|
||||
YamlTelemetryBaudrate telemetryBaudrate;
|
||||
ghost["telemetryBaudrate"] >> telemetryBaudrate.value;
|
||||
telemetryBaudrate.toCpn(&rhs.ghost.telemetryBaudrate, getCurrentFirmware()->getBoard());
|
||||
ghost["raw12bits"] >> rhs.ghost.raw12bits;
|
||||
} else if (mod["crsf"]) {
|
||||
Node crsf = mod["crsf"];
|
||||
YamlTelemetryBaudrate telemetryBaudrate;
|
||||
crsf["telemetryBaudrate"] >> telemetryBaudrate.value;
|
||||
telemetryBaudrate.toCpn(&rhs.crsf.telemetryBaudrate, getCurrentFirmware()->getBoard());
|
||||
} else if (mod["flysky"]) {
|
||||
//TODO
|
||||
} else if (mod["afhds3"]) {
|
||||
|
||||
@@ -426,9 +426,9 @@ QString GeneralSettings::serialPortModeToString(int port_nr) const
|
||||
return serialModeToString(serialPort[port_nr]);
|
||||
}
|
||||
|
||||
QString GeneralSettings::telemetryBaudrateToString() const
|
||||
QString GeneralSettings::internalModuleBaudrateToString() const
|
||||
{
|
||||
return telemetryBaudrateToString(telemetryBaudrate);
|
||||
return moduleBaudrateToString(internalModuleBaudrate);
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -495,9 +495,9 @@ QString GeneralSettings::serialModeToString(int value)
|
||||
}
|
||||
|
||||
// static
|
||||
QString GeneralSettings::telemetryBaudrateToString(int value)
|
||||
QString GeneralSettings::moduleBaudrateToString(int value)
|
||||
{
|
||||
return telemetryBaudratesList.value(value, CPN_STR_UNKNOWN_ITEM);
|
||||
return moduleBaudratesList.value(value, CPN_STR_UNKNOWN_ITEM);
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -576,13 +576,13 @@ AbstractStaticItemModel * GeneralSettings::serialModeItemModel(int port_nr)
|
||||
}
|
||||
|
||||
// static
|
||||
AbstractStaticItemModel * GeneralSettings::telemetryBaudrateItemModel()
|
||||
AbstractStaticItemModel * GeneralSettings::internalModuleBaudrateItemModel()
|
||||
{
|
||||
AbstractStaticItemModel * mdl = new AbstractStaticItemModel();
|
||||
mdl->setName(AIM_GS_TELEMETRYBAUDRATE);
|
||||
mdl->setName(AIM_GS_INTMODULEBAUDRATE);
|
||||
|
||||
for (int i = 0; i < telemetryBaudratesList.size(); i++) {
|
||||
mdl->appendToItemList(telemetryBaudrateToString(i), i);
|
||||
for (int i = 0; i < moduleBaudratesList.size(); i++) {
|
||||
mdl->appendToItemList(moduleBaudrateToString(i), i);
|
||||
}
|
||||
|
||||
mdl->loadItemList();
|
||||
|
||||
@@ -39,11 +39,12 @@ class AbstractStaticItemModel;
|
||||
constexpr char AIM_GS_ANTENNAMODE[] {"gs.antennamode"};
|
||||
constexpr char AIM_GS_BLUETOOTHMODE[] {"gs.bluetoothmode"};
|
||||
constexpr char AIM_GS_SERIALMODE[] {"gs.serialmode%1"};
|
||||
constexpr char AIM_GS_TELEMETRYBAUDRATE[] {"gs.telemetrybaudrate"};
|
||||
constexpr char AIM_GS_INTMODULEBAUDRATE[] {"gs.intmodulebaudrate"};
|
||||
constexpr char AIM_TRAINERMIX_MODE[] {"trainermix.mode"};
|
||||
constexpr char AIM_TRAINERMIX_SRC[] {"trainermix.src"};
|
||||
|
||||
static const QStringList telemetryBaudratesList({ "115K", "400K", "921K", "1.87M", "3.75M", "5.25M" });
|
||||
static const QStringList moduleBaudratesList({"115K", "400K", "921K", "1.87M",
|
||||
"3.75M", "5.25M"});
|
||||
|
||||
enum UartModes {
|
||||
UART_MODE_NONE,
|
||||
@@ -193,7 +194,7 @@ class GeneralSettings {
|
||||
bool adjustRTC;
|
||||
bool optrexDisplay;
|
||||
unsigned int inactivityTimer;
|
||||
unsigned int telemetryBaudrate;
|
||||
unsigned int internalModuleBaudrate;
|
||||
bool minuteBeep;
|
||||
bool preBeep;
|
||||
bool flashBeep;
|
||||
@@ -267,16 +268,16 @@ class GeneralSettings {
|
||||
QString antennaModeToString() const;
|
||||
QString bluetoothModeToString() const;
|
||||
QString serialPortModeToString(int port_nr) const;
|
||||
QString telemetryBaudrateToString() const;
|
||||
QString internalModuleBaudrateToString() const;
|
||||
|
||||
static QString antennaModeToString(int value);
|
||||
static QString bluetoothModeToString(int value);
|
||||
static QString serialModeToString(int value);
|
||||
static QString telemetryBaudrateToString(int value);
|
||||
static QString moduleBaudrateToString(int value);
|
||||
static FieldRange getPPM_MultiplierRange();
|
||||
static FieldRange getTxCurrentCalibration();
|
||||
static AbstractStaticItemModel * antennaModeItemModel();
|
||||
static AbstractStaticItemModel * bluetoothModeItemModel();
|
||||
static AbstractStaticItemModel * serialModeItemModel(int port_nr);
|
||||
static AbstractStaticItemModel * telemetryBaudrateItemModel();
|
||||
static AbstractStaticItemModel * internalModuleBaudrateItemModel();
|
||||
};
|
||||
|
||||
@@ -496,3 +496,17 @@ AbstractStaticItemModel * ModuleData::protocolItemModel(GeneralSettings & settin
|
||||
mdl->loadItemList();
|
||||
return mdl;
|
||||
}
|
||||
|
||||
AbstractStaticItemModel * ModuleData::telemetryBaudrateItemModel(unsigned int protocol)
|
||||
{
|
||||
AbstractStaticItemModel * mdl = new AbstractStaticItemModel();
|
||||
mdl->setName("moduledata.baudrate");
|
||||
|
||||
for (int i = 0; i < moduleBaudratesList.size(); i++) {
|
||||
if (protocol == PULSES_GHOST && i >= 2) break;
|
||||
mdl->appendToItemList(moduleBaudratesList.at(i), i);
|
||||
}
|
||||
|
||||
mdl->loadItemList();
|
||||
return mdl;
|
||||
}
|
||||
|
||||
@@ -241,8 +241,13 @@ class ModuleData {
|
||||
|
||||
struct GHOST {
|
||||
bool raw12bits;
|
||||
unsigned int telemetryBaudrate;
|
||||
} ghost;
|
||||
|
||||
struct CRSF {
|
||||
unsigned int telemetryBaudrate;
|
||||
} crsf;
|
||||
|
||||
struct Access {
|
||||
unsigned int receivers;
|
||||
char receiverName[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_NAME+1];
|
||||
@@ -268,4 +273,5 @@ class ModuleData {
|
||||
static AbstractStaticItemModel * internalModuleItemModel(int board = -1);
|
||||
static bool isProtocolAvailable(int moduleidx, unsigned int protocol, GeneralSettings & settings);
|
||||
static AbstractStaticItemModel * protocolItemModel(GeneralSettings & settings);
|
||||
static AbstractStaticItemModel * telemetryBaudrateItemModel(unsigned int protocol);
|
||||
};
|
||||
|
||||
@@ -3070,7 +3070,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
|
||||
}
|
||||
|
||||
internalField.Append(new UnsignedField<8>(this, generalData.inactivityTimer));
|
||||
internalField.Append(new UnsignedField<3>(this, generalData.telemetryBaudrate));
|
||||
internalField.Append(new UnsignedField<3>(this, generalData.internalModuleBaudrate));
|
||||
if (IS_FAMILY_HORUS_OR_T16(board))
|
||||
internalField.Append(new SpareBitsField<3>(this));
|
||||
else if (IS_TARANIS(board))
|
||||
@@ -3369,8 +3369,11 @@ void OpenTxGeneralData::beforeExport()
|
||||
|
||||
chkSum = sum;
|
||||
|
||||
if (Boards::getCapability((Board::Type)generalData.variant, Board::SportMaxBaudRate) >= 400000)
|
||||
generalData.telemetryBaudrate = (generalData.telemetryBaudrate + telemetryBaudratesList.size() - 1) % telemetryBaudratesList.size();
|
||||
if (Boards::getCapability((Board::Type)generalData.variant,
|
||||
Board::SportMaxBaudRate) >= 400000)
|
||||
generalData.internalModuleBaudrate =
|
||||
(generalData.internalModuleBaudrate + moduleBaudratesList.size() - 1) %
|
||||
moduleBaudratesList.size();
|
||||
}
|
||||
|
||||
void OpenTxGeneralData::afterImport()
|
||||
@@ -3382,7 +3385,8 @@ void OpenTxGeneralData::afterImport()
|
||||
}
|
||||
}
|
||||
|
||||
if (Boards::getCapability((Board::Type)generalData.variant, Board::SportMaxBaudRate) >= 400000)
|
||||
generalData.telemetryBaudrate = (generalData.telemetryBaudrate + 1) % telemetryBaudratesList.size();
|
||||
if (Boards::getCapability((Board::Type)generalData.variant,
|
||||
Board::SportMaxBaudRate) >= 400000)
|
||||
generalData.internalModuleBaudrate =
|
||||
(generalData.internalModuleBaudrate + 1) % moduleBaudratesList.size();
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
|
||||
int btmodelid = editorItemModels->registerItemModel(GeneralSettings::bluetoothModeItemModel());
|
||||
int auxmodelid = editorItemModels->registerItemModel(GeneralSettings::serialModeItemModel(GeneralSettings::SP_AUX1));
|
||||
int vcpmodelid = editorItemModels->registerItemModel(GeneralSettings::serialModeItemModel(GeneralSettings::SP_VCP));
|
||||
int baudmodelid = editorItemModels->registerItemModel(GeneralSettings::telemetryBaudrateItemModel());
|
||||
int baudmodelid = editorItemModels->registerItemModel(GeneralSettings::internalModuleBaudrateItemModel());
|
||||
|
||||
id = editorItemModels->registerItemModel(ModuleData::internalModuleItemModel());
|
||||
tabFilteredModels->registerItemModel(new FilteredItemModel(editorItemModels->getItemModel(id)), FIM_INTERNALMODULES);
|
||||
@@ -182,16 +182,21 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
|
||||
internalModule = new AutoComboBox(this);
|
||||
internalModule->setModel(tabFilteredModels->getItemModel(FIM_INTERNALMODULES));
|
||||
internalModule->setField(generalSettings.internalModule, this);
|
||||
addParams(row, internalModule);
|
||||
connect(internalModule, &AutoComboBox::currentDataChanged, this, &HardwarePanel::on_internalModuleChanged);
|
||||
}
|
||||
|
||||
if (firmware->getCapability(HasTelemetryBaudrate)) {
|
||||
addLabel(tr("Maximum Baud"), row, 0);
|
||||
AutoComboBox *maxBaudRate = new AutoComboBox(this);
|
||||
maxBaudRate->setModel(editorItemModels->getItemModel(baudmodelid));
|
||||
maxBaudRate->setField(generalSettings.telemetryBaudrate, this);
|
||||
addParams(row, maxBaudRate);
|
||||
connect(internalModule, &AutoComboBox::currentDataChanged, this,
|
||||
&HardwarePanel::on_internalModuleChanged);
|
||||
|
||||
internalModuleBaudRate = new AutoComboBox(this);
|
||||
internalModuleBaudRate->setModel(editorItemModels->getItemModel(baudmodelid));
|
||||
internalModuleBaudRate->setField(generalSettings.internalModuleBaudrate, this);
|
||||
|
||||
if (m_internalModule != MODULE_TYPE_GHOST && m_internalModule != MODULE_TYPE_CROSSFIRE) {
|
||||
generalSettings.internalModuleBaudrate = 0;
|
||||
internalModuleBaudRate->setVisible(false);
|
||||
}
|
||||
|
||||
addParams(row, internalModule, internalModuleBaudRate);
|
||||
row++;
|
||||
}
|
||||
|
||||
// All values except 0 are mutually exclusive
|
||||
@@ -275,6 +280,22 @@ void HardwarePanel::on_internalModuleChanged()
|
||||
}
|
||||
else {
|
||||
m_internalModule = generalSettings.internalModule;
|
||||
if (m_internalModule == MODULE_TYPE_GHOST || m_internalModule == MODULE_TYPE_CROSSFIRE) {
|
||||
|
||||
if (Boards::getCapability(getCurrentFirmware()->getBoard(),
|
||||
Board::SportMaxBaudRate) < 400000) {
|
||||
// default to 115k
|
||||
internalModuleBaudRate->setCurrentIndex(0);
|
||||
} else {
|
||||
// default to 400k
|
||||
internalModuleBaudRate->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
internalModuleBaudRate->setVisible(true);
|
||||
} else {
|
||||
generalSettings.internalModuleBaudrate = 0;
|
||||
internalModuleBaudRate->setVisible(false);
|
||||
}
|
||||
emit internalModuleChanged();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ class HardwarePanel : public GeneralPanel
|
||||
QGridLayout *grid;
|
||||
AutoComboBox *internalModule;
|
||||
unsigned int m_internalModule = 0;
|
||||
AutoComboBox *internalModuleBaudRate;
|
||||
|
||||
void addStick(int index, int & row);
|
||||
void addPot(int index, int & row);
|
||||
|
||||
@@ -203,6 +203,7 @@ void TimerPanel::onModeChanged(int index)
|
||||
#define MASK_RF_POWER (1<<15)
|
||||
#define MASK_RF_RACING_MODE (1<<16)
|
||||
#define MASK_GHOST (1<<17)
|
||||
#define MASK_BAUDRATE (1<<18)
|
||||
|
||||
quint8 ModulePanel::failsafesValueDisplayType = ModulePanel::FAILSAFE_DISPLAY_PERCENT;
|
||||
|
||||
@@ -444,12 +445,16 @@ void ModulePanel::update()
|
||||
max_rx_num = 20;
|
||||
break;
|
||||
case PULSES_CROSSFIRE:
|
||||
mask |= MASK_CHANNELS_RANGE | MASK_RX_NUMBER;
|
||||
mask |= MASK_CHANNELS_RANGE | MASK_RX_NUMBER | MASK_BAUDRATE;
|
||||
module.channelsCount = 16;
|
||||
ui->telemetryBaudrate->setModel(ModuleData::telemetryBaudrateItemModel(protocol));
|
||||
ui->telemetryBaudrate->setField(module.crsf.telemetryBaudrate);
|
||||
break;
|
||||
case PULSES_GHOST:
|
||||
mask |= MASK_CHANNELS_RANGE | MASK_GHOST;
|
||||
mask |= MASK_CHANNELS_RANGE | MASK_GHOST | MASK_BAUDRATE;
|
||||
module.channelsCount = 16;
|
||||
ui->telemetryBaudrate->setModel(ModuleData::telemetryBaudrateItemModel(protocol));
|
||||
ui->telemetryBaudrate->setField(module.ghost.telemetryBaudrate);
|
||||
break;
|
||||
case PULSES_PPM:
|
||||
mask |= MASK_PPM_FIELDS | MASK_SBUSPPM_FIELDS| MASK_CHANNELS_RANGE| MASK_CHANNELS_COUNT;
|
||||
@@ -495,6 +500,11 @@ void ModulePanel::update()
|
||||
mask |= MASK_FAILSAFES;
|
||||
}
|
||||
|
||||
if (moduleIdx > 0)
|
||||
ui->telemetryBaudrate->setVisible(mask & MASK_BAUDRATE);
|
||||
else
|
||||
ui->telemetryBaudrate->setVisible(false);
|
||||
|
||||
ui->label_protocol->setVisible(mask & MASK_PROTOCOL);
|
||||
ui->protocol->setVisible(mask & MASK_PROTOCOL);
|
||||
ui->label_rxNumber->setVisible(mask & MASK_RX_NUMBER);
|
||||
@@ -690,6 +700,17 @@ void ModulePanel::onProtocolChanged(int index)
|
||||
if (!lock) {
|
||||
module.channelsCount = module.getMaxChannelCount();
|
||||
update();
|
||||
if (module.protocol == PULSES_GHOST ||
|
||||
module.protocol == PULSES_CROSSFIRE) {
|
||||
if (Boards::getCapability(getCurrentFirmware()->getBoard(),
|
||||
Board::SportMaxBaudRate) < 400000) {
|
||||
// default to 115k
|
||||
ui->telemetryBaudrate->setCurrentIndex(0);
|
||||
} else {
|
||||
// default to 400k
|
||||
ui->telemetryBaudrate->setCurrentIndex(1);
|
||||
}
|
||||
}
|
||||
emit updateItemModels();
|
||||
emit modified();
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1075</width>
|
||||
<height>438</height>
|
||||
<height>527</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -91,6 +91,329 @@
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="0" colspan="3">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QFormLayout" name="formLayout_col1">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_protocol">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Protocol</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="AutoComboBox" name="protocol">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>180</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="AutoComboBox" name="telemetryBaudrate">
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="registrationIdLabel">
|
||||
<property name="text">
|
||||
<string>Registration ID</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="registrationId">
|
||||
<property name="inputMask">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_multiProtocol">
|
||||
<property name="text">
|
||||
<string>Multi Radio Protocol</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QComboBox" name="multiProtocol">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_multiSubType">
|
||||
<property name="text">
|
||||
<string>Sub Type</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QComboBox" name="multiSubType">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QLabel" name="warning_r9mFlex">
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>198</red>
|
||||
<green>17</green>
|
||||
<blue>36</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>198</red>
|
||||
<green>17</green>
|
||||
<blue>36</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>106</red>
|
||||
<green>104</green>
|
||||
<blue>100</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>WARNING: Requires non-certified firmware!</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_failsafeMode">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Failsafe Mode</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QComboBox" name="failsafeMode">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Not set</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Hold</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Custom</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>No Pulses</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Receiver</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_trainerMode">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Trainer Mode</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="AutoComboBox" name="trainerMode">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QCheckBox" name="disableTelem">
|
||||
<property name="text">
|
||||
<string>Disable Telemetry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QCheckBox" name="disableChMap">
|
||||
<property name="text">
|
||||
<string>Disable Ch. Map</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QCheckBox" name="racingMode">
|
||||
<property name="text">
|
||||
<string>Racing Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QCheckBox" name="raw12bits">
|
||||
<property name="text">
|
||||
<string>Raw 12 bits</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0" colspan="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<property name="labelAlignment">
|
||||
@@ -777,322 +1100,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QFormLayout" name="formLayout_col1">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_protocol">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Protocol</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="AutoComboBox" name="protocol">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>180</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="registrationIdLabel">
|
||||
<property name="text">
|
||||
<string>Registration ID</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="registrationId">
|
||||
<property name="inputMask">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_multiProtocol">
|
||||
<property name="text">
|
||||
<string>Multi Radio Protocol</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="multiProtocol">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_multiSubType">
|
||||
<property name="text">
|
||||
<string>Sub Type</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QComboBox" name="multiSubType">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="warning_r9mFlex">
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>198</red>
|
||||
<green>17</green>
|
||||
<blue>36</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>198</red>
|
||||
<green>17</green>
|
||||
<blue>36</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>106</red>
|
||||
<green>104</green>
|
||||
<blue>100</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>WARNING: Requires non-certified firmware!</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_failsafeMode">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Failsafe Mode</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QComboBox" name="failsafeMode">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Not set</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Hold</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Custom</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>No Pulses</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Receiver</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_trainerMode">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Trainer Mode</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="AutoComboBox" name="trainerMode">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QCheckBox" name="disableTelem">
|
||||
<property name="text">
|
||||
<string>Disable Telemetry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QCheckBox" name="racingMode">
|
||||
<property name="text">
|
||||
<string>Racing Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0" colspan="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QCheckBox" name="disableChMap">
|
||||
<property name="text">
|
||||
<string>Disable Ch. Map</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QCheckBox" name="raw12bits">
|
||||
<property name="text">
|
||||
<string>Raw 12 bits</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="3">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QGroupBox" name="failsafesGroupBox">
|
||||
<property name="styleSheet">
|
||||
|
||||
@@ -530,8 +530,12 @@ PACK(struct ModuleData {
|
||||
} afhds3));
|
||||
NOBACKUP(struct {
|
||||
uint8_t raw12bits:1;
|
||||
uint8_t spare1:7 SKIP;
|
||||
uint8_t telemetryBaudrate:3;
|
||||
uint8_t spare1:4 SKIP;
|
||||
} ghost);
|
||||
NOBACKUP(struct {
|
||||
uint8_t telemetryBaudrate:3;
|
||||
} crsf);
|
||||
} NAME(mod) FUNC(select_mod_type);
|
||||
|
||||
// Helper functions to set both of the rfProto protocol at the same time
|
||||
@@ -864,7 +868,8 @@ PACK(struct RadioData {
|
||||
int8_t timezone:5;
|
||||
uint8_t adjustRTC:1;
|
||||
NOBACKUP(uint8_t inactivityTimer);
|
||||
uint8_t telemetryBaudrate:3;
|
||||
CUST_ATTR(telemetryBaudrate, r_telemetryBaudrate, nullptr);
|
||||
uint8_t internalModuleBaudrate:3;
|
||||
SPLASH_MODE; /* 3bits */
|
||||
int8_t hapticMode:2 CUST(r_beeperMode,w_beeperMode);
|
||||
int8_t switchesDelay;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
|
||||
#include "opentx.h"
|
||||
#include "mixer_scheduler.h"
|
||||
|
||||
#if !defined(EEPROM)
|
||||
#include "storage/sdcard_common.h"
|
||||
@@ -105,7 +106,10 @@ enum MenuModelSetupItems {
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_LABEL,
|
||||
#if defined(CROSSFIRE) || defined(GHOST)
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_SERIALSTATUS,
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_PROTOCOL,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_SUBTYPE,
|
||||
@@ -136,6 +140,10 @@ enum MenuModelSetupItems {
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_LABEL,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE,
|
||||
#if defined(CROSSFIRE) || defined(GHOST)
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS,
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_SUBTYPE,
|
||||
@@ -191,6 +199,18 @@ enum MenuModelSetupItems {
|
||||
#define IF_NOT_PXX2_MODULE(module, xxx) (isModulePXX2(module) ? HIDDEN_ROW : (uint8_t)(xxx))
|
||||
#define IF_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#define IF_NOT_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? HIDDEN_ROW : (uint8_t)(xxx))
|
||||
#if defined(CROSSFIRE) || defined(GHOST)
|
||||
#define IF_MODULE_SYNCED(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#if SPORT_MAX_BAUDRATE < 400000
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#else
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) (isModuleCrossfire(module) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#endif
|
||||
#else
|
||||
#define IF_MODULE_SYNCED(module, xxx)
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(PXX2)
|
||||
#define REGISTRATION_ID_ROWS uint8_t((isDefaultModelRegistrationID() || (warningText && popupFunc == runPopupRegister)) ? HIDDEN_ROW : READONLY_ROW),
|
||||
@@ -345,6 +365,7 @@ void editTimerCountdown(int timerIdx, coord_t y, LcdFlags attr, event_t event)
|
||||
#define INTERNAL_MODULE_ROWS \
|
||||
LABEL(InternalModule), \
|
||||
MODULE_TYPE_ROWS(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE */ \
|
||||
IF_MODULE_SYNCED(INTERNAL_MODULE, 0), /* Sync rate + errors */ \
|
||||
MULTIMODULE_TYPE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_PROTOCOL */ \
|
||||
MULTIMODULE_SUBTYPE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_SUBTYPE */ \
|
||||
MULTIMODULE_STATUS_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_STATUS, ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS */ \
|
||||
@@ -370,6 +391,8 @@ void editTimerCountdown(int timerIdx, coord_t y, LcdFlags attr, event_t event)
|
||||
#define EXTERNAL_MODULE_ROWS \
|
||||
LABEL(ExternalModule), \
|
||||
MODULE_TYPE_ROWS(EXTERNAL_MODULE), \
|
||||
IF_MODULE_BAUDRATE_ADJUST(EXTERNAL_MODULE, 0), /* Baudrate */ \
|
||||
IF_MODULE_SYNCED(EXTERNAL_MODULE, 0), /* Sync rate + errors */ \
|
||||
MULTIMODULE_TYPE_ROWS(EXTERNAL_MODULE) /* PROTOCOL */ \
|
||||
MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE) /* SUBTYPE */ \
|
||||
MULTIMODULE_STATUS_ROWS(EXTERNAL_MODULE) \
|
||||
@@ -943,14 +966,7 @@ void menuModelSetup(event_t event)
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE:
|
||||
#endif
|
||||
lcdDrawTextAlignedLeft(y, INDENT TR_MODE);
|
||||
lcdDrawTextAtIndex(
|
||||
MODEL_SETUP_2ND_COLUMN, y,
|
||||
moduleIdx == EXTERNAL_MODULE ? STR_EXTERNAL_MODULE_PROTOCOLS
|
||||
: STR_INTERNAL_MODULE_PROTOCOLS,
|
||||
moduleIdx == EXTERNAL_MODULE ? reusableBuffer.moduleSetup.newType
|
||||
: g_model.moduleData[moduleIdx].type,
|
||||
menuHorizontalPosition == 0 ? attr : 0);
|
||||
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y,moduleIdx == EXTERNAL_MODULE ? STR_EXTERNAL_MODULE_PROTOCOLS : STR_INTERNAL_MODULE_PROTOCOLS,moduleIdx == EXTERNAL_MODULE ? reusableBuffer.moduleSetup.newType: g_model.moduleData[moduleIdx].type,menuHorizontalPosition == 0 ? attr : 0);
|
||||
if (isModuleXJT(moduleIdx))
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_XJT_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[moduleIdx].subType, menuHorizontalPosition==1 ? attr : 0);
|
||||
else if (isModuleISRM(moduleIdx))
|
||||
@@ -959,6 +975,8 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_DSM_PROTOCOLS, g_model.moduleData[moduleIdx].rfProtocol, menuHorizontalPosition==1 ? attr : 0);
|
||||
else if (isModuleR9MNonAccess(moduleIdx))
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_R9M_REGION, g_model.moduleData[moduleIdx].subType, (menuHorizontalPosition==1 ? attr : 0));
|
||||
else if (moduleIdx == INTERNAL_MODULE && isModuleCrossfire(INTERNAL_MODULE))
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate),0);
|
||||
|
||||
if (attr && menuHorizontalPosition == 0 && moduleIdx == EXTERNAL_MODULE) {
|
||||
if (s_editMode > 0) {
|
||||
@@ -1051,6 +1069,57 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE) && (defined(CROSSFIRE) || defined(GHOST))
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE: {
|
||||
ModuleData & moduleData = g_model.moduleData[moduleIdx];
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE);
|
||||
if (isModuleCrossfire(EXTERNAL_MODULE)) {
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(moduleData.crsf.telemetryBaudrate),attr | LEFT);
|
||||
if (attr) {
|
||||
moduleData.crsf.telemetryBaudrate =CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event,CROSSFIRE_STORE_TO_INDEX(moduleData.crsf.telemetryBaudrate),0, DIM(CROSSFIRE_BAUDRATES) - 1));
|
||||
if (checkIncDec_Ret) {
|
||||
restartExternalModule();
|
||||
}
|
||||
}
|
||||
}
|
||||
#if SPORT_MAX_BAUDRATE < 400000
|
||||
else {
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, CROSSFIRE_BAUDRATES[CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[EXTERNAL_MODULE].ghost.telemetryBaudrate)],attr | LEFT);
|
||||
if (attr) {
|
||||
moduleData.ghost.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event,CROSSFIRE_STORE_TO_INDEX(moduleData.ghost.telemetryBaudrate),0, 1));
|
||||
if (checkIncDec_Ret) {
|
||||
restartExternalModule();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#if (defined(CROSSFIRE) || defined(GHOST))
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
case ITEM_MODEL_SETUP_INTERNAL_MODULE_SERIALSTATUS:
|
||||
#endif
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS:
|
||||
#endif
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_STATUS);
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, 1000000 / getMixerSchedulerPeriod(), LEFT | attr);
|
||||
lcdDrawText(lcdNextPos, y, "Hz ", attr);
|
||||
lcdDrawNumber(lcdNextPos, y, telemetryErrors, attr);
|
||||
lcdDrawText(lcdNextPos + 1, y, "Err", attr);
|
||||
if (attr) {
|
||||
s_editMode = 0;
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
START_NO_HIGHLIGHT();
|
||||
telemetryErrors = 0;
|
||||
AUDIO_WARNING1();
|
||||
killEvents(event);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
case ITEM_MODEL_SETUP_INTERNAL_MODULE_PROTOCOL:
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
|
||||
#include "opentx.h"
|
||||
#include "mixer_scheduler.h"
|
||||
|
||||
uint8_t g_moduleIdx;
|
||||
|
||||
@@ -106,6 +107,10 @@ enum MenuModelSetupItems {
|
||||
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_LABEL,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE,
|
||||
#if defined(CROSSFIRE) || defined(GHOST)
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS,
|
||||
#endif
|
||||
#if defined (MULTIMODULE)
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_STATUS,
|
||||
@@ -313,6 +318,17 @@ inline uint8_t EXTERNAL_MODULE_TYPE_ROW()
|
||||
#define IF_NOT_PXX2_MODULE(module, xxx) (isModulePXX2(module) ? HIDDEN_ROW : (uint8_t)(xxx))
|
||||
#define IF_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#define IF_NOT_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? HIDDEN_ROW : (uint8_t)(xxx))
|
||||
#if defined(CROSSFIRE) || defined(GHOST)
|
||||
#define IF_MODULE_SYNCED(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#if SPORT_MAX_BAUDRATE < 400000
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#else
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) (isModuleCrossfire(module) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#endif
|
||||
#else
|
||||
#define IF_MODULE_SYNCED(module, xxx)
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx)
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
#define REGISTRATION_ID_ROWS uint8_t((isDefaultModelRegistrationID() || (warningText && popupFunc == runPopupRegister)) ? HIDDEN_ROW : READONLY_ROW),
|
||||
@@ -407,6 +423,8 @@ void menuModelSetup(event_t event)
|
||||
|
||||
LABEL(ExternalModule),
|
||||
EXTERNAL_MODULE_TYPE_ROW(),
|
||||
IF_MODULE_BAUDRATE_ADJUST(EXTERNAL_MODULE, 0), // Baudrate
|
||||
IF_MODULE_SYNCED(EXTERNAL_MODULE, 0), // Sync rate + errors
|
||||
MULTIMODULE_TYPE_ROW(EXTERNAL_MODULE)
|
||||
MULTIMODULE_STATUS_ROWS(EXTERNAL_MODULE)
|
||||
AFHDS3_MODE_ROWS(EXTERNAL_MODULE)
|
||||
@@ -870,6 +888,8 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_XJT_ACCST_RF_PROTOCOLS, 1 + g_model.moduleData[INTERNAL_MODULE].subType, menuHorizontalPosition==1 ? attr : 0);
|
||||
else if (isModuleISRM(INTERNAL_MODULE))
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_ISRM_RF_PROTOCOLS, 1 + g_model.moduleData[INTERNAL_MODULE].subType, menuHorizontalPosition==1 ? attr : 0);
|
||||
else if (isModuleCrossfire(INTERNAL_MODULE))
|
||||
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate),0);
|
||||
if (attr) {
|
||||
if (menuHorizontalPosition == 0) {
|
||||
uint8_t moduleType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isInternalModuleAvailable);
|
||||
@@ -1016,6 +1036,52 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
#if defined(CROSSFIRE) || defined(GHOST)
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE: {
|
||||
ModuleData &moduleData = g_model.moduleData[EXTERNAL_MODULE];
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE);
|
||||
if (isModuleCrossfire(EXTERNAL_MODULE)) {
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(moduleData.crsf.telemetryBaudrate),attr | LEFT);
|
||||
if (attr) {
|
||||
moduleData.crsf.telemetryBaudrate =CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event,CROSSFIRE_STORE_TO_INDEX(moduleData.crsf.telemetryBaudrate),0, DIM(CROSSFIRE_BAUDRATES) - 1));
|
||||
if (checkIncDec_Ret) {
|
||||
restartExternalModule();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
#if SPORT_MAX_BAUDRATE < 400000
|
||||
else {
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, CROSSFIRE_BAUDRATES[CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[EXTERNAL_MODULE].ghost.telemetryBaudrate)],attr | LEFT);
|
||||
if (attr) {
|
||||
moduleData.ghost.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event,CROSSFIRE_STORE_TO_INDEX(moduleData.ghost.telemetryBaudrate),0, 1));
|
||||
if (checkIncDec_Ret) {
|
||||
restartExternalModule();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS:
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_STATUS);
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, 1000000 / getMixerSchedulerPeriod(), LEFT | attr);
|
||||
lcdDrawText(lcdNextPos, y, "Hz ", attr);
|
||||
lcdDrawNumber(lcdNextPos, y, telemetryErrors, attr);
|
||||
lcdDrawText(lcdNextPos + 1, y, "Err", attr);
|
||||
if (attr) {
|
||||
s_editMode = 0;
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
START_NO_HIGHLIGHT();
|
||||
telemetryErrors = 0;
|
||||
AUDIO_WARNING1();
|
||||
killEvents(event);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL:
|
||||
{
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "multi_rfprotos.h"
|
||||
#include "io/multi_protolist.h"
|
||||
#include "pulses/flysky.h"
|
||||
#include "mixer_scheduler.h"
|
||||
|
||||
#include "opentx.h"
|
||||
#include "libopenui.h"
|
||||
@@ -304,8 +305,7 @@ class TrainerModuleWindow : public FormGroup
|
||||
FormGridLayout grid;
|
||||
clear();
|
||||
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_MODE, 0,
|
||||
COLOR_THEME_PRIMARY1);
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_MODE, 0,COLOR_THEME_PRIMARY1);
|
||||
trainerChoice = new TrChoice(
|
||||
this, grid.getFieldSlot(), STR_VTRAINERMODES, 0, TRAINER_MODE_MAX(),
|
||||
GET_DEFAULT(g_model.trainerData.mode),
|
||||
@@ -589,8 +589,7 @@ class ModuleWindow : public FormGroup {
|
||||
clear();
|
||||
|
||||
// Module Type
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_MODE, 0,
|
||||
COLOR_THEME_PRIMARY1);
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_MODE, 0,COLOR_THEME_PRIMARY1);
|
||||
moduleChoice = new Choice(
|
||||
this, grid.getFieldSlot(2, 0), STR_INTERNAL_MODULE_PROTOCOLS,
|
||||
MODULE_TYPE_NONE, MODULE_TYPE_COUNT - 1,
|
||||
@@ -607,7 +606,34 @@ class ModuleWindow : public FormGroup {
|
||||
: isExternalModuleAvailable(moduleType);
|
||||
});
|
||||
|
||||
if (moduleIdx == INTERNAL_MODULE && isModuleCrossfire(moduleIdx)) {
|
||||
char buf[6];
|
||||
new StaticText(this, grid.getFieldSlot(2, 1), getStringAtIndex(buf, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate)), 0,COLOR_THEME_PRIMARY1);
|
||||
}
|
||||
|
||||
// Module parameters
|
||||
if (moduleIdx== EXTERNAL_MODULE && isModuleCrossfire(moduleIdx)) {
|
||||
grid.nextLine();
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_BAUDRATE, 0, COLOR_THEME_PRIMARY1);
|
||||
new Choice(this, grid.getFieldSlot(1, 0), STR_CRSF_BAUDRATE, 0, CROSSFIRE_MAX_INTERNAL_BAUDRATE,
|
||||
[=]() -> int {
|
||||
return CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[moduleIdx].crsf.telemetryBaudrate);
|
||||
},
|
||||
[=](int newValue) {
|
||||
g_model.moduleData[moduleIdx].crsf.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(newValue);
|
||||
SET_DIRTY();
|
||||
restartExternalModule();
|
||||
});
|
||||
}
|
||||
if (isModuleCrossfire(moduleIdx)) {
|
||||
grid.nextLine();
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_STATUS, 0,COLOR_THEME_PRIMARY1);
|
||||
new DynamicText(this, grid.getFieldSlot(), [=] {
|
||||
char msg[64] = "";
|
||||
sprintf(msg,"%d Hz %lu Err", 1000000 / getMixerSchedulerPeriod(), telemetryErrors);
|
||||
return std::string(msg);
|
||||
});
|
||||
}
|
||||
if (isModuleXJT(moduleIdx)) {
|
||||
rfChoice = new Choice(
|
||||
this, grid.getFieldSlot(2, 1), STR_XJT_ACCST_RF_PROTOCOLS,
|
||||
|
||||
@@ -247,20 +247,75 @@ class SerialConfigWindow : public FormGroup
|
||||
}
|
||||
};
|
||||
|
||||
void restartExternalModule()
|
||||
{
|
||||
if (!IS_EXTERNAL_MODULE_ON()) {
|
||||
return;
|
||||
class InternalModuleWindow : public FormGroup {
|
||||
public:
|
||||
InternalModuleWindow(FormWindow *parent, const rect_t &rect) :
|
||||
FormGroup(parent, rect, FORWARD_SCROLL | FORM_FORWARD_FOCUS)
|
||||
{
|
||||
update();
|
||||
}
|
||||
pauseMixerCalculations();
|
||||
pausePulses();
|
||||
EXTERNAL_MODULE_OFF();
|
||||
RTOS_WAIT_MS(20); // 20ms so that the pulses interrupt will reinit the frame rate
|
||||
telemetryProtocol = 255; // force telemetry port + module reinitialization
|
||||
EXTERNAL_MODULE_ON();
|
||||
resumePulses();
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
|
||||
void update()
|
||||
{
|
||||
FormGridLayout grid;
|
||||
#if LCD_W > LCD_H
|
||||
grid.setLabelWidth(180);
|
||||
#else
|
||||
grid.setLabelWidth(130);
|
||||
#endif
|
||||
clear();
|
||||
|
||||
new StaticText(this, grid.getLabelSlot(), TR_INTERNAL_MODULE, 0,
|
||||
COLOR_THEME_PRIMARY1);
|
||||
auto internalModule = new Choice(this, grid.getFieldSlot(1, 0),STR_INTERNAL_MODULE_PROTOCOLS, MODULE_TYPE_NONE, MODULE_TYPE_COUNT - 1,
|
||||
GET_DEFAULT(g_eeGeneral.internalModule),
|
||||
[=](int moduleType) {
|
||||
if (g_model.moduleData[INTERNAL_MODULE].type != moduleType) {
|
||||
memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData));
|
||||
storageDirty(EE_MODEL);
|
||||
}
|
||||
g_eeGeneral.internalModule = moduleType;
|
||||
SET_DIRTY();
|
||||
});
|
||||
|
||||
internalModule->setAvailableHandler([](int module){
|
||||
return isInternalModuleSupported(module);
|
||||
});
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
if (isInternalModuleCrossfire()) {
|
||||
grid.nextLine();
|
||||
new StaticText(this, grid.getLabelSlot(), STR_BAUDRATE, 0,COLOR_THEME_PRIMARY1);
|
||||
new Choice(this, grid.getFieldSlot(1, 0), STR_CRSF_BAUDRATE, 0,CROSSFIRE_MAX_INTERNAL_BAUDRATE,
|
||||
[=]() -> int {
|
||||
return CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate);
|
||||
},
|
||||
[=](int newValue) {
|
||||
g_eeGeneral.internalModuleBaudrate = CROSSFIRE_INDEX_TO_STORE(newValue);
|
||||
SET_DIRTY();
|
||||
restartExternalModule();
|
||||
});
|
||||
grid.nextLine();
|
||||
}
|
||||
auto par = getParent();
|
||||
par->moveWindowsTop(top() + 1, adjustHeight());
|
||||
par->adjustInnerHeight();
|
||||
#endif
|
||||
}
|
||||
|
||||
void checkEvents() override
|
||||
{
|
||||
if (g_eeGeneral.internalModule != lastModule) {
|
||||
lastModule = g_eeGeneral.internalModule;
|
||||
update();
|
||||
}
|
||||
|
||||
FormGroup::checkEvents();
|
||||
}
|
||||
|
||||
protected:
|
||||
uint8_t lastModule = 0;
|
||||
};
|
||||
|
||||
void RadioHardwarePage::build(FormWindow * window)
|
||||
{
|
||||
@@ -379,39 +434,9 @@ void RadioHardwarePage::build(FormWindow * window)
|
||||
grid.nextLine();
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
new StaticText(window, grid.getLabelSlot(), TR_INTERNAL_MODULE, 0,
|
||||
COLOR_THEME_PRIMARY1);
|
||||
auto internalModule = new Choice(window, grid.getFieldSlot(1, 0),
|
||||
STR_INTERNAL_MODULE_PROTOCOLS, MODULE_TYPE_NONE, MODULE_TYPE_COUNT - 1,
|
||||
GET_DEFAULT(g_eeGeneral.internalModule),
|
||||
[=](int moduleType) {
|
||||
if (g_model.moduleData[INTERNAL_MODULE].type != moduleType) {
|
||||
memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData));
|
||||
storageDirty(EE_MODEL);
|
||||
}
|
||||
g_eeGeneral.internalModule = moduleType;
|
||||
SET_DIRTY();
|
||||
});
|
||||
|
||||
internalModule->setAvailableHandler([](int module){
|
||||
return isInternalModuleSupported(module);
|
||||
});
|
||||
grid.nextLine();
|
||||
#endif
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
// Max baud for external modules
|
||||
new StaticText(window, grid.getLabelSlot(), STR_MAXBAUDRATE, 0, COLOR_THEME_PRIMARY1);
|
||||
new Choice(window, grid.getFieldSlot(1,0), STR_CRSF_BAUDRATE, 0, DIM(CROSSFIRE_BAUDRATES) - 1,
|
||||
[=]() -> int {
|
||||
return CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.telemetryBaudrate);
|
||||
},
|
||||
[=](int newValue) {
|
||||
g_eeGeneral.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(newValue);
|
||||
SET_DIRTY();
|
||||
restartExternalModule();
|
||||
});
|
||||
new Subtitle(window, grid.getLineSlot(), TR_INTERNALRF, 0, COLOR_THEME_PRIMARY1);
|
||||
grid.nextLine();
|
||||
grid.addWindow(new InternalModuleWindow(window, {0, grid.getWindowHeight(), LCD_W, 0}));
|
||||
#endif
|
||||
|
||||
#if defined(BLUETOOTH)
|
||||
|
||||
@@ -97,15 +97,13 @@ enum {
|
||||
#endif
|
||||
|
||||
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
|
||||
ITEM_RADIO_HARDWARE_INTERNAL_MODULE,
|
||||
ITEM_RADIO_HARDWARE_LABEL_INTERNAL_MODULE,
|
||||
ITEM_RADIO_HARDWARE_INTERNAL_MODULE_TYPE,
|
||||
ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE,
|
||||
#endif
|
||||
|
||||
#if (defined(CROSSFIRE) || defined(GHOST))
|
||||
ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE,
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
ITEM_RADIO_HARDWARE_SERIAL_SAMPLE_MODE,
|
||||
|
||||
#endif
|
||||
#if defined(BLUETOOTH)
|
||||
ITEM_RADIO_HARDWARE_BLUETOOTH_MODE,
|
||||
ITEM_RADIO_HARDWARE_BLUETOOTH_PAIRING_CODE,
|
||||
@@ -231,18 +229,15 @@ enum {
|
||||
#endif
|
||||
|
||||
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
|
||||
#define INTERNAL_MODULE_ROWS 0,
|
||||
#define INTERNAL_MODULE_ROWS 0, (isInternalModuleCrossfire() ? (uint8_t ) 0 : HIDDEN_ROW),
|
||||
#else
|
||||
#define INTERNAL_MODULE_ROWS
|
||||
#endif
|
||||
|
||||
#if (defined(CROSSFIRE) || defined(GHOST))
|
||||
#define MAX_BAUD_ROWS 0,
|
||||
#else
|
||||
#define MAX_BAUD_ROWS
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
#define SERIAL_SAMPLE_MODE_ROWS 0,
|
||||
#else
|
||||
#define SERIAL_SAMPLE_MODE_ROWS
|
||||
#endif
|
||||
|
||||
#if defined(AUX_SERIAL) || defined(USB_SERIAL)
|
||||
static uint8_t _dispSerialPort(uint8_t port_nr)
|
||||
@@ -282,21 +277,6 @@ void onFactoryResetConfirm(const char * result)
|
||||
}
|
||||
#endif
|
||||
|
||||
void restartExternalModule()
|
||||
{
|
||||
if (!IS_EXTERNAL_MODULE_ON()) {
|
||||
return;
|
||||
}
|
||||
pauseMixerCalculations();
|
||||
pausePulses();
|
||||
EXTERNAL_MODULE_OFF();
|
||||
RTOS_WAIT_MS(20); // 20ms so that the pulses interrupt will reinit the frame rate
|
||||
telemetryProtocol = 255; // force telemetry port + module reinitialization
|
||||
EXTERNAL_MODULE_ON();
|
||||
resumePulses();
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
|
||||
static bool _isAux1ModeAvailable(int m) { return isSerialModeAvailable(SP_AUX1, m); }
|
||||
static bool _isAux2ModeAvailable(int m) { return isSerialModeAvailable(SP_AUX2, m); }
|
||||
static bool _isVCPModeAvailable(int m) { return isSerialModeAvailable(SP_VCP, m); }
|
||||
@@ -322,8 +302,8 @@ void menuRadioHardware(event_t event)
|
||||
0 /* battery calib */,
|
||||
RTC_ROW
|
||||
TX_CAPACITY_MEASUREMENT_ROWS
|
||||
LABEL(InternalModule),
|
||||
INTERNAL_MODULE_ROWS
|
||||
MAX_BAUD_ROWS
|
||||
SERIAL_SAMPLE_MODE_ROWS
|
||||
BLUETOOTH_ROWS
|
||||
EXTERNAL_ANTENNA_ROW
|
||||
@@ -533,9 +513,13 @@ void menuRadioHardware(event_t event)
|
||||
#endif
|
||||
|
||||
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
|
||||
case ITEM_RADIO_HARDWARE_INTERNAL_MODULE: {
|
||||
case ITEM_RADIO_HARDWARE_LABEL_INTERNAL_MODULE:
|
||||
lcdDrawTextAlignedLeft(y, STR_INTERNALRF);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_HARDWARE_INTERNAL_MODULE_TYPE: {
|
||||
g_eeGeneral.internalModule =
|
||||
editChoice(HW_SETTINGS_COLUMN2, y, STR_INTERNAL_MODULE,
|
||||
editChoice(HW_SETTINGS_COLUMN2, y, STR_TYPE,
|
||||
STR_INTERNAL_MODULE_PROTOCOLS,
|
||||
g_eeGeneral.internalModule, MODULE_TYPE_NONE,
|
||||
MODULE_TYPE_MAX, attr, event, isInternalModuleSupported);
|
||||
@@ -548,26 +532,26 @@ void menuRadioHardware(event_t event)
|
||||
} break;
|
||||
#endif
|
||||
|
||||
#if (defined(CROSSFIRE) || defined(GHOST))
|
||||
case ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE:
|
||||
lcdDrawTextAlignedLeft(y, STR_MAXBAUDRATE);
|
||||
lcdDrawNumber(HW_SETTINGS_COLUMN2, y, CROSSFIRE_BAUDRATE, attr|LEFT);
|
||||
#if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E)
|
||||
case ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE:
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE);
|
||||
lcdDrawTextAtIndex(HW_SETTINGS_COLUMN2, y, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate),attr | LEFT);
|
||||
if (attr) {
|
||||
g_eeGeneral.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.telemetryBaudrate), 0, DIM(CROSSFIRE_BAUDRATES) - 1));
|
||||
g_eeGeneral.internalModuleBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate), 0, CROSSFIRE_MAX_INTERNAL_BAUDRATE));
|
||||
if (checkIncDec_Ret) {
|
||||
restartExternalModule();
|
||||
restartInternalModule();
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
case ITEM_RADIO_HARDWARE_SERIAL_SAMPLE_MODE:
|
||||
g_eeGeneral.uartSampleMode = editChoice(HW_SETTINGS_COLUMN2, y, STR_SAMPLE_MODE, STR_SAMPLE_MODES, g_eeGeneral.uartSampleMode, 0, UART_SAMPLE_MODE_MAX, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
restartExternalModule();
|
||||
}
|
||||
break;
|
||||
|
||||
#endif
|
||||
#if defined(BLUETOOTH)
|
||||
case ITEM_RADIO_HARDWARE_BLUETOOTH_MODE:
|
||||
lcdDrawTextAlignedLeft(y, STR_BLUETOOTH);
|
||||
|
||||
@@ -144,7 +144,7 @@ static void* crossfireInitInternal(uint8_t module)
|
||||
|
||||
// serial port setup
|
||||
etx_serial_init params(intmoduleCrossfireInitParams);
|
||||
params.baudrate = CROSSFIRE_BAUDRATE;
|
||||
params.baudrate = INT_CROSSFIRE_BAUDRATE;
|
||||
|
||||
// wakeup mixer when rx buffer is quarter full (16 bytes)
|
||||
params.on_receive = intmoduleCRSF_rx;
|
||||
|
||||
@@ -225,6 +225,11 @@ inline bool isModuleCrossfire(uint8_t idx)
|
||||
{
|
||||
return g_model.moduleData[idx].type == MODULE_TYPE_CROSSFIRE;
|
||||
}
|
||||
|
||||
inline bool isInternalModuleCrossfire()
|
||||
{
|
||||
return g_eeGeneral.internalModule == MODULE_TYPE_CROSSFIRE;
|
||||
}
|
||||
#else
|
||||
inline bool isModuleCrossfire(uint8_t idx)
|
||||
{
|
||||
|
||||
@@ -69,6 +69,39 @@ void ModuleState::startBind(BindInformation* destination,
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
void restartInternalModule()
|
||||
{
|
||||
if (!IS_INTERNAL_MODULE_ON()) {
|
||||
return;
|
||||
}
|
||||
pauseMixerCalculations();
|
||||
pausePulses();
|
||||
INTERNAL_MODULE_OFF();
|
||||
RTOS_WAIT_MS(20); // 20ms so that the pulses interrupt will reinit the frame rate
|
||||
telemetryProtocol = 255; // force telemetry port + module reinitialization
|
||||
INTERNAL_MODULE_ON();
|
||||
resumePulses();
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
#endif
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE)
|
||||
void restartExternalModule()
|
||||
{
|
||||
if (!IS_EXTERNAL_MODULE_ON()) {
|
||||
return;
|
||||
}
|
||||
pauseMixerCalculations();
|
||||
pausePulses();
|
||||
EXTERNAL_MODULE_OFF();
|
||||
RTOS_WAIT_MS(20); // 20ms so that the pulses interrupt will reinit the frame rate
|
||||
telemetryProtocol = 255; // force telemetry port + module reinitialization
|
||||
EXTERNAL_MODULE_ON();
|
||||
resumePulses();
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
#endif
|
||||
|
||||
void ModuleState::readModuleInformation(ModuleInformation* destination,
|
||||
int8_t first, int8_t last)
|
||||
{
|
||||
|
||||
@@ -254,6 +254,8 @@ void extmodulePxx1SerialStart();
|
||||
void extmodulePpmStart();
|
||||
void intmoduleStop();
|
||||
void extmoduleStop();
|
||||
void restartInternalModule();
|
||||
void restartExternalModule();
|
||||
void getModuleStatusString(uint8_t moduleIdx, char * statusText);
|
||||
void getModuleSyncStatusString(uint8_t moduleIdx, char * statusText);
|
||||
#if defined(AFHDS3)
|
||||
|
||||
@@ -444,7 +444,6 @@ static uint8_t select_mod_type(void* user, uint8_t* data, uint32_t bitoffs)
|
||||
case MODULE_TYPE_NONE:
|
||||
case MODULE_TYPE_PPM:
|
||||
case MODULE_TYPE_DSM2:
|
||||
case MODULE_TYPE_CROSSFIRE:
|
||||
return 1;
|
||||
case MODULE_TYPE_MULTIMODULE:
|
||||
return 2;
|
||||
@@ -466,6 +465,8 @@ static uint8_t select_mod_type(void* user, uint8_t* data, uint32_t bitoffs)
|
||||
break;
|
||||
case MODULE_TYPE_GHOST:
|
||||
return 8;
|
||||
case MODULE_TYPE_CROSSFIRE:
|
||||
return 9;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1752,6 +1753,13 @@ static void r_jitterFilter(void* user, uint8_t* data, uint32_t bitoffs,
|
||||
yaml_put_bits(data, i, bitoffs, 1);
|
||||
}
|
||||
|
||||
static void r_telemetryBaudrate(void* user, uint8_t* data, uint32_t bitoffs,
|
||||
const char* val, uint8_t val_len)
|
||||
{
|
||||
uint32_t i = yaml_str2uint(val, val_len);
|
||||
yaml_put_bits(data, i, bitoffs, 3);
|
||||
}
|
||||
|
||||
//struct_serialConfig
|
||||
static const struct YamlIdStr enum_SerialPort[] = {
|
||||
{ SP_AUX1, "AUX1" },
|
||||
|
||||
@@ -380,7 +380,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -665,7 +666,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -678,6 +684,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -725,61 +732,61 @@ static const struct YamlNode struct_string_32[] = {
|
||||
YAML_STRING("val", 4),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -792,7 +799,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_WidgetPersistentData[] = {
|
||||
|
||||
@@ -351,7 +351,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -633,7 +634,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -646,6 +652,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -688,61 +695,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -755,7 +762,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -351,7 +351,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -633,7 +634,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -646,6 +652,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -688,61 +695,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -755,7 +762,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -351,7 +351,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -633,7 +634,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -646,6 +652,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -688,61 +695,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -755,7 +762,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -359,7 +359,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -639,7 +640,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -652,6 +658,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -694,61 +701,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -761,7 +768,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -351,7 +351,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -633,7 +634,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -646,6 +652,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -688,61 +695,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -755,7 +762,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -401,7 +401,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -686,7 +687,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -699,6 +705,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -746,61 +753,61 @@ static const struct YamlNode struct_string_32[] = {
|
||||
YAML_STRING("val", 4),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -813,7 +820,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_WidgetPersistentData[] = {
|
||||
|
||||
@@ -399,7 +399,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -684,7 +685,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -697,6 +703,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -744,61 +751,61 @@ static const struct YamlNode struct_string_32[] = {
|
||||
YAML_STRING("val", 4),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -811,7 +818,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_WidgetPersistentData[] = {
|
||||
|
||||
@@ -351,7 +351,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -633,7 +634,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -646,6 +652,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -688,61 +695,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -755,7 +762,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -358,7 +358,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -641,7 +642,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -654,6 +660,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -701,61 +708,61 @@ static const struct YamlNode struct_string_32[] = {
|
||||
YAML_STRING("val", 4),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -768,7 +775,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -397,7 +397,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -680,7 +681,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -693,6 +699,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -740,61 +747,61 @@ static const struct YamlNode struct_string_32[] = {
|
||||
YAML_STRING("val", 4),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -807,7 +814,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -338,7 +338,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -618,7 +619,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -631,6 +637,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -673,61 +680,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -740,7 +747,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -346,7 +346,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -628,7 +629,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -641,6 +647,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -683,61 +690,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -750,7 +757,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -343,7 +343,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -625,7 +626,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -638,6 +644,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -680,61 +687,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -747,7 +754,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -345,7 +345,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -629,7 +630,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -642,6 +648,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -684,61 +691,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -751,7 +758,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -351,7 +351,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "timezone", 5 ),
|
||||
YAML_UNSIGNED( "adjustRTC", 1 ),
|
||||
YAML_UNSIGNED( "inactivityTimer", 8 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_CUSTOM("telemetryBaudrate",r_telemetryBaudrate,nullptr),
|
||||
YAML_UNSIGNED( "internalModuleBaudrate", 3 ),
|
||||
YAML_SIGNED( "splashMode", 3 ),
|
||||
YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ),
|
||||
YAML_SIGNED( "switchesDelay", 8 ),
|
||||
@@ -633,7 +634,12 @@ static const struct YamlNode struct_anonymous_11[] = {
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_12[] = {
|
||||
YAML_UNSIGNED( "raw12bits", 1 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_13[] = {
|
||||
YAML_UNSIGNED( "telemetryBaudrate", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
@@ -646,6 +652,7 @@ static const struct YamlNode union_anonymous_4_elmts[] = {
|
||||
YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL),
|
||||
YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL),
|
||||
YAML_STRUCT("ghost", 8, struct_anonymous_12, NULL),
|
||||
YAML_STRUCT("crsf", 8, struct_anonymous_13, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_ModuleData[] = {
|
||||
@@ -688,61 +695,61 @@ static const struct YamlNode struct_ScriptData[] = {
|
||||
YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_13_elmts[] = {
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_UNSIGNED( "id", 16 ),
|
||||
YAML_UNSIGNED( "persistentValue", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_15[] = {
|
||||
static const struct YamlNode struct_anonymous_16[] = {
|
||||
YAML_UNSIGNED( "physID", 5 ),
|
||||
YAML_UNSIGNED( "rxIndex", 3 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_14_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_15, NULL),
|
||||
static const struct YamlNode union_anonymous_15_elmts[] = {
|
||||
YAML_STRUCT("frskyInstance", 8, struct_anonymous_16, NULL),
|
||||
YAML_UNSIGNED( "instance", 8 ),
|
||||
YAML_ENUM("formula", 8, enum_TelemetrySensorFormula),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_17[] = {
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
YAML_UNSIGNED( "ratio", 16 ),
|
||||
YAML_SIGNED( "offset", 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_18[] = {
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_UNSIGNED( "index", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_19[] = {
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_20[] = {
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
YAML_UNSIGNED( "source", 8 ),
|
||||
YAML_PADDING( 24 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_anonymous_21[] = {
|
||||
static const struct YamlNode struct_anonymous_22[] = {
|
||||
YAML_UNSIGNED( "gps", 8 ),
|
||||
YAML_UNSIGNED( "alt", 8 ),
|
||||
YAML_PADDING( 16 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode union_anonymous_16_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_17, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_21, NULL),
|
||||
static const struct YamlNode union_anonymous_17_elmts[] = {
|
||||
YAML_STRUCT("custom", 32, struct_anonymous_18, NULL),
|
||||
YAML_STRUCT("cell", 32, struct_anonymous_19, NULL),
|
||||
YAML_STRUCT("calc", 32, struct_anonymous_20, NULL),
|
||||
YAML_STRUCT("consumption", 32, struct_anonymous_21, NULL),
|
||||
YAML_STRUCT("dist", 32, struct_anonymous_22, NULL),
|
||||
YAML_UNSIGNED( "param", 32 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_IDX,
|
||||
YAML_UNION("id1", 16, union_anonymous_13_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_14_elmts, select_id2),
|
||||
YAML_UNION("id1", 16, union_anonymous_14_elmts, select_id1),
|
||||
YAML_UNION("id2", 8, union_anonymous_15_elmts, select_id2),
|
||||
YAML_STRING("label", 4),
|
||||
YAML_UNSIGNED( "subId", 8 ),
|
||||
YAML_ENUM("type", 1, enum_TelemetrySensorType),
|
||||
@@ -755,7 +762,7 @@ static const struct YamlNode struct_TelemetrySensor[] = {
|
||||
YAML_UNSIGNED( "persistent", 1 ),
|
||||
YAML_UNSIGNED( "onlyPositive", 1 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNION("cfg", 32, union_anonymous_16_elmts, select_sensor_cfg),
|
||||
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_FrSkyBarData[] = {
|
||||
|
||||
@@ -267,7 +267,7 @@ void telemetryPortSetDirectionInput()
|
||||
{
|
||||
sportWaitTransmissionComplete();
|
||||
#if defined(GHOST) && SPORT_MAX_BAUDRATE < 400000
|
||||
if (isModuleGhost(EXTERNAL_MODULE) && g_eeGeneral.telemetryBaudrate == GHST_TELEMETRY_RATE_115K) {
|
||||
if (isModuleGhost(EXTERNAL_MODULE) && g_model.moduleData[EXTERNAL_MODULE].ghost.telemetryBaudrate == GHST_TELEMETRY_RATE_115K) {
|
||||
TELEMETRY_USART->BRR = BRR_115K;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -229,7 +229,7 @@ void telemetryPortSetDirectionInput()
|
||||
{
|
||||
sportWaitTransmissionComplete();
|
||||
#if defined(GHOST) && SPORT_MAX_BAUDRATE < 400000
|
||||
if (isModuleGhost(EXTERNAL_MODULE) && g_eeGeneral.telemetryBaudrate == GHST_TELEMETRY_RATE_115K) {
|
||||
if (isModuleGhost(EXTERNAL_MODULE) && g_model.moduleData[EXTERNAL_MODULE].ghost.telemetryBaudrate == GHST_TELEMETRY_RATE_115K) {
|
||||
TELEMETRY_USART->BRR = BRR_115K;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -110,6 +110,13 @@ const uint32_t CROSSFIRE_BAUDRATES[] = {
|
||||
3750000,
|
||||
5250000,
|
||||
};
|
||||
|
||||
#if defined(RADIO_TPRO)
|
||||
#define CROSSFIRE_MAX_INTERNAL_BAUDRATE DIM(CROSSFIRE_BAUDRATES) - 3
|
||||
#else
|
||||
#define CROSSFIRE_MAX_INTERNAL_BAUDRATE DIM(CROSSFIRE_BAUDRATES) - 1
|
||||
#endif
|
||||
|
||||
const uint8_t CROSSFIRE_FRAME_PERIODS[] = {
|
||||
16,
|
||||
4,
|
||||
@@ -132,8 +139,9 @@ const uint8_t CROSSFIRE_FRAME_PERIODS[] = {
|
||||
% DIM(CROSSFIRE_BAUDRATES)
|
||||
#endif
|
||||
|
||||
#define CROSSFIRE_BAUDRATE CROSSFIRE_BAUDRATES[CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.telemetryBaudrate)]
|
||||
#define CROSSFIRE_PERIOD (CROSSFIRE_FRAME_PERIODS[CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.telemetryBaudrate)] * 1000)
|
||||
#define INT_CROSSFIRE_BAUDRATE CROSSFIRE_BAUDRATES[CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate)]
|
||||
#define EXT_CROSSFIRE_BAUDRATE CROSSFIRE_BAUDRATES[CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[EXTERNAL_MODULE].crsf.telemetryBaudrate)]
|
||||
#define CROSSFIRE_PERIOD (CROSSFIRE_FRAME_PERIODS[CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[EXTERNAL_MODULE].crsf.telemetryBaudrate)] * 1000)
|
||||
|
||||
#define CROSSFIRE_TELEM_MIRROR_BAUDRATE 115200
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ const GhostSensor ghostSensors[] = {
|
||||
|
||||
uint8_t getGhostModuleAddr() {
|
||||
#if SPORT_MAX_BAUDRATE < 400000
|
||||
return g_eeGeneral.telemetryBaudrate == GHST_TELEMETRY_RATE_400K ? GHST_ADDR_MODULE_SYM : GHST_ADDR_MODULE_ASYM;
|
||||
return g_model.moduleData[EXTERNAL_MODULE].ghost.telemetryBaudrate == GHST_TELEMETRY_RATE_400K ? GHST_ADDR_MODULE_SYM : GHST_ADDR_MODULE_ASYM;
|
||||
#else
|
||||
return GHST_ADDR_MODULE_SYM;
|
||||
#endif
|
||||
|
||||
@@ -450,7 +450,7 @@ void telemetryInit(uint8_t protocol)
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
else if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
|
||||
telemetryPortInit(EXT_CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
|
||||
#if defined(LUA)
|
||||
outputTelemetryBuffer.reset();
|
||||
#endif
|
||||
|
||||
@@ -201,6 +201,7 @@ const char STR_BEEPCOUNTDOWN[] = TR_BEEPCOUNTDOWN;
|
||||
const char STR_PERSISTENT[] = TR_PERSISTENT;
|
||||
const char STR_BACKLIGHT_LABEL[] = TR_BACKLIGHT_LABEL;
|
||||
const char STR_GHOST_MENU_LABEL[] = TR_GHOST_MENU_LABEL;
|
||||
const char STR_STATUS[] = TR_STATUS;
|
||||
const char STR_BLDELAY[] = TR_BLDELAY;
|
||||
const char STR_RXCHANNELORD[] = TR_RXCHANNELORD;
|
||||
const char STR_STICKS[] = TR_STICKS;
|
||||
@@ -457,8 +458,9 @@ const char STR_FORMATTING[] = TR_FORMATTING;
|
||||
const char STR_TEMP_CALIB[] = TR_TEMP_CALIB;
|
||||
const char STR_TIME[] = TR_TIME;
|
||||
const char STR_MAXBAUDRATE[] = TR_MAXBAUDRATE;
|
||||
const char STR_BAUDRATE[] = TR_BAUDRATE;
|
||||
const char STR_SAMPLE_MODE[] = TR_SAMPLE_MODE;
|
||||
const char STR_BAUDRATE[] = TR_BAUDRATE;
|
||||
const char STR_BLUETOOTH_BAUDRATE[] = TR_BLUETOOTH_BAUDRATE;
|
||||
const char STR_SD_INFO_TITLE[] = TR_SD_INFO_TITLE;
|
||||
const char STR_SD_TYPE[] = TR_SD_TYPE;
|
||||
const char STR_SD_SPEED[] = TR_SD_SPEED;
|
||||
|
||||
@@ -323,6 +323,7 @@ extern const char STR_BEEPCOUNTDOWN[];
|
||||
extern const char STR_PERSISTENT[];
|
||||
extern const char STR_BACKLIGHT_LABEL[];
|
||||
extern const char STR_GHOST_MENU_LABEL[];
|
||||
extern const char STR_STATUS[];
|
||||
extern const char STR_BLDELAY[];
|
||||
|
||||
#if defined(PWM_BACKLIGHT) || defined(COLORLCD)
|
||||
@@ -704,9 +705,10 @@ extern const char STR_FORMATTING[];
|
||||
extern const char STR_TEMP_CALIB[];
|
||||
extern const char STR_TIME[];
|
||||
extern const char STR_MAXBAUDRATE[];
|
||||
extern const char STR_BAUDRATE[];
|
||||
extern const char STR_SAMPLE_MODE[];
|
||||
extern const char STR_SAMPLE_MODES[];
|
||||
extern const char STR_BAUDRATE[];
|
||||
extern const char STR_BLUETOOTH_BAUDRATE[];
|
||||
extern const char STR_SD_INFO_TITLE[];
|
||||
extern const char STR_SD_TYPE[];
|
||||
extern const char STR_SD_SPEED[];
|
||||
|
||||
@@ -474,6 +474,7 @@
|
||||
#define TR_BACKLIGHT_LABEL "背光"
|
||||
#define TR_BLDELAY INDENT "Duration"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLONBRIGHTNESS "背光开"
|
||||
#define TR_BLOFFBRIGHTNESS "背光关"
|
||||
#define TR_KEYS_BACKLIGHT "按键背光"
|
||||
@@ -768,6 +769,7 @@
|
||||
#define TR_TEMP_CALIB "温度校准"
|
||||
#define TR_TIME "时间"
|
||||
#define TR_MAXBAUDRATE "最大带宽"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -777,7 +779,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "目标地址"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "本机地址"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN码"
|
||||
#define TR_BAUDRATE "蓝牙带宽"
|
||||
#define TR_BLUETOOTH_BAUDRATE "蓝牙带宽"
|
||||
#define LEN_BLUETOOTH_MODES "\004"
|
||||
#define TR_BLUETOOTH_MODES "---\0" "回传" "教练"
|
||||
#define TR_SELECT_TEMPLATE_FOLDER "SELECT A TEMPLATE FOLDER:"
|
||||
|
||||
@@ -510,6 +510,7 @@
|
||||
#define TR_PERSISTENT INDENT"Trvalé"
|
||||
#define TR_BACKLIGHT_LABEL "Podsvětlení"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT"Zhasnout po"
|
||||
#define TR_BLONBRIGHTNESS TR3(INDENT"Jas Zap.", INDENT"Jas Zap.", INDENT"Jas zapnutého LCD")
|
||||
#define TR_BLOFFBRIGHTNESS TR3(INDENT"Jas Vyp.", INDENT"Jas Vyp.", INDENT"Jas vypnutého LCD")
|
||||
@@ -807,6 +808,7 @@
|
||||
#define TR_TEMP_CALIB " +=\006Teplota"
|
||||
#define TR_TIME "Čas"
|
||||
#define TR_MAXBAUDRATE "Max baudů"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -825,7 +827,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Vzdál. addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Lokál. addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE TR("PIN kód", "PIN kód")
|
||||
#define TR_BAUDRATE "Baudrate BT"
|
||||
#define TR_BLUETOOTH_BAUDRATE "Baudrate BT"
|
||||
#define LEN_BLUETOOTH_MODES "\012"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Povoleno\0 "
|
||||
|
||||
@@ -513,6 +513,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Permanent", INDENT "Permanent")
|
||||
#define TR_BACKLIGHT_LABEL "LCD-Beleuchtung"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Dauer"
|
||||
#define TR_BLONBRIGHTNESS INDENT "An-Helligkeit"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Aus-Helligkeit"
|
||||
@@ -809,6 +810,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. abgl."
|
||||
#define TR_TIME "Uhrzeit:"
|
||||
#define TR_MAXBAUDRATE "Max Baud"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -827,7 +829,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_BLUETOOTH_BAUDRATE "BT Baudrate"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -511,6 +511,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Persist.", INDENT "Persistent")
|
||||
#define TR_BACKLIGHT_LABEL "Backlight"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Duration"
|
||||
#define TR_BLONBRIGHTNESS INDENT "ON brightness"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "OFF brightness"
|
||||
@@ -813,6 +814,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. Calib"
|
||||
#define TR_TIME "Time"
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -831,7 +833,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_BLUETOOTH_BAUDRATE "BT Baudrate"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -510,6 +510,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT"Persisten.", INDENT"Persistente")
|
||||
#define TR_BACKLIGHT_LABEL "Luz fondo"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT"Duración"
|
||||
#define TR_BLONBRIGHTNESS INDENT"MAS brillo"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"MENOS brillo"
|
||||
@@ -811,6 +812,8 @@
|
||||
#define TR_TEMP_CALIB "Temp. Calib"
|
||||
#define TR_TIME "Hora"
|
||||
#define TR_MAXBAUDRATE "Máx bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
|
||||
#define TR_SAMPLE_MODE "Modo de muestra"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -829,7 +832,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dir. remota"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Dir. local"
|
||||
#define TR_BLUETOOTH_PIN_CODE "Código PIN"
|
||||
#define TR_BAUDRATE "Velocidad BT"
|
||||
#define TR_BLUETOOTH_BAUDRATE "Velocidad BT"
|
||||
#define LEN_BLUETOOTH_MODES "\012"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Activo\0 "
|
||||
|
||||
@@ -524,6 +524,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT"Persist.", INDENT"Persistent")
|
||||
#define TR_BACKLIGHT_LABEL "Backlight"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT"Duration"
|
||||
#define TR_BLONBRIGHTNESS INDENT"ON Brightness"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"OFF Brightness"
|
||||
@@ -825,6 +826,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. Calib"
|
||||
#define TR_TIME "Time"
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -843,7 +845,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_BLUETOOTH_BAUDRATE "BT Baudrate"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -531,6 +531,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Persist.", INDENT "Persistant")
|
||||
#define TR_BACKLIGHT_LABEL "Rétroéclairage"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Durée"
|
||||
#define TR_BLONBRIGHTNESS INDENT "Luminosité ON"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Luminosité OFF"
|
||||
@@ -830,6 +831,7 @@
|
||||
#define TR_TEMP_CALIB "Calib. temp"
|
||||
#define TR_TIME "Heure"
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -848,7 +850,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Addr dist."
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Addr locale"
|
||||
#define TR_BLUETOOTH_PIN_CODE "Code PIN"
|
||||
#define TR_BAUDRATE "Baudrate BT"
|
||||
#define TR_BLUETOOTH_BAUDRATE "Baudrate BT"
|
||||
#define LEN_BLUETOOTH_MODES "\012"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Activé\0 "
|
||||
|
||||
@@ -535,6 +535,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Persist.", INDENT "Persistente")
|
||||
#define TR_BACKLIGHT_LABEL TR("Retroillu.", "Retroilluminazione")
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Durata"
|
||||
#define TR_BLONBRIGHTNESS TR(INDENT "Lumin. ON", INDENT "Luminosità ON")
|
||||
#define TR_BLOFFBRIGHTNESS TR(INDENT "Lumin. OFF", INDENT "Luminosità OFF")
|
||||
@@ -831,6 +832,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. Calib."
|
||||
#define TR_TIME "Ora"
|
||||
#define TR_MAXBAUDRATE "Max Bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -849,7 +851,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Ind. Dist."
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Ind. Loc."
|
||||
#define TR_BLUETOOTH_PIN_CODE "Codice PIN"
|
||||
#define TR_BAUDRATE "Baudrate BT"
|
||||
#define TR_BLUETOOTH_BAUDRATE "Baudrate BT"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Attivo\0 "
|
||||
|
||||
@@ -515,6 +515,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Vasth.", INDENT "Vasthouden")
|
||||
#define TR_BACKLIGHT_LABEL "LCD-Verlichting"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Duur"
|
||||
#define TR_BLONBRIGHTNESS INDENT "Aan-Helderheid"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Uit-Helderheid"
|
||||
@@ -817,6 +818,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. Calib."
|
||||
#define TR_TIME "Tijd:"
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -835,7 +837,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_BLUETOOTH_BAUDRATE "BT Baudrate"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -531,6 +531,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Dokł.", INDENT "Dokładny")
|
||||
#define TR_BACKLIGHT_LABEL "Podświetl"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT"Czas trwania"
|
||||
#define TR_BLONBRIGHTNESS INDENT"Jasnośc wł."
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"Jasność wył."
|
||||
@@ -828,6 +829,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. kalibracji"
|
||||
#define TR_TIME "Czas"
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -846,7 +848,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "Prędkość BT"
|
||||
#define TR_BLUETOOTH_BAUDRATE "Prędkość BT"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -535,6 +535,7 @@
|
||||
#define TR_PERSISTENT INDENT "Persist."
|
||||
#define TR_BACKLIGHT_LABEL "Backlight"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Tempo Backlight"
|
||||
#define TR_BLONBRIGHTNESS INDENT "ON Brightness"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "OFF Brightness"
|
||||
@@ -836,6 +837,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. Calib"
|
||||
#define TR_TIME "Time"
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -854,7 +856,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_BLUETOOTH_BAUDRATE "BT Baudrate"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -538,6 +538,7 @@
|
||||
#define TR_PERSISTENT TR("Jämt på ", INDENT"Alltid På")
|
||||
#define TR_BACKLIGHT_LABEL "Belysning"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Av efter"
|
||||
#define TR_BLONBRIGHTNESS INDENT "På Ljusstyrka"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Av Ljusstyrka"
|
||||
@@ -836,6 +837,7 @@
|
||||
#define TR_TEMP_CALIB "Temp. kalib."
|
||||
#define TR_TIME "Tid "
|
||||
#define TR_MAXBAUDRATE "Max bauds"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -854,7 +856,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "Dist addr"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "Local addr"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN code"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_BLUETOOTH_BAUDRATE "BT Baudrate"
|
||||
#define LEN_BLUETOOTH_MODES "\011"
|
||||
#if defined(PCBX9E)
|
||||
#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 "
|
||||
|
||||
@@ -473,6 +473,7 @@
|
||||
#define TR_PERSISTENT TR(INDENT "Persist.", INDENT "關機保持")
|
||||
#define TR_BACKLIGHT_LABEL "背光"
|
||||
#define TR_GHOST_MENU_LABEL "GHOST MENU"
|
||||
#define TR_STATUS "Status"
|
||||
#define TR_BLDELAY INDENT "Duration"
|
||||
#define TR_BLONBRIGHTNESS "背光開"
|
||||
#define TR_BLOFFBRIGHTNESS "背光關"
|
||||
@@ -768,6 +769,7 @@
|
||||
#define TR_TEMP_CALIB "溫度校準"
|
||||
#define TR_TIME "時間"
|
||||
#define TR_MAXBAUDRATE "最大帶寬"
|
||||
#define TR_BAUDRATE "Baudrate"
|
||||
#define TR_SAMPLE_MODE "Sample Mode"
|
||||
#define LEN_SAMPLE_MODES "\006"
|
||||
#define TR_SAMPLE_MODES "Normal""OneBit"
|
||||
@@ -786,7 +788,7 @@
|
||||
#define TR_BLUETOOTH_DIST_ADDR "目標地址"
|
||||
#define TR_BLUETOOTH_LOCAL_ADDR "本機地址"
|
||||
#define TR_BLUETOOTH_PIN_CODE "PIN碼"
|
||||
#define TR_BAUDRATE "藍牙帶寬"
|
||||
#define TR_BLUETOOTH_BAUDRATE "藍牙帶寬"
|
||||
#define LEN_BLUETOOTH_MODES "\004"
|
||||
#define TR_BLUETOOTH_MODES "---\0" "回傳" "教練"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user