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

Logical Switches import issue (Telemetry)

This commit is contained in:
Bertrand Songis 2014-02-12 15:57:53 +01:00
parent a0dbfddad0
commit 491f4e12c2
4 changed files with 24 additions and 16 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/.project
/.settings

View file

@ -1165,7 +1165,10 @@ class LogicalSwitchField: public TransformedField {
functionsConversionTable(board, version), functionsConversionTable(board, version),
sourcesConversionTable(SourcesConversionTable::getInstance(board, version, variant, (version >= 214 || (!IS_ARM(board) && version >= 213)) ? 0 : FLAG_NOSWITCHES)), sourcesConversionTable(SourcesConversionTable::getInstance(board, version, variant, (version >= 214 || (!IS_ARM(board) && version >= 213)) ? 0 : FLAG_NOSWITCHES)),
switchesConversionTable(SwitchesConversionTable::getInstance(board, version)), switchesConversionTable(SwitchesConversionTable::getInstance(board, version)),
andswitchesConversionTable(AndSwitchesConversionTable::getInstance(board, version)) andswitchesConversionTable(AndSwitchesConversionTable::getInstance(board, version)),
v1(0),
v2(0),
v3(0)
{ {
if (IS_ARM(board) && version >= 216) { if (IS_ARM(board) && version >= 216) {
internalField.Append(new SignedField<8>(v1)); internalField.Append(new SignedField<8>(v1));
@ -1202,7 +1205,11 @@ class LogicalSwitchField: public TransformedField {
virtual void beforeExport() virtual void beforeExport()
{ {
if (csw.func == LS_FN_STAY) { if (csw.func == LS_FN_TIMER) {
v1 = csw.val1;
v2 = csw.val2;
}
else if (csw.func == LS_FN_STAY) {
switchesConversionTable->exportValue(csw.val1, v1); switchesConversionTable->exportValue(csw.val1, v1);
v2 = csw.val2; v2 = csw.val2;
v3 = csw.val3; v3 = csw.val3;
@ -1215,18 +1222,19 @@ class LogicalSwitchField: public TransformedField {
sourcesConversionTable->exportValue(csw.val1, v1); sourcesConversionTable->exportValue(csw.val1, v1);
sourcesConversionTable->exportValue(csw.val2, v2); sourcesConversionTable->exportValue(csw.val2, v2);
} }
else { else if (csw.func != LS_FN_OFF) {
if ((csw.func >= LS_FN_VPOS && csw.func <= LS_FN_ANEG) || (csw.func >= LS_FN_EQUAL && csw.func!=LS_FN_TIMER)) sourcesConversionTable->exportValue(csw.val1, v1);
sourcesConversionTable->exportValue(csw.val1, v1);
else
v1 = csw.val1;
v2 = csw.val2; v2 = csw.val2;
} }
} }
virtual void afterImport() virtual void afterImport()
{ {
if (csw.func == LS_FN_STAY) { if (csw.func == LS_FN_TIMER) {
csw.val1 = v1;
csw.val2 = v2;
}
else if (csw.func == LS_FN_STAY) {
switchesConversionTable->importValue(v1, csw.val1); switchesConversionTable->importValue(v1, csw.val1);
csw.val2 = v2; csw.val2 = v2;
csw.val3 = v3; csw.val3 = v3;
@ -1236,14 +1244,11 @@ class LogicalSwitchField: public TransformedField {
switchesConversionTable->importValue(v2, csw.val2); switchesConversionTable->importValue(v2, csw.val2);
} }
else if (csw.func >= LS_FN_EQUAL && csw.func <= LS_FN_ELESS) { else if (csw.func >= LS_FN_EQUAL && csw.func <= LS_FN_ELESS) {
sourcesConversionTable->importValue(v1, csw.val1); sourcesConversionTable->importValue((uint8_t)v1, csw.val1);
sourcesConversionTable->importValue(v2, csw.val2); sourcesConversionTable->importValue((uint8_t)v2, csw.val2);
} }
else { else if (csw.func != LS_FN_OFF) {
if ((csw.func >= LS_FN_VPOS && csw.func <= LS_FN_ANEG) || (csw.func >= LS_FN_EQUAL && csw.func!=LS_FN_TIMER)) sourcesConversionTable->importValue((uint8_t)v1, csw.val1);
sourcesConversionTable->importValue(v1, csw.val1);
else
csw.val1 = v1;
csw.val2 = v2; csw.val2 = v2;
} }
} }

1
radio/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/gtest-1.6.0

View file

@ -1,7 +1,6 @@
/stamp-opentx.h /stamp-opentx.h
/opentx.elf /opentx.elf
/simu /simu
/eeprom.bin
/opentx.hex /opentx.hex
/opentx.map /opentx.map
/simu.d /simu.d
@ -9,6 +8,7 @@
/*.sh /*.sh
/*.o /*.o
/*.bin /*.bin
/*.bin.*
/*.lst /*.lst
/SCRIPTS /SCRIPTS
/SOUNDS /SOUNDS