VARIO_EXTENDED cosmetic changes

Limits are:
Down speed OFF, -10.0:0.0 in 0.1m step
Up speed 0.0:+1.5 in 0.1m step
to be continued...
This commit is contained in:
maxim.karban@gmail.com
2012-05-03 14:50:34 +00:00
parent df1107b2ea
commit 8f20e423f6
4 changed files with 18 additions and 17 deletions
+6 -9
View File
@@ -644,20 +644,17 @@ void check_frsky()
if (isFunctionActive(FUNC_VARIO)) {
#if defined(AUDIO)
int16_t verticalSpeed = 0;
//vertical speed in 0.01m/s now
//not baro vario only has additional resolution
//A1/A2 need conversion there
//GPS source need precision to be set, my gps gives 0.1m resolution
/*if (g_model.varioSource == BARO_SOURCE_BARO)*/
verticalSpeed = limit((int16_t)(-VARIO_SPEED_LIMIT*100), (int16_t)frskyHubData.varioSpeed, (int16_t)(+VARIO_SPEED_LIMIT*100));
/*else
verticalSpeed = limit((int16_t)-VARIO_SPEED_LIMIT, (int16_t)(frskyHubData.varioSpeed), (int16_t)+VARIO_SPEED_LIMIT)*100;*/
//TODO: get negative values in Up Speed to shift zero, i.e. get positive sound on small negative speeds
// positive values in g_model.varioSpeedUpMin must works same as now
// negative must make an offset in sounds
// also changes need in model_menus.cpp
verticalSpeed = limit((int16_t)(-VARIO_SPEED_LIMIT*100), (int16_t)frskyHubData.varioSpeed, (int16_t)(+VARIO_SPEED_LIMIT*100));
uint8_t SoundAltBeepNextFreq = 0;
uint8_t SoundAltBeepNextTime = 0;
static uint8_t SoundAltBeepFreq = 0;
static uint8_t SoundAltBeepTime = 0;
if ((verticalSpeed < g_model.varioSpeedUpMin*VARIO_SPEED_LIMIT_MUL) && (verticalSpeed > (255 - g_model.varioSpeedDownMin)*(-VARIO_SPEED_LIMIT_MUL))) { //check thresholds here in cm/s
if ((verticalSpeed < g_model.varioSpeedUpMin*VARIO_SPEED_LIMIT_MUL) && (verticalSpeed > (VARIO_SPEED_LIMIT_DOWN_OFF - g_model.varioSpeedDownMin)*(-VARIO_SPEED_LIMIT_MUL))) { //check thresholds here in cm/s
SoundAltBeepNextFreq = (0);
SoundAltBeepNextTime = (0);
}
+6 -3
View File
@@ -68,9 +68,12 @@ class FrskyData: public FrskyRSSI {
#define EARTH_RADIUSKM ((uint32_t)6371)
#define EARTH_RADIUS ((uint32_t)111194)
#define VARIO_QUEUE_LENGTH 5
#define VARIO_SPEED_LIMIT 10 //m/s
#define VARIO_SPEED_LIMIT_MUL 20 //to get 0.2m steps
#define VARIO_QUEUE_LENGTH 5
#define VARIO_SPEED_LIMIT 10 //m/s
#define VARIO_SPEED_LIMIT_MUL 10 //to get 0.2m steps
#define VARIO_SPEED_LIMIT_DOWN_OFF (100+1) //100 steps + OFF
#define VARIO_SPEED_LIMIT_UP_CENTER 15
#define VARIO_SPEED_LIMIT_UP_MAX 31
#if defined(FRSKY_HUB)
PACK(struct FrskyHubData {
+4 -3
View File
@@ -2331,16 +2331,17 @@ void menuProcTelemetry(uint8_t event)
case ITEM_TELEMETRY_VARIO_SPEED:
lcd_puts(4, y, STR_LIMIT);
lcd_outdezAtt(TELEM_COL2, y, -VARIO_SPEED_LIMIT_MUL*(255 - g_model.varioSpeedDownMin), ((attr && m_posHorz==0) ? blink : 0)|PREC2|LEFT);
if(!g_model.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, ((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, 255, EE_MODEL);
g_model.varioSpeedDownMin = checkIncDec(event, g_model.varioSpeedDownMin, 0, VARIO_SPEED_LIMIT_DOWN_OFF, EE_MODEL);
break;
case 1:
CHECK_INCDEC_MODELVAR(event, g_model.varioSpeedUpMin, 0, 15);
CHECK_INCDEC_MODELVAR(event, g_model.varioSpeedUpMin, 0, VARIO_SPEED_LIMIT_UP_MAX);
break;
}
}
+2 -2
View File
@@ -569,8 +569,8 @@ PACK(typedef struct t_ModelData {
// TODO:temporary place, need to move to frskydata
uint8_t varioSource:4;
uint8_t varioSpeedUpMin:4; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin;
uint8_t varioSpeedUpMin:5; // if increment in 0.2m/s = 3.0m/s max
uint8_t varioSpeedDownMin:7;
}) ModelData;
extern EEGeneral g_eeGeneral;