diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 92aa087fd..d3859956b 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -156,7 +156,7 @@ QString SensorData::unitString() const bool RawSource::isTimeBased() const { if (IS_ARM(GetCurrentFirmware()->getBoard())) - return false; + return (type == SOURCE_TYPE_SPECIAL && index > 0); else return (type==SOURCE_TYPE_TELEMETRY && (index==TELEMETRY_SOURCE_TX_TIME || index==TELEMETRY_SOURCE_TIMER1 || index==TELEMETRY_SOURCE_TIMER2 || index==TELEMETRY_SOURCE_TIMER3)); } @@ -386,6 +386,25 @@ RawSourceRange RawSource::getRange(const ModelData * model, const GeneralSetting result.min = -result.max; break; + case SOURCE_TYPE_SPECIAL: + if (index == 0) { //Batt + result.step = 0.1; + result.decimals = 1; + result.max = 25.5; + result.unit = QObject::tr("V"); + } + else if (index == 1) { //Time + result.step = 1; + result.max = 24*60 - 1; + result.unit = QObject::tr("h:m"); + } + else { // Timers 1 - 3 + result.step = singleprec ? 5 : 1; + result.max = singleprec ? 255*5 : 60*60; + result.unit = singleprec ? QObject::tr("m:s") : QObject::tr("h:m:s"); + } + break; + default: if (model) { result.max = model->getChannelsMax(true); diff --git a/companion/src/modeledit/logicalswitches.cpp b/companion/src/modeledit/logicalswitches.cpp index 60dfbeb64..60a2e5dab 100644 --- a/companion/src/modeledit/logicalswitches.cpp +++ b/companion/src/modeledit/logicalswitches.cpp @@ -309,7 +309,10 @@ void LogicalSwitchesPanel::setSwitchWidgetVisibility(int i) int maxTime = round(range.max); int value = round(range.step*model->logicalSw[i].val2 + range.offset); cswitchTOffset[i]->setMaximumTime(QTimeS(maxTime)); - cswitchTOffset[i]->setDisplayFormat((maxTime>=3600)?"hh:mm:ss":"mm:ss"); + QString format = (maxTime>=3600) ? "hh:mm:ss" : "mm:ss"; + if (!range.unit.isEmpty()) + format += QString("' [%1]'").arg(range.unit); + cswitchTOffset[i]->setDisplayFormat(format); cswitchTOffset[i]->setTime(QTimeS(value)); } else {