1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-23 16:25:16 +03:00

Companion bug in speed values (Logical Switches)

This commit is contained in:
bsongis 2014-06-19 10:13:11 +02:00
parent 79abc49a6c
commit 1560fa8bd9
3 changed files with 15 additions and 7 deletions

View file

@ -1,5 +1,6 @@
#include <stdio.h> #include <stdio.h>
#include <list> #include <list>
#include <float.h>
#include "eeprominterface.h" #include "eeprominterface.h"
#include "firmwares/er9x/er9xinterface.h" #include "firmwares/er9x/er9xinterface.h"
#include "firmwares/th9x/th9xinterface.h" #include "firmwares/th9x/th9xinterface.h"
@ -103,6 +104,10 @@ RawSourceRange RawSource::getRange(bool singleprec)
switch (type) { switch (type) {
case SOURCE_TYPE_TELEMETRY: case SOURCE_TYPE_TELEMETRY:
if (singleprec) {
result.offset = -DBL_MAX;
}
switch (index) { switch (index) {
case TELEMETRY_SOURCE_TX_BATT: case TELEMETRY_SOURCE_TX_BATT:
result.step = 0.1; result.step = 0.1;
@ -165,10 +170,12 @@ RawSourceRange RawSource::getRange(bool singleprec)
case TELEMETRY_SOURCE_FUEL: case TELEMETRY_SOURCE_FUEL:
result.max = 100; result.max = 100;
break; break;
case TELEMETRY_SOURCE_ASPEED:
case TELEMETRY_SOURCE_ASPEED_MAX:
case TELEMETRY_SOURCE_SPEED: case TELEMETRY_SOURCE_SPEED:
case TELEMETRY_SOURCE_SPEED_MAX: case TELEMETRY_SOURCE_SPEED_MAX:
result.step = singleprec ? 4 : 1; result.step = singleprec ? 1 : 1;
result.max = singleprec ? (4*236) : 2000; result.max = singleprec ? (1*255) : 2000;
if (model && !model->frsky.imperial) { if (model && !model->frsky.imperial) {
result.step *= 1.852; result.step *= 1.852;
result.max *= 1.852; result.max *= 1.852;
@ -225,14 +232,15 @@ RawSourceRange RawSource::getRange(bool singleprec)
result.max = 125; result.max = 125;
break; break;
} }
if (singleprec && !result.offset) {
if (singleprec && result.offset==-DBL_MAX) {
result.offset = result.max - (127*result.step); result.offset = result.max - (127*result.step);
} }
break; break;
default: default:
result.max = (model && model->extendedLimits ? 125 : 100); result.max = (model && model->extendedLimits ? 125 : 100);
result.min = - result.max; result.min = -result.max;
break; break;
} }

View file

@ -252,7 +252,7 @@ enum TelemetrySource {
TELEMETRY_SOURCE_ACCZ, TELEMETRY_SOURCE_ACCZ,
TELEMETRY_SOURCE_HDG, TELEMETRY_SOURCE_HDG,
TELEMETRY_SOURCE_VERTICAL_SPEED, TELEMETRY_SOURCE_VERTICAL_SPEED,
TELEMETRY_SOURCE_ASPD, TELEMETRY_SOURCE_ASPEED,
TELEMETRY_SOURCE_DTE, TELEMETRY_SOURCE_DTE,
TELEMETRY_SOURCE_A1_MIN, TELEMETRY_SOURCE_A1_MIN,
TELEMETRY_SOURCE_A2_MIN, TELEMETRY_SOURCE_A2_MIN,

View file

@ -260,7 +260,7 @@ class SourcesConversionTable: public ConversionTable {
for (int i=0; i<TELEMETRY_SOURCE_ACC; i++) { for (int i=0; i<TELEMETRY_SOURCE_ACC; i++) {
if (version < 216) { if (version < 216) {
if (i==TELEMETRY_SOURCE_TX_TIME || i==TELEMETRY_SOURCE_SWR || i==TELEMETRY_SOURCE_A3 || i==TELEMETRY_SOURCE_A4 || i==TELEMETRY_SOURCE_ASPD || i==TELEMETRY_SOURCE_DTE || i==TELEMETRY_SOURCE_CELL_MIN || i==TELEMETRY_SOURCE_CELLS_MIN || i==TELEMETRY_SOURCE_VFAS_MIN) if (i==TELEMETRY_SOURCE_TX_TIME || i==TELEMETRY_SOURCE_SWR || i==TELEMETRY_SOURCE_A3 || i==TELEMETRY_SOURCE_A4 || i==TELEMETRY_SOURCE_ASPEED || i==TELEMETRY_SOURCE_DTE || i==TELEMETRY_SOURCE_CELL_MIN || i==TELEMETRY_SOURCE_CELLS_MIN || i==TELEMETRY_SOURCE_VFAS_MIN)
continue; continue;
} }
if (!IS_ARM(board)) { if (!IS_ARM(board)) {
@ -443,7 +443,7 @@ class TelemetrySourcesConversionTable: public ConversionTable {
addConversion(1+TELEMETRY_SOURCE_HDG, val++); addConversion(1+TELEMETRY_SOURCE_HDG, val++);
addConversion(1+TELEMETRY_SOURCE_VERTICAL_SPEED, val++); addConversion(1+TELEMETRY_SOURCE_VERTICAL_SPEED, val++);
if (version >= 216) { if (version >= 216) {
addConversion(1+TELEMETRY_SOURCE_ASPD, val++); addConversion(1+TELEMETRY_SOURCE_ASPEED, val++);
addConversion(1+TELEMETRY_SOURCE_DTE, val++); addConversion(1+TELEMETRY_SOURCE_DTE, val++);
} }
if (IS_ARM(board) && version >= 216) { if (IS_ARM(board) && version >= 216) {