From: Keith Packard Date: Wed, 21 May 2014 21:02:35 +0000 (-0700) Subject: altos: Add config values for tracker start motion limits X-Git-Tag: 1.3.2.2~78 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=2625a464417c8475c66101757ca2c30cd6c74e0c altos: Add config values for tracker start motion limits TeleGPS switches from 'pad' to 'drogue' states after the device moves a specified distance from the initial starting point. These values can be configured, and this is the configuration for them. Signed-off-by: Keith Packard --- diff --git a/src/kernel/ao.h b/src/kernel/ao.h index b1f850ba..0ffc647a 100644 --- a/src/kernel/ao.h +++ b/src/kernel/ao.h @@ -753,7 +753,7 @@ extern __xdata uint8_t ao_force_freq; #endif #define AO_CONFIG_MAJOR 1 -#define AO_CONFIG_MINOR 16 +#define AO_CONFIG_MINOR 17 #define AO_AES_LEN 16 @@ -795,6 +795,10 @@ struct ao_config { #if HAS_BEEP uint8_t mid_beep; /* minor version 16 */ #endif +#if HAS_TRACKER + uint16_t tracker_start_horiz; /* minor version 17 */ + uint16_t tracker_start_vert; /* minor version 17 */ +#endif }; #define AO_IGNITE_MODE_DUAL 0 diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c index 411399d7..e5f8efba 100644 --- a/src/kernel/ao_config.c +++ b/src/kernel/ao_config.c @@ -25,6 +25,9 @@ #if HAS_BEEP #include #endif +#if HAS_TRACKER +#include +#endif __xdata struct ao_config ao_config; __pdata uint8_t ao_config_loaded; @@ -177,6 +180,12 @@ _ao_config_get(void) #if HAS_BEEP_CONFIG if (minor < 16) ao_config.mid_beep = AO_BEEP_MID_DEFAULT; +#endif +#if HAS_TRACKER + if (minor < 17) { + ao_config.tracker_start_horiz = AO_CONFIG_DEFAULT_TRACKER_START_HORIZ; + ao_config.tracker_start_vert = AO_CONFIG_DEFAULT_TRACKER_START_VERT; + } #endif ao_config.minor = AO_CONFIG_MINOR; ao_config_dirty = 1; @@ -676,6 +685,33 @@ ao_config_beep_set(void) } #endif +#if HAS_TRACKER +void +ao_config_tracker_show(void) +{ + printf ("Tracker setting: %d %d\n", + ao_config.tracker_start_horiz, + ao_config.tracker_start_vert); +} + +void +ao_config_tracker_set(void) +{ + uint16_t h, v; + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + h = ao_cmd_lex_i; + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + v = ao_cmd_lex_i; + _ao_config_edit_start(); + ao_config.tracker_start_horiz = h; + ao_config.tracker_start_vert = v; + _ao_config_edit_finish(); +} +#endif /* HAS_TRACKER */ struct ao_config_var { __code char *str; @@ -724,7 +760,7 @@ __code struct ao_config_var ao_config_vars[] = { #if HAS_ACCEL { "a <+g> <-g>\0Accel calib (0 for auto)", ao_config_accel_calibrate_set,ao_config_accel_calibrate_show }, - { "o <0 antenna up, 1 antenna down>\0Set pad orientation", + { "o <0 antenna up, 1 antenna down>\0Pad orientation", ao_config_pad_orientation_set,ao_config_pad_orientation_show }, #endif /* HAS_ACCEL */ #if HAS_LOG @@ -732,15 +768,15 @@ __code struct ao_config_var ao_config_vars[] = { ao_config_log_set, ao_config_log_show }, #endif #if HAS_IGNITE - { "i <0 dual, 1 apogee, 2 main>\0Set igniter mode", + { "i <0 dual, 1 apogee, 2 main>\0Igniter mode", ao_config_ignite_mode_set, ao_config_ignite_mode_show }, #endif #if HAS_AES - { "k <32 hex digits>\0Set AES encryption key", + { "k <32 hex digits>\0AES encryption key", ao_config_key_set, ao_config_key_show }, #endif #if AO_PYRO_NUM - { "P \0Configure pyro channels", + { "P \0Pyro channels", ao_pyro_set, ao_pyro_show }, #endif #if HAS_APRS @@ -748,8 +784,12 @@ __code struct ao_config_var ao_config_vars[] = { ao_config_aprs_set, ao_config_aprs_show }, #endif #if HAS_BEEP_CONFIG - { "b \0Configure beeper tone (freq = 1/2 (24e6/32) / beep", + { "b \0Beeper tone (freq = 1/2 (24e6/32) / beep", ao_config_beep_set, ao_config_beep_show }, +#endif +#if HAS_TRACKER + { "t \0Tracker start trigger distances", + ao_config_tracker_set, ao_config_tracker_show }, #endif { "s\0Show", ao_config_show, 0 }, diff --git a/src/kernel/ao_tracker.h b/src/kernel/ao_tracker.h new file mode 100644 index 00000000..43556965 --- /dev/null +++ b/src/kernel/ao_tracker.h @@ -0,0 +1,27 @@ +/* + * Copyright © 2014 Keith Packard + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#ifndef _AO_TRACKER_H_ +#define _AO_TRACKER_H_ + +#define AO_CONFIG_DEFAULT_TRACKER_START_HORIZ 1000 +#define AO_CONFIG_DEFAULT_TRACKER_START_VERT 100 + +void +ao_tracker_init(void); + +#endif /* _AO_TRACKER_H_ */