Merge pull request #1828 from opentx/projectkk2glider/issue_1811_for_next

Fixes #1811: Companion 2.0.12 Gvar import error (for limits)
This commit is contained in:
Bertrand Songis
2014-11-03 23:57:00 +01:00
+28 -12
View File
@@ -1259,23 +1259,39 @@ class LimitField: public StructField {
template <int shift>
static int exportLimitValue(int value)
{
if (value > 10000)
return 1023 + value - 10000;
else if (value < -10000)
return -1024 + value + 10000;
else
return value + shift;
const int GV1 = 4096;
if (value > 10000) {
return -GV1 + value - 10001;
}
if (value < -10000) {
return GV1 + value + 10000;
}
return value + shift;
}
template <int shift>
static int importLimitValue(int value)
{
if (value > 1023)
return 10000 + value - 1023;
else if (value < -1024)
return -10000 + value + 1024;
else
return value - shift;
/* GVARS mapping on radio:
GV1 = -4096
GV9 = -4088
-GV1 = 4095
-GV9 = 4087
*/
const int GV1 = 4096;
if (value >= GV1) {
return 10001 + value - GV1;
}
if (value >= GV1-9) {
return -10000 + value - GV1;
}
if (value < -GV1) {
return -10000 + value + GV1 + 1;
}
if (value < -GV1+9) {
return 10000 + value + GV1 + 1;
}
return value - shift;
}
LimitField(LimitData & limit, BoardEnum board, unsigned int version):