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:
parent
ecb5416057
commit
aade6933ea
4 changed files with 21 additions and 17 deletions
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue