From 28a6127668a333f5d6a6234e2ee4527267c459d2 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Aug 2011 13:12:05 -0700 Subject: [PATCH] altos: Report log format in the version command Cherry-pick from 8624213ee204bfdcb219c65b3618751d8278d9db This will make it easier to figure out what the contents of the flash should look like from altosui; the current 'guessing' mechanism will not scale to many more formats. Signed-off-by: Keith Packard --- src-avr/ao.h | 9 +++++++++ src-avr/ao_cmd.c | 3 +++ src-avr/ao_log.c | 2 ++ src-avr/ao_log_telescience.c | 2 ++ src-avr/ao_log_tiny.c | 2 ++ src-avr/ao_pins.h | 5 +++++ src-avr/ao_telebt.c | 2 ++ 7 files changed, 25 insertions(+) diff --git a/src-avr/ao.h b/src-avr/ao.h index 9ff9dc25..c5032d16 100644 --- a/src-avr/ao.h +++ b/src-avr/ao.h @@ -594,6 +594,15 @@ extern struct ao_log_telescience ao_log_store; /* required functions from the underlying log system */ +#define AO_LOG_FORMAT_UNKNOWN 0 /* unknown; altosui will have to guess */ +#define AO_LOG_FORMAT_FULL 1 /* 8 byte typed log records */ +#define AO_LOG_FORMAT_TINY 2 /* two byte state/baro records */ +#define AO_LOG_FORMAT_TELEMETRY 3 /* 32 byte ao_telemetry records */ +#define AO_LOG_FORMAT_TELESCIENCE 4 /* 32 byte typed telescience records */ +#define AO_LOG_FORMAT_NONE 127 /* No log at all */ + +extern __code uint8_t ao_log_format; + /* Return the flight number from the given log slot, 0 if none */ uint16_t ao_log_flight(uint8_t slot); diff --git a/src-avr/ao_cmd.c b/src-avr/ao_cmd.c index 131c3d89..c36b9d94 100644 --- a/src-avr/ao_cmd.c +++ b/src-avr/ao_cmd.c @@ -223,6 +223,9 @@ version(void) printf("manufacturer %s\n", ao_manufacturer); printf("product %s\n", ao_product); // printf("serial-number %u\n", ao_romconfig.serial_number); +#if HAS_LOG + printf("log-format %u\n", ao_log_format); +#endif printf("software-version %s\n", ao_version); } diff --git a/src-avr/ao_log.c b/src-avr/ao_log.c index 433e9c3a..3dc2ee1e 100644 --- a/src-avr/ao_log.c +++ b/src-avr/ao_log.c @@ -24,6 +24,8 @@ __xdata uint8_t ao_log_running; __xdata enum flight_state ao_log_state; __xdata uint16_t ao_flight_number; +__code uint8_t ao_log_format = AO_LOG_FORMAT_FULL; + void ao_log_flush(void) { diff --git a/src-avr/ao_log_telescience.c b/src-avr/ao_log_telescience.c index 387eb6ea..18d836d0 100644 --- a/src-avr/ao_log_telescience.c +++ b/src-avr/ao_log_telescience.c @@ -35,6 +35,8 @@ struct ao_log_telescience ao_log_fetch; static uint8_t ao_log_adc_pos; +__code uint8_t ao_log_format = AO_LOG_FORMAT_TELESCIENCE; + static uint8_t ao_log_csum(__xdata uint8_t *b) __reentrant { diff --git a/src-avr/ao_log_tiny.c b/src-avr/ao_log_tiny.c index d26e0080..d5a3b99f 100644 --- a/src-avr/ao_log_tiny.c +++ b/src-avr/ao_log_tiny.c @@ -28,6 +28,8 @@ static __data uint16_t ao_log_tiny_interval; #define AO_PAD_RING 2 #endif +__code uint8_t ao_log_format = AO_LOG_FORMAT_TINY; + void ao_log_tiny_set_interval(uint16_t ticks) { diff --git a/src-avr/ao_pins.h b/src-avr/ao_pins.h index afe1e941..feffd5ee 100644 --- a/src-avr/ao_pins.h +++ b/src-avr/ao_pins.h @@ -259,6 +259,7 @@ #ifdef TELESCIENCE #define LEDS_AVAILABLE 0 #define HAS_USB 1 + #define HAS_LOG 1 #define TEENSY 0 #define USE_SERIAL_STDIN 1 #define HAS_SERIAL_1 1 @@ -346,6 +347,10 @@ #error Please define HAS_ADC #endif +#ifndef HAS_LOG +#define HAS_LOG HAS_EEPROM +#endif + #ifndef HAS_EEPROM #error Please define HAS_EEPROM #endif diff --git a/src-avr/ao_telebt.c b/src-avr/ao_telebt.c index 295f0cec..c49ce770 100644 --- a/src-avr/ao_telebt.c +++ b/src-avr/ao_telebt.c @@ -17,6 +17,8 @@ #include "ao.h" +__code uint8_t ao_log_format = AO_LOG_FORMAT_NONE; /* until we actually log stuff */ + void main(void) { -- 2.47.2