projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Switch telemini from v0.1 to v1.0
[fw/altos]
/
src
/
ao.h
diff --git
a/src/ao.h
b/src/ao.h
index 08f45275fd4e51e34d3b92a2f738ea786d587782..bb3c80ec2ddbb5e8580eb1f8fa9655a58914dec9 100644
(file)
--- a/
src/ao.h
+++ b/
src/ao.h
@@
-367,10
+367,10
@@
enum ao_cmd_status {
ao_cmd_syntax_error = 2,
};
ao_cmd_syntax_error = 2,
};
-extern __
x
data uint16_t ao_cmd_lex_i;
-extern __
x
data uint32_t ao_cmd_lex_u32;
-extern __
x
data char ao_cmd_lex_c;
-extern __
x
data enum ao_cmd_status ao_cmd_status;
+extern __
p
data uint16_t ao_cmd_lex_i;
+extern __
p
data uint32_t ao_cmd_lex_u32;
+extern __
p
data char ao_cmd_lex_c;
+extern __
p
data enum ao_cmd_status ao_cmd_status;
void
ao_cmd_lex(void);
void
ao_cmd_lex(void);
@@
-395,7
+395,7
@@
ao_match_word(__code char *word);
struct ao_cmds {
void (*func)(void);
struct ao_cmds {
void (*func)(void);
-
const char
*help;
+
__code char
*help;
};
void
};
void
@@
-464,16
+464,16
@@
ao_mutex_put(__xdata uint8_t *ao_mutex) __reentrant;
*/
/* Total bytes of available storage */
*/
/* Total bytes of available storage */
-extern __
x
data uint32_t ao_storage_total;
+extern __
p
data uint32_t ao_storage_total;
/* Block size - device is erased in these units. At least 256 bytes */
/* Block size - device is erased in these units. At least 256 bytes */
-extern __
x
data uint32_t ao_storage_block;
+extern __
p
data uint32_t ao_storage_block;
/* Byte offset of config block. Will be ao_storage_block bytes long */
/* Byte offset of config block. Will be ao_storage_block bytes long */
-extern __
x
data uint32_t ao_storage_config;
+extern __
p
data uint32_t ao_storage_config;
/* Storage unit size - device reads and writes must be within blocks of this size. Usually 256 bytes. */
/* Storage unit size - device reads and writes must be within blocks of this size. Usually 256 bytes. */
-extern __
x
data uint16_t ao_storage_unit;
+extern __
p
data uint16_t ao_storage_unit;
#define AO_STORAGE_ERASE_LOG (ao_storage_config + AO_CONFIG_MAX_SIZE)
#define AO_STORAGE_ERASE_LOG (ao_storage_config + AO_CONFIG_MAX_SIZE)
@@
-535,7
+535,7
@@
extern __pdata uint32_t ao_log_current_pos;
extern __pdata uint32_t ao_log_end_pos;
extern __pdata uint32_t ao_log_start_pos;
extern __xdata uint8_t ao_log_running;
extern __pdata uint32_t ao_log_end_pos;
extern __pdata uint32_t ao_log_start_pos;
extern __xdata uint8_t ao_log_running;
-extern __
x
data enum flight_state ao_log_state;
+extern __
p
data enum flight_state ao_log_state;
/* required functions from the underlying log system */
/* required functions from the underlying log system */
@@
-707,7
+707,7
@@
enum ao_flight_state {
extern __pdata enum ao_flight_state ao_flight_state;
extern __pdata uint16_t ao_launch_time;
extern __pdata enum ao_flight_state ao_flight_state;
extern __pdata uint16_t ao_launch_time;
-extern __
x
data uint8_t ao_flight_force_idle;
+extern __
p
data uint8_t ao_flight_force_idle;
/* Flight thread */
void
/* Flight thread */
void
@@
-803,13
+803,13
@@
extern __data uint8_t ao_sample_adc; /* Ring position of last processed sample
extern __pdata int16_t ao_sample_accel; /* most recent accel sensor reading */
#endif
extern __pdata int16_t ao_sample_accel; /* most recent accel sensor reading */
#endif
-extern __
x
data int16_t ao_ground_pres; /* startup pressure */
-extern __
x
data int16_t ao_ground_height; /* MSL of ao_ground_pres */
+extern __
p
data int16_t ao_ground_pres; /* startup pressure */
+extern __
p
data int16_t ao_ground_height; /* MSL of ao_ground_pres */
#if HAS_ACCEL
#if HAS_ACCEL
-extern __
x
data int16_t ao_ground_accel; /* startup acceleration */
-extern __
x
data int16_t ao_accel_2g; /* factory accel calibration */
-extern __
x
data int32_t ao_accel_scale; /* sensor to m/s² conversion */
+extern __
p
data int16_t ao_ground_accel; /* startup acceleration */
+extern __
p
data int16_t ao_accel_2g; /* factory accel calibration */
+extern __
p
data int32_t ao_accel_scale; /* sensor to m/s² conversion */
#endif
void ao_sample_init(void);
#endif
void ao_sample_init(void);
@@
-829,6
+829,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_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;
extern __pdata int16_t ao_error_h;
extern __pdata int16_t ao_error_h_sq_avg;
@@
-1018,8
+1019,9
@@
struct ao_telemetry_configuration {
uint16_t flight; /* 6 flight number */
uint8_t config_major; /* 8 Config major version */
uint8_t config_minor; /* 9 Config minor version */
uint16_t flight; /* 6 flight number */
uint8_t config_major; /* 8 Config major version */
uint8_t config_minor; /* 9 Config minor version */
- uint16_t main_deploy; /* 10 Main deploy alt in meters */
- uint32_t flight_log_max; /* 12 Maximum flight log size in bytes */
+ uint16_t apogee_delay; /* 10 Apogee deploy delay in seconds */
+ uint16_t main_deploy; /* 12 Main deploy alt in meters */
+ uint16_t flight_log_max; /* 14 Maximum flight log size in kB */
char callsign[AO_MAX_CALLSIGN]; /* 16 Radio operator identity */
char version[AO_MAX_VERSION]; /* 24 Software version */
/* 32 */
char callsign[AO_MAX_CALLSIGN]; /* 16 Radio operator identity */
char version[AO_MAX_VERSION]; /* 24 Software version */
/* 32 */
@@
-1098,7
+1100,7
@@
union ao_telemetry_all {
#define AO_GPS_DATE_VALID (1 << 6)
#define AO_GPS_COURSE_VALID (1 << 7)
#define AO_GPS_DATE_VALID (1 << 6)
#define AO_GPS_COURSE_VALID (1 << 7)
-extern __
x
data uint16_t ao_gps_tick;
+extern __
p
data uint16_t ao_gps_tick;
extern __xdata uint8_t ao_gps_mutex;
extern __xdata struct ao_telemetry_location ao_gps_data;
extern __xdata struct ao_telemetry_satellite ao_gps_tracking_data;
extern __xdata uint8_t ao_gps_mutex;
extern __xdata struct ao_telemetry_location ao_gps_data;
extern __xdata struct ao_telemetry_satellite ao_gps_tracking_data;
@@
-1310,8
+1312,8
@@
struct ao_stdio {
};
extern __xdata struct ao_stdio ao_stdios[];
};
extern __xdata struct ao_stdio ao_stdios[];
-extern __data int8_t ao_cur_stdio;
-extern __data int8_t ao_num_stdios;
+extern __
p
data int8_t ao_cur_stdio;
+extern __
p
data int8_t ao_num_stdios;
void
flush(void);
void
flush(void);
@@
-1356,7
+1358,7
@@
ao_igniter_init(void);
*/
#define AO_CONFIG_MAJOR 1
*/
#define AO_CONFIG_MAJOR 1
-#define AO_CONFIG_MINOR
4
+#define AO_CONFIG_MINOR
6
struct ao_config {
uint8_t major;
struct ao_config {
uint8_t major;
@@
-1369,8
+1371,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 */
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
extern __xdata struct ao_config ao_config;
#define AO_CONFIG_MAX_SIZE 128