A few new changes in EEPROM which were in the TODO list
This commit is contained in:
+6
-6
@@ -278,7 +278,7 @@ void parseTelemHubByte(uint8_t byte)
|
||||
// First received barometer altitude => Altitude offset
|
||||
if (!frskyData.hub.baroAltitudeOffset)
|
||||
frskyData.hub.baroAltitudeOffset = -frskyData.hub.baroAltitude_bp;
|
||||
if (g_model.varioSource == VARIO_SOURCE_BARO_V1) {
|
||||
if (g_model.frsky.varioSource == VARIO_SOURCE_BARO_V1) {
|
||||
evalVario(frskyData.hub.baroAltitude_bp, 0);
|
||||
}
|
||||
frskyData.hub.baroAltitude_bp += frskyData.hub.baroAltitudeOffset;
|
||||
@@ -286,7 +286,7 @@ void parseTelemHubByte(uint8_t byte)
|
||||
break;
|
||||
|
||||
case offsetof(FrskyHubData, baroAltitude_ap):
|
||||
if (g_model.varioSource == VARIO_SOURCE_BARO_V2) {
|
||||
if (g_model.frsky.varioSource == VARIO_SOURCE_BARO_V2) {
|
||||
evalVario(frskyData.hub.baroAltitude_bp-frskyData.hub.baroAltitudeOffset, frskyData.hub.baroAltitude_ap);
|
||||
}
|
||||
break;
|
||||
@@ -390,8 +390,8 @@ void processFrskyPacket(uint8_t *packet)
|
||||
frskyData.rssi[0].set(packet[3]);
|
||||
frskyData.rssi[1].set(packet[4] / 2);
|
||||
frskyStreaming = FRSKY_TIMEOUT10ms; // reset counter only if valid frsky packets are being detected
|
||||
if (g_model.varioSource >= VARIO_SOURCE_A1) {
|
||||
frskyData.hub.varioSpeed = applyChannelRatio(g_model.varioSource - VARIO_SOURCE_A1, frskyData.analog[g_model.varioSource - VARIO_SOURCE_A1].value);
|
||||
if (g_model.frsky.varioSource >= VARIO_SOURCE_A1) {
|
||||
frskyData.hub.varioSpeed = applyChannelRatio(g_model.frsky.varioSource - VARIO_SOURCE_A1, frskyData.analog[g_model.frsky.varioSource - VARIO_SOURCE_A1].value);
|
||||
}
|
||||
break;
|
||||
#if defined(FRSKY_HUB) || defined (WS_HOW_HIGH)
|
||||
@@ -1108,8 +1108,8 @@ uint8_t getTelemCustomField(uint8_t line, uint8_t col)
|
||||
#if defined(PCBARM)
|
||||
return g_model.frsky.lines[2*line+col];
|
||||
#else
|
||||
uint8_t result = (col==0 ? (g_model.frskyLines[line] & 0x0f) : ((g_model.frskyLines[line] & 0xf0) / 16));
|
||||
result += (((g_model.frskyLinesXtra >> (4*line+2*col)) & 0x03) * 16);
|
||||
uint8_t result = (col==0 ? (g_model.frsky.lines[line] & 0x0f) : ((g_model.frsky.lines[line] & 0xf0) / 16));
|
||||
result += (((g_model.frsky.linesXtra >> (4*line+2*col)) & 0x03) * 16);
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
|
||||
+12
-10
@@ -1144,6 +1144,8 @@ void menuProcCurveOne(uint8_t event)
|
||||
case EVT_ENTRY:
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
s_editMode = -1;
|
||||
#else
|
||||
s_editMode = 1;
|
||||
#endif
|
||||
killEvents(KEY_MENU);
|
||||
break;
|
||||
@@ -2865,25 +2867,25 @@ void menuProcTelemetry(uint8_t event)
|
||||
|
||||
case ITEM_TELEMETRY_VARIO_SOURCE:
|
||||
lcd_puts(4, y, STR_SOURCE);
|
||||
lcd_putsiAtt(TELEM_COL2, y, STR_VARIOSRC, g_model.varioSource, attr);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, g_model.varioSource, VARIO_SOURCE_FIRST, VARIO_SOURCE_LAST-1);
|
||||
lcd_putsiAtt(TELEM_COL2, y, STR_VARIOSRC, g_model.frsky.varioSource, attr);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioSource, VARIO_SOURCE_FIRST, VARIO_SOURCE_LAST-1);
|
||||
break;
|
||||
|
||||
case ITEM_TELEMETRY_VARIO_SPEED:
|
||||
lcd_puts(4, y, STR_LIMIT);
|
||||
if (!g_model.varioSpeedDownMin)
|
||||
if (!g_model.frsky.varioSpeedDownMin)
|
||||
lcd_putsAtt(TELEM_COL2, y, STR_OFF, ((attr && m_posHorz==0) ? blink : 0));
|
||||
else
|
||||
lcd_outdezAtt(TELEM_COL2, y, -VARIO_SPEED_LIMIT_MUL*(VARIO_SPEED_LIMIT_DOWN_OFF - g_model.varioSpeedDownMin), ((attr && m_posHorz==0) ? blink : 0)|PREC2|LEFT);
|
||||
lcd_outdezAtt(TELEM_COL2+6*FW, y, VARIO_SPEED_LIMIT_MUL*(g_model.varioSpeedUpMin - VARIO_SPEED_LIMIT_UP_CENTER), ((attr && m_posHorz==1) ? blink : 0)|PREC2|LEFT);
|
||||
lcd_outdezAtt(TELEM_COL2, y, -VARIO_SPEED_LIMIT_MUL*(VARIO_SPEED_LIMIT_DOWN_OFF - g_model.frsky.varioSpeedDownMin), ((attr && m_posHorz==0) ? blink : 0)|PREC2|LEFT);
|
||||
lcd_outdezAtt(TELEM_COL2+6*FW, y, VARIO_SPEED_LIMIT_MUL*(g_model.frsky.varioSpeedUpMin - VARIO_SPEED_LIMIT_UP_CENTER), ((attr && m_posHorz==1) ? blink : 0)|PREC2|LEFT);
|
||||
|
||||
if (attr && (s_editMode>0 || p1valdiff)) {
|
||||
switch (m_posHorz) {
|
||||
case 0:
|
||||
g_model.varioSpeedDownMin = checkIncDec(event, g_model.varioSpeedDownMin, 0, VARIO_SPEED_LIMIT_DOWN_OFF, EE_MODEL);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioSpeedDownMin, 0, VARIO_SPEED_LIMIT_DOWN_OFF);
|
||||
break;
|
||||
case 1:
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.varioSpeedUpMin, 0, VARIO_SPEED_LIMIT_UP_MAX);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioSpeedUpMin, 0, VARIO_SPEED_LIMIT_UP_MAX);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2908,11 +2910,11 @@ void menuProcTelemetry(uint8_t event)
|
||||
#if defined (PCBARM)
|
||||
g_model.frsky.lines[2*j+c] = value;
|
||||
#else
|
||||
g_model.frskyLines[j] = (c==0 ? ((g_model.frskyLines[j] & 0xf0) + (value & 0x0f)) : (g_model.frskyLines[j] & 0x0f) + ((value & 0x0f) << 4));
|
||||
g_model.frsky.lines[j] = (c==0 ? ((g_model.frsky.lines[j] & 0xf0) + (value & 0x0f)) : (g_model.frsky.lines[j] & 0x0f) + ((value & 0x0f) << 4));
|
||||
uint16_t mask = 0x3 << (4*j+2*c);
|
||||
g_model.frskyLinesXtra &= ~mask;
|
||||
g_model.frsky.linesXtra &= ~mask;
|
||||
mask = (value / 16) << (4*j+2*c);
|
||||
g_model.frskyLinesXtra |= mask;
|
||||
g_model.frsky.linesXtra |= mask;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
+30
-33
@@ -458,7 +458,7 @@ PACK(typedef struct t_FrSkyBarData {
|
||||
}) FrSkyBarData;
|
||||
#else
|
||||
PACK(typedef struct t_FrSkyBarData {
|
||||
uint16_t source:4; // TODO modification in next EEPROM
|
||||
uint16_t source:4;
|
||||
uint16_t barMin:6; // minimum for bar display
|
||||
uint16_t barMax:6; // ditto for max display (would usually = ratio)
|
||||
}) FrSkyBarData;
|
||||
@@ -479,25 +479,38 @@ enum FrskySource {
|
||||
};
|
||||
|
||||
#if defined(PCBARM)
|
||||
#define CUSTOM_TELEMETRY_VIEW \
|
||||
uint8_t lines[4*2*2]; \
|
||||
uint8_t spare[4]
|
||||
PACK(typedef struct t_FrSkyData {
|
||||
FrSkyChannelData channels[2];
|
||||
FrSkyRSSIAlarm rssiAlarms[2];
|
||||
uint8_t usrProto; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
|
||||
uint8_t voltsSource;
|
||||
uint8_t blades; // How many blades for RPMs, 0=2 blades, 1=3 blades
|
||||
uint8_t currentSource;
|
||||
FrSkyBarData bars[4];
|
||||
uint8_t lines[4*2*2];
|
||||
uint8_t varioSource;
|
||||
uint8_t varioSpeedUpMin; // if increment in 0.2m/s = 3.0m/s max
|
||||
uint8_t varioSpeedDownMin;
|
||||
uint8_t spare[4];
|
||||
}) FrSkyData;
|
||||
#else
|
||||
#define CUSTOM_TELEMETRY_VIEW
|
||||
#endif
|
||||
|
||||
PACK(typedef struct t_FrSkyData {
|
||||
FrSkyChannelData channels[2];
|
||||
uint8_t usrProto:2; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh
|
||||
uint8_t voltsSource:2;
|
||||
uint8_t blades:2; // How many blades for RPMs, 0=2 blades, 1=3 blades
|
||||
uint8_t currentSource:2;
|
||||
uint8_t spare1:4;
|
||||
uint8_t voltsSource:3;
|
||||
uint8_t currentSource:3;
|
||||
uint8_t spare2:2;
|
||||
FrSkyBarData bars[4];
|
||||
FrSkyRSSIAlarm rssiAlarms[2];
|
||||
|
||||
CUSTOM_TELEMETRY_VIEW;
|
||||
|
||||
uint8_t lines[4];
|
||||
uint16_t linesXtra;
|
||||
uint8_t varioSource:3;
|
||||
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
|
||||
uint8_t varioSpeedDownMin;
|
||||
}) FrSkyData;
|
||||
#endif
|
||||
|
||||
#ifdef MAVLINK
|
||||
#define ROTARY_TYPE_OFF 0
|
||||
@@ -643,9 +656,9 @@ enum Dsm2Variants {
|
||||
};
|
||||
|
||||
#ifdef MAVLINK
|
||||
#define EXTDATA MavlinkData mavlink
|
||||
#define TELEMETRY_DATA MavlinkData mavlink
|
||||
#else
|
||||
#define EXTDATA FrSkyData frsky
|
||||
#define TELEMETRY_DATA FrSkyData frsky
|
||||
#endif
|
||||
|
||||
#if defined(PCBV4) || defined(PCBARM)
|
||||
@@ -654,15 +667,6 @@ enum Dsm2Variants {
|
||||
#define BeepANACenter uint8_t
|
||||
#endif
|
||||
|
||||
#if !defined(PCBARM)
|
||||
// TODO modification in next EEPROM
|
||||
#define TEMP_CUSTOM_TELEMETRY_VIEW \
|
||||
uint8_t frskyLines[4]; \
|
||||
uint16_t frskyLinesXtra
|
||||
#else
|
||||
#define TEMP_CUSTOM_TELEMETRY_VIEW
|
||||
#endif
|
||||
|
||||
PACK(typedef struct t_ModelData {
|
||||
char name[10]; // must be first for eeLoadModelName
|
||||
TimerData timers[MAX_TIMERS];
|
||||
@@ -674,7 +678,7 @@ PACK(typedef struct t_ModelData {
|
||||
uint8_t pulsePol:1;
|
||||
uint8_t extendedLimits:1;
|
||||
uint8_t extendedTrims:1;
|
||||
uint8_t frskyFas2111:1;
|
||||
uint8_t spare1:1;
|
||||
int8_t ppmDelay;
|
||||
BeepANACenter beepANACenter; // 1<<0->A1.. 1<<6->A7
|
||||
MixData mixData[MAX_MIXERS];
|
||||
@@ -689,23 +693,16 @@ PACK(typedef struct t_ModelData {
|
||||
SwashRingData swashR;
|
||||
PhaseData phaseData[MAX_PHASES];
|
||||
|
||||
EXTDATA;
|
||||
|
||||
int8_t ppmFrameLength; // 0=22.5ms (10ms-30ms) 0.5ms increments
|
||||
uint8_t thrTraceSrc;
|
||||
uint8_t modelId;
|
||||
|
||||
TEMP_CUSTOM_TELEMETRY_VIEW;
|
||||
|
||||
int8_t servoCenter[NUM_CHNOUT];
|
||||
|
||||
// TODO:temporary place, need to move to frskydata
|
||||
uint8_t varioSource:3;
|
||||
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
|
||||
uint8_t varioSpeedDownMin;
|
||||
|
||||
uint8_t switchWarningStates;
|
||||
|
||||
TELEMETRY_DATA;
|
||||
|
||||
ROTARY_ENCODER_ARRAY_EXTRA;
|
||||
}) ModelData;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user