summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-08-13 13:12:05 -0700
committerKeith Packard <keithp@keithp.com>2011-08-13 13:14:26 -0700
commit28a6127668a333f5d6a6234e2ee4527267c459d2 (patch)
tree10333f951a64b9045cd308158caff105aa3d392c
parent91785e03363f328b644f2c03b5438235f3a44c3e (diff)
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 <keithp@keithp.com>
-rw-r--r--src-avr/ao.h9
-rw-r--r--src-avr/ao_cmd.c3
-rw-r--r--src-avr/ao_log.c2
-rw-r--r--src-avr/ao_log_telescience.c2
-rw-r--r--src-avr/ao_log_tiny.c2
-rw-r--r--src-avr/ao_pins.h5
-rw-r--r--src-avr/ao_telebt.c2
7 files changed, 25 insertions, 0 deletions
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)
{