- aoview_table_add_row("Ground state", "preparing (%d)",
- NUM_PAD_SAMPLES - npad);
- aoview_table_add_row("Rocket state", "%s", state->state);
- aoview_table_add_row("Callsign", "%s", state->callsign);
- aoview_table_add_row("Rocket serial", "%d", state->serial);
-
- aoview_table_add_row("RSSI", "%ddB", state->rssi);
- aoview_table_add_row("Height", "%dm", altitude);
- aoview_table_add_row("Max height", "%dm",
- aoview_pres_to_altitude(min_pres) -
- aoview_pres_to_altitude(pad_pres));
- aoview_table_add_row("Acceleration", "%gm/s²", accel);
- aoview_table_add_row("Max acceleration", "%gm/s²", max_accel);
- aoview_table_add_row("Velocity", "%gm/s", velocity);
- aoview_table_add_row("Temperature", "%g°C", temp);
- aoview_table_add_row("Battery", "%gV", battery);
- aoview_table_add_row("Drogue", "%gV", drogue_sense);
- aoview_table_add_row("Main", "%gV", main_sense);
- aoview_table_add_row("Pad altitude", "%dm", aoview_pres_to_altitude(pad_pres));
- aoview_table_add_row("Satellites", "%d", state->nsat);
- if (state->locked) {
- aoview_state_add_deg("Latitude", state->lat);
- aoview_state_add_deg("Longitude", state->lon);
- aoview_table_add_row("GPS alt", "%d", state->alt);
- aoview_table_add_row("GPS time", "%02d:%02d:%02d",
- state->gps_time.hour,
- state->gps_time.minute,
- state->gps_time.second);
- aoview_great_circle(pad_lat, pad_lon, state->lat, state->lon,
- &dist, &bearing);
- aoview_table_add_row("Distance from pad", "%gm", dist * 1000);
- aoview_table_add_row("Direction from pad", "%g°", bearing);
+ aoview_table_add_row(0, "Ground state", "waiting for gps (%d)",
+ MIN_PAD_SAMPLES - state->npad);
+ 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, "RSSI", "%6ddBm", state->data.rssi);
+ aoview_table_add_row(0, "Height", "%6dm", state->height);
+ aoview_table_add_row(0, "Max height", "%6dm", state->max_height);
+ aoview_table_add_row(0, "Acceleration", "%7.1fm/s²", state->acceleration);
+ aoview_table_add_row(0, "Max acceleration", "%7.1fm/s²", state->max_acceleration);
+ aoview_table_add_row(0, "Speed", "%7.1fm/s", state->ascent ? state->speed : state->baro_speed);
+ aoview_table_add_row(0, "Max Speed", "%7.1fm/s", state->max_speed);
+ aoview_table_add_row(0, "Temperature", "%6.2f°C", state->temperature);
+ aoview_table_add_row(0, "Battery", "%5.2fV", state->battery);
+ aoview_table_add_row(0, "Drogue", "%5.2fV", state->drogue_sense);
+ aoview_table_add_row(0, "Main", "%5.2fV", state->main_sense);
+ aoview_table_add_row(0, "Pad altitude", "%dm", state->ground_altitude);
+ aoview_table_add_row(1, "Satellites", "%d", state->data.nsat);
+ if (state->data.gps_locked) {
+ aoview_state_add_deg(1, "Latitude", state->data.lat, 'N', 'S');
+ aoview_state_add_deg(1, "Longitude", state->data.lon, 'E', 'W');
+ aoview_table_add_row(1, "GPS height", "%d", state->gps_height);
+ aoview_table_add_row(1, "GPS time", "%02d:%02d:%02d",
+ state->data.gps_time.hour,
+ state->data.gps_time.minute,
+ state->data.gps_time.second);
+ aoview_table_add_row(1, "GPS ground speed", "%7.1fm/s %d°",
+ state->data.ground_speed,
+ state->data.course);
+ aoview_table_add_row(1, "GPS climb rate", "%7.1fm/s",
+ state->data.climb_rate);
+ aoview_table_add_row(1, "GPS precision", "%f(hdop) %dm(h) %dm(v)\n",
+ state->data.hdop, state->data.h_error, state->data.v_error);
+ aoview_table_add_row(1, "Distance from pad", "%5.0fm", state->distance);
+ aoview_table_add_row(1, "Direction from pad", "%4.0f°", state->bearing);
+ } else if (state->data.gps_connected) {
+ aoview_table_add_row(1, "GPS", "unlocked");