diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kernel/ao.h | 6 | ||||
| -rw-r--r-- | src/kernel/ao_config.c | 50 | ||||
| -rw-r--r-- | src/kernel/ao_tracker.h | 27 | 
3 files changed, 77 insertions, 6 deletions
| 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 <ao_beep.h>  #endif +#if HAS_TRACKER +#include <ao_tracker.h> +#endif  __xdata struct ao_config ao_config;  __pdata uint8_t ao_config_loaded; @@ -178,6 +181,12 @@ _ao_config_get(void)  		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 <n,?>\0Configure pyro channels", +	{ "P <n,?>\0Pyro channels",  	  ao_pyro_set, ao_pyro_show },  #endif  #if HAS_APRS @@ -748,9 +784,13 @@ __code struct ao_config_var ao_config_vars[] = {  	  ao_config_aprs_set, ao_config_aprs_show },  #endif  #if HAS_BEEP_CONFIG -	{ "b <val>\0Configure beeper tone (freq = 1/2 (24e6/32) / beep", +	{ "b <val>\0Beeper tone (freq = 1/2 (24e6/32) / beep",  	  ao_config_beep_set, ao_config_beep_show },  #endif +#if HAS_TRACKER +	{ "t <horiz> <vert>\0Tracker start trigger distances", +	  ao_config_tracker_set, ao_config_tracker_show }, +#endif  	{ "s\0Show",  	  ao_config_show,		0 },  #if HAS_EEPROM 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 <keithp@keithp.com> + * + * 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_ */ | 
