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

[Companion] Horus support continued

Timers + Mixes should be OK now
This commit is contained in:
Bertrand Songis 2016-11-20 22:55:58 +01:00
parent ecb5416057
commit aade6933ea
4 changed files with 21 additions and 17 deletions

View file

@ -1048,7 +1048,7 @@ class ModelData {
QVector<const MixData *> mixes(int channel) const; QVector<const MixData *> mixes(int channel) const;
bool used; bool used;
char name[12+1]; char name[15+1];
TimerData timers[C9X_MAX_TIMERS]; TimerData timers[C9X_MAX_TIMERS];
bool noGlobalFunctions; bool noGlobalFunctions;
bool thrTrim; // Enable Throttle Trim bool thrTrim; // Enable Throttle Trim

View file

@ -753,7 +753,7 @@ class HeliField: public StructField {
public: public:
HeliField(SwashRingData & heli, BoardEnum board, unsigned int version, unsigned int variant) HeliField(SwashRingData & heli, BoardEnum board, unsigned int version, unsigned int variant)
{ {
if (IS_TARANIS(board) && version >= 217) { if (IS_STM32(board) && version >= 217) {
Append(new UnsignedField<8>(heli.type)); Append(new UnsignedField<8>(heli.type));
Append(new UnsignedField<8>(heli.value)); Append(new UnsignedField<8>(heli.value));
Append(new SourceField<8>(heli.collectiveSource, board, version, variant)); Append(new SourceField<8>(heli.collectiveSource, board, version, variant));
@ -953,7 +953,9 @@ class MixField: public TransformedField {
internalField.Append(new UnsignedField<8>(mix.delayDown)); internalField.Append(new UnsignedField<8>(mix.delayDown));
internalField.Append(new UnsignedField<8>(mix.speedUp)); internalField.Append(new UnsignedField<8>(mix.speedUp));
internalField.Append(new UnsignedField<8>(mix.speedDown)); internalField.Append(new UnsignedField<8>(mix.speedDown));
if (HAS_LARGE_LCD(board)) if (IS_HORUS(board))
internalField.Append(new ZCharField<6>(mix.name));
else if (HAS_LARGE_LCD(board))
internalField.Append(new ZCharField<8>(mix.name)); internalField.Append(new ZCharField<8>(mix.name));
else else
internalField.Append(new ZCharField<6>(mix.name)); internalField.Append(new ZCharField<6>(mix.name));
@ -1169,7 +1171,7 @@ class MixField: public TransformedField {
if (mix.srcRaw.type != SOURCE_TYPE_NONE) { if (mix.srcRaw.type != SOURCE_TYPE_NONE) {
mix.destCh = _destCh + 1; mix.destCh = _destCh + 1;
if (!IS_TARANIS(board) || version < 216) { if (!IS_STM32(board) || version < 216) {
if (!_curveMode) if (!_curveMode)
mix.curve = CurveReference(CurveReference::CURVE_REF_DIFF, smallGvarToC9x(_curveParam)); mix.curve = CurveReference(CurveReference::CURVE_REF_DIFF, smallGvarToC9x(_curveParam));
else if (_curveParam > 6) else if (_curveParam > 6)
@ -1236,7 +1238,9 @@ class InputField: public TransformedField {
internalField.Append(new UnsignedField<9>(expo.flightModes)); internalField.Append(new UnsignedField<9>(expo.flightModes));
internalField.Append(new SignedField<8>(_weight, "Weight")); internalField.Append(new SignedField<8>(_weight, "Weight"));
internalField.Append(new SpareBitsField<1>()); internalField.Append(new SpareBitsField<1>());
if (HAS_LARGE_LCD(board)) if (IS_HORUS(board))
internalField.Append(new ZCharField<6>(expo.name));
else if (HAS_LARGE_LCD(board))
internalField.Append(new ZCharField<8>(expo.name)); internalField.Append(new ZCharField<8>(expo.name));
else else
internalField.Append(new ZCharField<6>(expo.name)); internalField.Append(new ZCharField<6>(expo.name));

View file

@ -577,21 +577,21 @@ int OpenTxFirmware::getCapability(Capability capability)
case FlightModesHaveFades: case FlightModesHaveFades:
return 1; return 1;
case Heli: case Heli:
if (IS_TARANIS(board)) if (IS_TARANIS(board) || IS_HORUS(board))
return id.contains("noheli") ? 0 : 1; return id.contains("noheli") ? 0 : 1;
else else
return id.contains("heli") ? 1 : 0; return id.contains("heli") ? 1 : 0;
case Gvars: case Gvars:
if (IS_TARANIS(board)) if (IS_TARANIS(board) || IS_HORUS(board))
return id.contains("nogvars") ? 0 : 9; return id.contains("nogvars") ? 0 : 9;
else if (id.contains("gvars")) else if (id.contains("gvars"))
return IS_ARM(board) ? 9 : 5; return IS_ARM(board) ? 9 : 5;
else else
return 0; return 0;
case ModelName: case ModelName:
return (HAS_LARGE_LCD(board) ? 12 : 10); return (IS_HORUS(board) ? 15 : (HAS_LARGE_LCD(board) ? 12 : 10));
case FlightModesName: case FlightModesName:
return (IS_TARANIS(board) ? 10 : 6); return ((IS_TARANIS(board) || IS_HORUS(board)) ? 10 : 6);
case GvarsName: case GvarsName:
return (IS_9X(board) ? 0 : 6); return (IS_9X(board) ? 0 : 6);
case GvarsInCS: case GvarsInCS:
@ -601,7 +601,7 @@ int OpenTxFirmware::getCapability(Capability capability)
case GvarsFlightModes: case GvarsFlightModes:
return ((IS_ARM(board) || IS_2560(board)) ? 1 : 0); return ((IS_ARM(board) || IS_2560(board)) ? 1 : 0);
case Mixes: case Mixes:
return (IS_TARANIS(board) ? 64 : (IS_ARM(board) ? 60 : 32)); return (IS_ARM(board) ? 64 : 32);
case OffsetWeight: case OffsetWeight:
return (IS_ARM(board) ? 500 : 245); return (IS_ARM(board) ? 500 : 245);
case Timers: case Timers:
@ -778,7 +778,7 @@ int OpenTxFirmware::getCapability(Capability capability)
case GlobalFunctions: case GlobalFunctions:
return IS_ARM(board) ? 64 : 0; return IS_ARM(board) ? 64 : 0;
case VirtualInputs: case VirtualInputs:
return IS_TARANIS(board) ? 32 : 0; return IS_ARM(board) ? 64 : 0;
case TrainerInputs: case TrainerInputs:
return IS_ARM(board) ? 16 : 8; return IS_ARM(board) ? 16 : 8;
case RtcTime: case RtcTime:

View file

@ -140,7 +140,7 @@ enum CurveType {
#define LEN_MODEL_NAME 15 #define LEN_MODEL_NAME 15
#define LEN_TIMER_NAME 8 #define LEN_TIMER_NAME 8
#define LEN_FLIGHT_MODE_NAME 10 #define LEN_FLIGHT_MODE_NAME 10
#define LEN_BITMAP_NAME 10 #define LEN_BITMAP_NAME 10 // TODO next EEPROM change: we need 14 here as we have to store the file extension
#define LEN_EXPOMIX_NAME 6 #define LEN_EXPOMIX_NAME 6
#define LEN_CHANNEL_NAME 6 #define LEN_CHANNEL_NAME 6
#define LEN_INPUT_NAME 4 #define LEN_INPUT_NAME 4
@ -175,7 +175,7 @@ enum CurveType {
#define LEN_TIMER_NAME 8 #define LEN_TIMER_NAME 8
#define LEN_FLIGHT_MODE_NAME 10 #define LEN_FLIGHT_MODE_NAME 10
#define LEN_BITMAP_NAME 10 #define LEN_BITMAP_NAME 10
#define LEN_EXPOMIX_NAME 8 #define LEN_EXPOMIX_NAME 8 // TODO next EEPROM change: 6 seem enough
#define LEN_CHANNEL_NAME 6 #define LEN_CHANNEL_NAME 6
#define LEN_INPUT_NAME 4 #define LEN_INPUT_NAME 4
#define LEN_CURVE_NAME 3 #define LEN_CURVE_NAME 3