* Fill out the derived data fields
*/
static void
-aoview_state_derive(struct aodata *data, struct aostate *state)
+aoview_state_derive(struct cc_telem *data, struct aostate *state)
{
int i;
double new_height;
double height_change;
double time_change;
+ double accel_counts_per_mss;
int tick_count;
state->report_time = aoview_time();
state->height = new_height;
if (time_change)
state->baro_speed = (state->baro_speed * 3 + (height_change / time_change)) / 4.0;
- state->acceleration = (data->ground_accel - data->flight_accel) / 27.0;
- state->speed = data->flight_vel / 2700.0;
+ accel_counts_per_mss = ((data->accel_minus_g - data->accel_plus_g) / 2.0) / 9.80665;
+ state->acceleration = (data->ground_accel - data->flight_accel) / accel_counts_per_mss;
+ state->speed = data->flight_vel / (accel_counts_per_mss * 100.0);
state->temperature = ((data->temp / 32767.0 * 3.3) - 0.5) / 0.01;
state->drogue_sense = data->drogue / 32767.0 * 15.0;
state->main_sense = data->main / 32767.0 * 15.0;
}
void
-aoview_state_notify(struct aodata *data)
+aoview_state_notify(struct cc_telem *data)
{
struct aostate *state = &aostate;
aoview_state_derive(data, state);
aoview_table_add_row(0, "Rocket state", "%s", state->data.state);
aoview_table_add_row(0, "Callsign", "%s", state->data.callsign);
aoview_table_add_row(0, "Rocket serial", "%d", state->data.serial);
+ aoview_table_add_row(0, "Rocket flight", "%d", state->data.flight);
aoview_table_add_row(0, "RSSI", "%6ddBm", state->data.rssi);
aoview_table_add_row(0, "Height", "%6dm", state->height);
aoview_state_add_deg(1, "Longitude", state->gps.lon, 'E', 'W');
aoview_table_add_row(1, "GPS altitude", "%d", state->gps.alt);
aoview_table_add_row(1, "GPS height", "%d", state->gps_height);
+ aoview_table_add_row(1, "GPS date", "%04d-%02d-%02d",
+ state->gps.gps_time.year,
+ state->gps.gps_time.month,
+ state->gps.gps_time.day);
aoview_table_add_row(1, "GPS time", "%02d:%02d:%02d",
state->gps.gps_time.hour,
state->gps.gps_time.minute,