projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: Add config and pyro tabs to graph widget
[fw/altos]
/
ao-tools
/
ao-eeprom
/
ao-eeprom.c
diff --git
a/ao-tools/ao-eeprom/ao-eeprom.c
b/ao-tools/ao-eeprom/ao-eeprom.c
index 780badbed3d0d4a9ee56176690aba18777751303..8650f38d7f35e0a947447c065d2abc6f93ca32b3 100644
(file)
--- a/
ao-tools/ao-eeprom/ao-eeprom.c
+++ b/
ao-tools/ao-eeprom/ao-eeprom.c
@@
-148,7
+148,7
@@
ao_thrust(int16_t value, int16_t max_adc, double ref, double r1, double r2)
}
static void
}
static void
-ao_pressure(int16_t value, int16_t max_adc, double ref, double r1, double r2)
+ao_pressure(int16_t value, int16_t max_adc, double ref, double r1, double r2
, double sensor_range
)
{
printf(" pressure %5d", value);
if (r1 && r2 && ref) {
{
printf(" pressure %5d", value);
if (r1 && r2 && ref) {
@@
-156,7
+156,7
@@
ao_pressure(int16_t value, int16_t max_adc, double ref, double r1, double r2)
if (volts < 0.5) volts = 0.5;
if (volts > 4.5) volts = 4.5;
if (volts < 0.5) volts = 0.5;
if (volts > 4.5) volts = 4.5;
- double psi = (volts - 0.5) / 4.0 *
2500.0
;
+ double psi = (volts - 0.5) / 4.0 *
sensor_range
;
double pa = psi_to_pa(psi);
printf(" %9.3f kPa", pa / 1000.0);
}
double pa = psi_to_pa(psi);
printf(" %9.3f kPa", pa / 1000.0);
}
@@
-261,6
+261,7
@@
main (int argc, char **argv)
double sense_r1 = 0.0, sense_r2 = 0.0;
double batt_r1 = 0.0, batt_r2 = 0.0;
double adc_ref = 0.0;
double sense_r1 = 0.0, sense_r2 = 0.0;
double batt_r1 = 0.0, batt_r2 = 0.0;
double adc_ref = 0.0;
+ double pressure_sensor = 0.0;
int16_t max_adc = 0;
switch (eeprom->log_format) {
int16_t max_adc = 0;
switch (eeprom->log_format) {
@@
-315,6
+316,7
@@
main (int argc, char **argv)
break;
case AO_LOG_FORMAT_TELEFIRETWO:
len = 32;
break;
case AO_LOG_FORMAT_TELEFIRETWO:
len = 32;
+ pressure_sensor = 2500.0;
max_adc = 4095;
adc_ref = 3.3;
sense_r1 = batt_r1 = 5600;
max_adc = 4095;
adc_ref = 3.3;
sense_r1 = batt_r1 = 5600;
@@
-352,6
+354,8
@@
main (int argc, char **argv)
len = 2;
break;
case AO_LOG_FORMAT_TELEMEGA_4:
len = 2;
break;
case AO_LOG_FORMAT_TELEMEGA_4:
+ case AO_LOG_FORMAT_TELEMEGA_5:
+ case AO_LOG_FORMAT_TELEMEGA_6:
len = 32;
max_adc= 4095;
adc_ref = 3.3;
len = 32;
max_adc= 4095;
adc_ref = 3.3;
@@
-364,6
+368,7
@@
main (int argc, char **argv)
len = 16;
max_adc = 32767;
adc_ref = 3.3;
len = 16;
max_adc = 32767;
adc_ref = 3.3;
+ pressure_sensor = 1600.0;
batt_r1 = 5600;
batt_r2 = 10000;
sense_r1 = 5600;
batt_r1 = 5600;
batt_r2 = 10000;
sense_r1 = 5600;
@@
-372,6
+377,11
@@
main (int argc, char **argv)
}
if (arg_len)
len = arg_len;
}
if (arg_len)
len = arg_len;
+ if (len == 0) {
+ fprintf(stderr, "Unknown eeprom format %d and no specified length\n",
+ eeprom->log_format);
+ exit(1);
+ }
if (verbose)
printf("config major %d minor %d log format %d total %u len %d\n",
eeprom->config.major,
if (verbose)
printf("config major %d minor %d log format %d total %u len %d\n",
eeprom->config.major,
@@
-418,14
+428,19
@@
main (int argc, char **argv)
case AO_LOG_FORMAT_TELEMEGA_3:
case AO_LOG_FORMAT_EASYMEGA_2:
case AO_LOG_FORMAT_TELEMEGA_4:
case AO_LOG_FORMAT_TELEMEGA_3:
case AO_LOG_FORMAT_EASYMEGA_2:
case AO_LOG_FORMAT_TELEMEGA_4:
+ case AO_LOG_FORMAT_TELEMEGA_5:
+ case AO_LOG_FORMAT_TELEMEGA_6:
log_mega = (struct ao_log_mega *) &eeprom->data[pos];
switch (log_mega->type) {
case AO_LOG_FLIGHT:
log_mega = (struct ao_log_mega *) &eeprom->data[pos];
switch (log_mega->type) {
case AO_LOG_FLIGHT:
- printf(" serial %5u flight %5u ground_accel %6d ground_pres %9u",
+ printf(" serial %5u flight %5u ground_accel %6d ground_pres %9u
kPa %7.1f %7.1f m
",
eeprom->serial_number,
log_mega->u.flight.flight,
log_mega->u.flight.ground_accel,
eeprom->serial_number,
log_mega->u.flight.flight,
log_mega->u.flight.ground_accel,
- log_mega->u.flight.ground_pres);
+ log_mega->u.flight.ground_pres,
+ log_mega->u.flight.ground_pres / 1000.0,
+ ao_pressure_to_altitude(log_mega->u.flight.ground_pres));
+
printf(" along %6d aross %6d through %6d",
log_mega->u.flight.ground_accel_along,
log_mega->u.flight.ground_accel_across,
printf(" along %6d aross %6d through %6d",
log_mega->u.flight.ground_accel_along,
log_mega->u.flight.ground_accel_across,
@@
-522,10
+537,12
@@
main (int argc, char **argv)
log_mini = (struct ao_log_mini *) &eeprom->data[pos];
switch (log_mini->type) {
case AO_LOG_FLIGHT:
log_mini = (struct ao_log_mini *) &eeprom->data[pos];
switch (log_mini->type) {
case AO_LOG_FLIGHT:
- printf(" serial %5u flight %5u ground_pres %9u",
+ printf(" serial %5u flight %5u ground_pres %9u
kPa %7.1f %7.1f m
",
eeprom->serial_number,
log_mini->u.flight.flight,
eeprom->serial_number,
log_mini->u.flight.flight,
- log_mini->u.flight.ground_pres);
+ log_mini->u.flight.ground_pres,
+ log_mini->u.flight.ground_pres / 1000.0,
+ ao_pressure_to_altitude(log_mini->u.flight.ground_pres));
break;
case AO_LOG_STATE:
ao_state(log_mini->u.state.state,
break;
case AO_LOG_STATE:
ao_state(log_mini->u.state.state,
@@
-551,11
+568,13
@@
main (int argc, char **argv)
log_metrum = (struct ao_log_metrum *) &eeprom->data[pos];
switch (log_metrum->type) {
case AO_LOG_FLIGHT:
log_metrum = (struct ao_log_metrum *) &eeprom->data[pos];
switch (log_metrum->type) {
case AO_LOG_FLIGHT:
- printf(" serial %5u flight %5u ground_accel %6d ground_pres %9u ground_temp %9u",
+ printf(" serial %5u flight %5u ground_accel %6d ground_pres %9u
kPa %7.1f %7.1f m
ground_temp %9u",
eeprom->serial_number,
log_metrum->u.flight.flight,
log_metrum->u.flight.ground_accel,
log_metrum->u.flight.ground_pres,
eeprom->serial_number,
log_metrum->u.flight.flight,
log_metrum->u.flight.ground_accel,
log_metrum->u.flight.ground_pres,
+ log_metrum->u.flight.ground_pres / 1000.0,
+ ao_pressure_to_altitude(log_metrum->u.flight.ground_pres),
log_metrum->u.flight.ground_temp);
break;
case AO_LOG_SENSOR:
log_metrum->u.flight.ground_temp);
break;
case AO_LOG_SENSOR:
@@
-628,7
+647,8
@@
main (int argc, char **argv)
case AO_LOG_SENSOR:
ao_pressure(log_firetwo->u.sensor.pressure,
max_adc, adc_ref,
case AO_LOG_SENSOR:
ao_pressure(log_firetwo->u.sensor.pressure,
max_adc, adc_ref,
- sense_r1, sense_r2);
+ sense_r1, sense_r2,
+ pressure_sensor);
ao_thrust(log_firetwo->u.sensor.thrust,
max_adc, adc_ref,
sense_r1, sense_r2);
ao_thrust(log_firetwo->u.sensor.thrust,
max_adc, adc_ref,
sense_r1, sense_r2);