Bsongis/r9 m fixes (#5406)

R9M support
This commit is contained in:
Bertrand Songis
2017-12-08 11:26:46 +01:00
committed by GitHub
parent 9c27947345
commit a6044a684d
31 changed files with 771 additions and 495 deletions
+46 -3
View File
@@ -45,6 +45,14 @@ ModelPrinter::~ModelPrinter()
{
}
QString ModelPrinter::printBoolean(bool val)
{
if (val)
return tr("Y");
else
return tr("N");
}
void debugHtml(const QString & html)
{
QFile file("foo.html");
@@ -140,7 +148,7 @@ QString ModelPrinter::printMultiRfProtocol(int rfProtocol, bool custom)
return CHECK_IN_ARRAY(strings, rfProtocol);
}
QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, unsigned int subType) {
QString ModelPrinter::printMultiSubType(unsigned rfProtocol, bool custom, unsigned int subType) {
/* custom protocols */
if (custom)
@@ -154,6 +162,39 @@ QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, unsigned in
return "???";
}
QString ModelPrinter::printR9MPowerValue(unsigned subType, unsigned val, bool telem)
{
static const QStringList strFTC = QStringList() << tr("10mW") << tr("100mW") << tr("500mW") << tr("1W");
static const QStringList strLBT = QStringList() << tr("25mW") << tr("500mW");
if (subType == 0 && (int)val < strFTC.size())
return strFTC.at(val);
else if (subType == 1)
return (telem ? strLBT.at(0) : strLBT.at(1));
else
return "???";
}
QString ModelPrinter::printModuleSubType(unsigned protocol, unsigned subType, unsigned rfProtocol, bool custom)
{
static const char * strings[] = {
"FCC",
"LBT(EU)"
};
switch (protocol) {
case PULSES_MULTIMODULE:
return printMultiSubType(rfProtocol, custom, subType);
case PULSES_PXX_R9M:
return CHECK_IN_ARRAY(strings, subType);
default:
return "???";
}
}
QString ModelPrinter::printModule(int idx) {
const ModuleData &module = model.moduleData[idx];
if (module.protocol == PULSES_OFF)
@@ -167,6 +208,8 @@ QString ModelPrinter::printModule(int idx) {
}
if (module.protocol == PULSES_MULTIMODULE)
result += " " + tr("radio Protocol %1, subType %2, option value %3").arg(printMultiRfProtocol(module.multi.rfProtocol, module.multi.customProto)).arg(printMultiSubType(module.multi.rfProtocol, module.multi.customProto, module.subType)).arg(module.multi.optionValue);
else if (module.protocol == PULSES_PXX_R9M)
result += " " + tr("Module Type: %1, Power: %2, Telemetry Enabled: %3").arg(printModuleSubType(module.protocol, module.subType)).arg(printR9MPowerValue(module.subType, module.pxx.power, module.pxx.sport_out)).arg(printBoolean(module.pxx.sport_out));
return result;
}
}
@@ -709,7 +752,7 @@ QString ModelPrinter::printGlobalVarMax(int idx)
QString ModelPrinter::printGlobalVarPopup(int idx)
{
return (model.gvarData[idx].popup ? "Y" : "N" );
return printBoolean(model.gvarData[idx].popup);
}
QString ModelPrinter::printOutputValueGVar(int val)
@@ -760,6 +803,6 @@ QString ModelPrinter::printOutputCurve(int idx)
QString ModelPrinter::printOutputSymetrical(int idx)
{
return (model.limitData[idx].symetrical ? "Y": "N");
return printBoolean(model.limitData[idx].symetrical);
}