Automatic Model conversion problem on ARM boards (v216 to v217)

This commit is contained in:
bsongis
2014-09-15 10:57:54 +02:00
parent 4b9287ef8a
commit 0ac40ab41f
2 changed files with 44 additions and 3 deletions
+42 -2
View File
@@ -186,6 +186,26 @@ PACK(typedef struct {
char name[LEN_EXPOMIX_NAME];
uint8_t spare2[2];
}) MixData_v215;
PACK(typedef struct {
uint8_t destCh;
uint16_t flightModes;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
uint8_t carryTrim:1;
uint8_t spare1:5;
int16_t weight;
int8_t swtch;
CurveRef curve;
uint8_t mixWarn:4; // mixer warning
uint8_t spare2:4;
uint8_t delayUp;
uint8_t delayDown;
uint8_t speedUp;
uint8_t speedDown;
uint8_t srcRaw;
int16_t offset;
char name[LEN_EXPOMIX_NAME];
uint8_t spare3;
}) MixData_v216;
#else
PACK(typedef struct {
uint8_t destCh;
@@ -208,6 +228,26 @@ PACK(typedef struct {
int16_t offset;
char name[LEN_EXPOMIX_NAME];
}) MixData_v215;
PACK(typedef struct {
uint8_t destCh:5;
uint8_t mixWarn:3; // mixer warning
uint16_t flightModes;
uint8_t curveMode:1;
uint8_t noExpo:1;
int8_t carryTrim:3;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
uint8_t spare:1;
int16_t weight;
int8_t swtch;
int8_t curveParam;
uint8_t delayUp;
uint8_t delayDown;
uint8_t speedUp;
uint8_t speedDown;
uint8_t srcRaw;
int16_t offset;
char name[LEN_EXPOMIX_NAME];
}) MixData_v216;
#endif
PACK(typedef struct {
@@ -353,7 +393,7 @@ PACK(typedef struct {
uint8_t throttleReversed:1;
AVR_FIELD(int8_t ppmDelay)
BeepANACenter beepANACenter; // 1<<0->A1.. 1<<6->A7
MixData mixData[MAX_MIXERS];
MixData_v216 mixData[MAX_MIXERS];
LimitData_v216 limitData[NUM_CHNOUT];
ExpoData expoData[MAX_EXPOS];
@@ -675,7 +715,7 @@ void ConvertModel_215_to_216(ModelData &model)
#endif
for (uint8_t i=0; i<64; i++) {
MixData * mix = &newModel.mixData[i];
MixData_v216 * mix = &newModel.mixData[i];
MixData_v215 * oldMix = &oldModel.mixData[i];
#if defined(PCBTARANIS)
mix->destCh = oldMix->destCh;
+2 -1
View File
@@ -1781,7 +1781,7 @@ enum TelemetryProtocol
PROTOCOL_FRSKY_D_SECONDARY
};
PACK(typedef struct t_ModelData {
PACK(typedef struct {
ModelHeader header;
TimerData timers[MAX_TIMERS];
AVR_FIELD(uint8_t protocol:3)
@@ -1822,6 +1822,7 @@ PACK(typedef struct t_ModelData {
MODELDATA_EXTRA
ARM_FIELD(uint8_t spare3[188]) // TODO dirty hack for eeprom conversions (we load the model inside the g_model structure)
}) ModelData;
extern EEGeneral g_eeGeneral;