X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao.h;h=1c8f5bbf0b8c88cf0e79f93d41ec29b649f5e3d1;hp=ac5615bb29b63d9a074438b3964c4abf2f67d1e7;hb=bf06af154e232d4caa1585a1d6d5279a075292e4;hpb=038d7b25ba833da4be458409670d3f95e8aaf17b diff --git a/src/ao.h b/src/ao.h index ac5615bb..1c8f5bbf 100644 --- a/src/ao.h +++ b/src/ao.h @@ -464,16 +464,16 @@ ao_mutex_put(__xdata uint8_t *ao_mutex) __reentrant; */ /* Total bytes of available storage */ -extern __xdata uint32_t ao_storage_total; +extern __pdata uint32_t ao_storage_total; /* Block size - device is erased in these units. At least 256 bytes */ -extern __xdata uint32_t ao_storage_block; +extern __pdata uint32_t ao_storage_block; /* Byte offset of config block. Will be ao_storage_block bytes long */ -extern __xdata uint32_t ao_storage_config; +extern __pdata uint32_t ao_storage_config; /* Storage unit size - device reads and writes must be within blocks of this size. Usually 256 bytes. */ -extern __xdata uint16_t ao_storage_unit; +extern __pdata uint16_t ao_storage_unit; #define AO_STORAGE_ERASE_LOG (ao_storage_config + AO_CONFIG_MAX_SIZE) @@ -539,6 +539,15 @@ extern __pdata enum flight_state ao_log_state; /* 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); @@ -829,6 +838,7 @@ extern __pdata int16_t ao_height; /* meters */ extern __pdata int16_t ao_speed; /* m/s * 16 */ extern __pdata int16_t ao_accel; /* m/s² * 16 */ extern __pdata int16_t ao_max_height; /* max of ao_height */ +extern __pdata int16_t ao_avg_height; /* running average of height */ extern __pdata int16_t ao_error_h; extern __pdata int16_t ao_error_h_sq_avg; @@ -1349,6 +1359,9 @@ enum ao_igniter_status { enum ao_igniter_status ao_igniter_status(enum ao_igniter igniter); +void +ao_ignite_set_pins(void); + void ao_igniter_init(void); @@ -1357,7 +1370,7 @@ ao_igniter_init(void); */ #define AO_CONFIG_MAJOR 1 -#define AO_CONFIG_MINOR 4 +#define AO_CONFIG_MINOR 6 struct ao_config { uint8_t major; @@ -1370,8 +1383,18 @@ struct ao_config { int16_t accel_minus_g; /* minor version 2 */ uint32_t radio_cal; /* minor version 3 */ uint32_t flight_log_max; /* minor version 4 */ + uint8_t ignite_mode; /* minor version 5 */ + uint8_t pad_orientation; /* minor version 6 */ + uint32_t radio_setting; /* minor version 7 */ }; +#define AO_IGNITE_MODE_DUAL 0 +#define AO_IGNITE_MODE_APOGEE 1 +#define AO_IGNITE_MODE_MAIN 2 + +#define AO_PAD_ORIENTATION_ANTENNA_UP 0 +#define AO_PAD_ORIENTATION_ANTENNA_DOWN 1 + extern __xdata struct ao_config ao_config; #define AO_CONFIG_MAX_SIZE 128