diff --git a/doc/Vario.txt b/doc/Vario.txt new file mode 100644 index 0000000..e443822 --- /dev/null +++ b/doc/Vario.txt @@ -0,0 +1,42 @@ +== Vario Module == + +- Pressing the "v" (down) button cycles between displays as follows: + + * vario (in m/s) + Displays a signed fractional value representing the ascent or + descent speed in meters per second. + + * vario (in Pascal) + Displays a signed integer value representing the ascent or + descent speed in Pascal/second. + + * pressure (in hPa) + Displays a signed fraction representing the pressure measured at + the current altitude. + + * max Vz (in m/s) + Displays the maximum vertical speed in meters/second. + + * min Vz (in m/s) + Displays the minimum vertical speed in meters/second. + +- A long press on the "#" button performs a context sensitive function: + + * during vario display, changes the vario sound mode: + Off (default, no symbol displayed) + Ascent 0 (start beeping at 0.0m/s, beeper1 and beeper2 symbols + displayed) + Ascent 1 (start beeping at 0.1m/s, beeper1 symbol displayed) + Both (beep for up or down, beeper1 and beeper2 symbols + displayed) + + Tone frequency, number and duration of beeps depend on climb rate. + + * during max/min Vz display, resets both the max and min values. + +- The "record" icon is flashed at one second intervals, indicating that + the watch is in vario mode and receiving pressure measurements. + + Note that the upper line must be in altimeter mode for the vario to + work, as it relies on updates from the altimeter. If the altimeter + is not active, the vario display shows "noAlt". diff --git a/include/project.h b/include/project.h index 601cfd4..cb5fcfe 100644 --- a/include/project.h +++ b/include/project.h @@ -158,6 +158,8 @@ extern volatile s_message_flags message; // include firmware image #include "../config.h" +// feature dependency calculations + #if defined( CONFIG_PHASE_CLOCK ) || defined( CONFIG_ACCEL) || defined (CONFIG_USE_GPS) #define FEATURE_PROVIDE_ACCEL #endif @@ -166,6 +168,10 @@ extern volatile s_message_flags message; #define SIMPLICITI_TX_ONLY_REQ #endif +#if defined (CONFIG_ALTITUDE) || defined (CONFIG_VARIO) + #define FEATURE_ALTITUDE +#endif + #if defined(CONFIG_INFOMEM) && !defined(CONFIG_SIDEREAL) //undefine feature if it is not used by any option diff --git a/logic/altitude.c b/logic/altitude.c index df7e1ef..90f1867 100644 --- a/logic/altitude.c +++ b/logic/altitude.c @@ -42,7 +42,7 @@ // system #include "project.h" -#ifdef CONFIG_ALTITUDE +#ifdef FEATURE_ALTITUDE // driver #include "altitude.h" @@ -368,6 +368,7 @@ void mx_altitude(u8 line) // u8 update DISPLAY_LINE_UPDATE_FULL, DISPLAY_LINE_UPDATE_PARTIAL, DISPLAY_LINE_CLEAR // @return none // ************************************************************************************************* +#ifdef CONFIG_ALTITUDE void display_altitude(u8 line, u8 update) { u8 * str; @@ -465,5 +466,6 @@ void display_altitude(u8 line, u8 update) display_symbol(LCD_SYMB_ARROW_DOWN, SEG_OFF); } } - #endif // CONFIG_ALTITUDE + +#endif // FEATURE_ALTITUDE