EEPROM conversion fix (sensors physID)

This commit is contained in:
Bertrand Songis
2019-06-19 09:32:22 +02:00
parent 510a1cf276
commit ea0da791f9
2 changed files with 7 additions and 3 deletions
+3 -2
View File
@@ -334,7 +334,8 @@ PACK(struct TelemetrySensor {
};
char label[TELEM_LABEL_LEN]; // user defined label
uint8_t subId;
uint8_t type:2; // 0=custom / 1=calculated// user can choose what unit to display each value in
uint8_t type:1; // 0=custom / 1=calculated // user can choose what unit to display each value in
uint8_t spare1:1;
uint8_t unit:6;
uint8_t prec:2;
uint8_t autoOffset:1;
@@ -342,7 +343,7 @@ PACK(struct TelemetrySensor {
uint8_t logs:1;
uint8_t persistent:1;
uint8_t onlyPositive:1;
uint8_t spare:1;
uint8_t spare2:1;
union {
NOBACKUP(PACK(struct {
uint16_t ratio;
@@ -216,7 +216,10 @@ void convertModelData_218_to_219(ModelData &model)
for (uint8_t i=0; i<MAX_TELEMETRY_SENSORS_218; i++) {
newModel.telemetrySensors[i].id = oldModel.telemetrySensors[i].id;
newModel.telemetrySensors[i].instance = 0xE0 + (oldModel.telemetrySensors[i].instance & 0x1F) - 1;
if (oldModel.telemetrySensors[i].type == 0)
newModel.telemetrySensors[i].instance = 0xE0 + (oldModel.telemetrySensors[i].instance & 0x1F) - 1;
else
newModel.telemetrySensors[i].instance = oldModel.telemetrySensors[i].instance;
memcpy(newModel.telemetrySensors[i].label, oldModel.telemetrySensors[i].label, TELEM_LABEL_LEN); // id + instance + label
newModel.telemetrySensors[i].subId = oldModel.telemetrySensors[i].subId;
newModel.telemetrySensors[i].type = oldModel.telemetrySensors[i].type;