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;
bool used;
char name[12+1];
char name[15+1];
TimerData timers[C9X_MAX_TIMERS];
bool noGlobalFunctions;
bool thrTrim; // Enable Throttle Trim

View file

@ -595,11 +595,11 @@ int smallGvarToEEPROM(int gvar)
int smallGvarToC9x(int gvar)
{
if (gvar>110) {
gvar = gvar-128 - 10000;
if (gvar > 110) {
gvar = gvar - 128 - 10000;
}
else if (gvar<-110) {
gvar = gvar+128 + 10001;
else if (gvar < -110) {
gvar = gvar + 128 + 10001;
}
return gvar;
}
@ -753,7 +753,7 @@ class HeliField: public StructField {
public:
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.value));
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.speedUp));
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));
else
internalField.Append(new ZCharField<6>(mix.name));
@ -1169,7 +1171,7 @@ class MixField: public TransformedField {
if (mix.srcRaw.type != SOURCE_TYPE_NONE) {
mix.destCh = _destCh + 1;
if (!IS_TARANIS(board) || version < 216) {
if (!IS_STM32(board) || version < 216) {
if (!_curveMode)
mix.curve = CurveReference(CurveReference::CURVE_REF_DIFF, smallGvarToC9x(_curveParam));
else if (_curveParam > 6)
@ -1236,7 +1238,9 @@ class InputField: public TransformedField {
internalField.Append(new UnsignedField<9>(expo.flightModes));
internalField.Append(new SignedField<8>(_weight, "Weight"));
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));
else
internalField.Append(new ZCharField<6>(expo.name));

View file

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

View file

@ -140,7 +140,7 @@ enum CurveType {
#define LEN_MODEL_NAME 15
#define LEN_TIMER_NAME 8
#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_CHANNEL_NAME 6
#define LEN_INPUT_NAME 4
@ -175,7 +175,7 @@ enum CurveType {
#define LEN_TIMER_NAME 8
#define LEN_FLIGHT_MODE_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_INPUT_NAME 4
#define LEN_CURVE_NAME 3