first cut at turnon scripts for EasyTimer v2
[fw/altos] / ao-tools / ao-eeprom / ao-eeprom.c
index f63676300ebd76817b3cb6ac462d0d22c69f1af0..8650f38d7f35e0a947447c065d2abc6f93ca32b3 100644 (file)
@@ -354,8 +354,9 @@ main (int argc, char **argv)
                        len = 2;
                        break;
                case AO_LOG_FORMAT_TELEMEGA_4:
+               case AO_LOG_FORMAT_TELEMEGA_5:
+               case AO_LOG_FORMAT_TELEMEGA_6:
                        len = 32;
-                       break;
                        max_adc= 4095;
                        adc_ref = 3.3;
                        batt_r1 = 5600;
@@ -376,6 +377,11 @@ main (int argc, char **argv)
                }
                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,
@@ -422,6 +428,8 @@ 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_5:
+                               case AO_LOG_FORMAT_TELEMEGA_6:
                                        log_mega = (struct ao_log_mega *) &eeprom->data[pos];
                                        switch (log_mega->type) {
                                        case AO_LOG_FLIGHT:
@@ -695,33 +703,47 @@ main (int argc, char **argv)
                                                break;
                                        }
                                        break;
-                               case AO_LOG_FORMAT_DETHERM:
-                                       break;
                                case AO_LOG_FORMAT_EASYMOTOR:
                                        log_motor = (struct ao_log_motor *) &eeprom->data[pos];
                                        switch (log_motor->type) {
                                        case AO_LOG_FLIGHT:
-                                               printf(" serial %5u flight %5u",
+                                               printf(" serial %5u flight %5u ground_accel %6d",
                                                       eeprom->serial_number,
-                                                      log_motor->u.flight.flight);
+                                                      log_motor->u.flight.flight,
+                                                      log_motor->u.flight.ground_accel);
+                                               printf(" along %6d aross %6d through %6d",
+                                                      log_motor->u.flight.ground_accel_along,
+                                                      log_motor->u.flight.ground_accel_across,
+                                                      log_motor->u.flight.ground_accel_through);
+                                               ao_volts("ground pressure",
+                                                        log_motor->u.flight.ground_motor_pressure,
+                                                        max_adc, adc_ref,
+                                                        sense_r1, sense_r2);
                                                break;
                                        case AO_LOG_STATE:
                                                ao_state(log_motor->u.state.state,
                                                         log_motor->u.state.reason);
                                                break;
                                        case AO_LOG_SENSOR:
-                                               ao_pressure(log_motor->u.sensor.pressure,
-                                                           max_adc, adc_ref,
-                                                           sense_r1, sense_r2,
-                                                           pressure_sensor);
+                                               ao_volts("pressure",
+                                                        log_motor->u.sensor.pressure,
+                                                        max_adc, adc_ref,
+                                                        sense_r1, sense_r2);
                                                ao_volts("v_batt",
                                                         log_motor->u.sensor.v_batt,
                                                         max_adc,
-                                                        adc_ref,
-                                                        batt_r1, batt_r2);
+                                                        adc_ref, batt_r1, batt_r2);
+                                               printf(" accel %6d",
+                                                      log_motor->u.sensor.accel);
+                                               printf(" along %6d aross %6d through %6d",
+                                                      log_motor->u.sensor.accel_along,
+                                                      log_motor->u.sensor.accel_across,
+                                                      log_motor->u.sensor.accel_through);
                                                break;
                                        }
                                        break;
+                               case AO_LOG_FORMAT_DETHERM:
+                                       break;
                                }
                        }
                        printf("\n");