- min_pres = f->pres.data[pres_i].value;
- height = cc_barometer_to_altitude(min_pres) -
- cc_barometer_to_altitude(f->ground_pres);
- printf ("\tMax height: %9.2fm %9.2fft %9.2fs\n",
- height, height * 100 / 2.54 / 12,
- (f->pres.data[pres_i].time - boost_start) / 100.0);
+ if (pres_i >= 0)
+ {
+ min_pres = f->pres.data[pres_i].value;
+ height = cc_barometer_to_altitude(min_pres) -
+ cc_barometer_to_altitude(f->ground_pres);
+ fprintf(summary_file, "\tMax height: %9.2fm %9.2fft %9.2fs\n",
+ height, height * 100 / 2.54 / 12,
+ (f->pres.data[pres_i].time - boost_start) / 100.0);
+ }
+ }
+ if (cooked && detail_file) {
+ double apogee_time;
+ double max_height = 0;
+ int i;
+
+ for (i = 0; i < cooked->pres_pos.num; i++) {
+ if (cooked->pres_pos.data[i] > max_height) {
+ max_height = cooked->pres_pos.data[i];
+ apogee_time = cooked->pres_pos.start + cooked->pres_pos.step * i;
+ }
+ }
+ fprintf(detail_file, "%9s %9s %9s %9s\n",
+ "time", "height", "speed", "accel");
+ for (i = 0; i < cooked->pres_pos.num; i++) {
+ double time = (cooked->accel_accel.start + i * cooked->accel_accel.step - boost_start) / 100.0;
+ double accel = cooked->accel_accel.data[i];
+ double pos = cooked->pres_pos.data[i];
+ double speed;
+ if (cooked->pres_pos.start + cooked->pres_pos.step * i < apogee_time)
+ speed = cooked->accel_speed.data[i];
+ else
+ speed = cooked->pres_speed.data[i];
+ fprintf(detail_file, "%9.2f %9.2f %9.2f %9.2f\n",
+ time, pos, speed, accel);
+ }