diff options
| -rw-r--r-- | src/ao_flight_test.c | 77 | ||||
| -rwxr-xr-x | src/test/run-one | 3 | ||||
| -rwxr-xr-x | src/test/run-tests | 2 | 
3 files changed, 43 insertions, 39 deletions
| diff --git a/src/ao_flight_test.c b/src/ao_flight_test.c index 51a5965c..91aa0f73 100644 --- a/src/ao_flight_test.c +++ b/src/ao_flight_test.c @@ -130,7 +130,7 @@ int	ao_flight_debug;  FILE *emulator_in;  char *emulator_app;  char *emulator_name; -double emulator_error_max = 10; +double emulator_error_max = 4;  void  ao_dump_state(void); @@ -190,6 +190,33 @@ static int	ao_test_main_height;  static double	ao_test_main_height_time;  void +ao_test_exit(void) +{ +	double	drogue_error; +	double	main_error; + +	if (!ao_test_main_height_time) { +		ao_test_main_height_time = ao_test_max_height_time; +		ao_test_main_height = ao_test_max_height; +	} +	drogue_error = fabs(ao_test_max_height_time - drogue_time); +	main_error = fabs(ao_test_main_height_time - main_time); +	if (drogue_error > emulator_error_max || main_error > emulator_error_max) { +		printf ("%s %s\n", +			emulator_app, emulator_name); +		printf ("\tApogee error %g\n", drogue_error); +		printf ("\tMain error %g\n", main_error); +		printf ("\tActual: apogee: %d at %7.2f main: %d at %7.2f\n", +			ao_test_max_height, ao_test_max_height_time, +			ao_test_main_height, ao_test_main_height_time); +		printf ("\tComputed: apogee: %d at %7.2f main: %d at %7.2f\n", +			drogue_height, drogue_time, main_height, main_time); +		exit (1); +	} +	exit(0); +} + +void  ao_insert(void)  {  	double	time; @@ -207,6 +234,16 @@ ao_insert(void)  			tick_offset += 65536;  		prev_tick = ao_adc_static.tick;  		time = (double) (ao_adc_static.tick + tick_offset) / 100; + +		if (ao_test_max_height < height) { +			ao_test_max_height = height; +			ao_test_max_height_time = time; +		} +		if (height > ao_config.main_deploy) { +			ao_test_main_height_time = time; +			ao_test_main_height = height; +		} +  		if (!ao_summary) {  			printf("%7.2f height %g accel %g state %s k_height %g k_speed %g k_accel %g drogue %d main %d error %d\n",  			       time, @@ -219,44 +256,10 @@ ao_insert(void)  			       drogue_height,  			       main_height,  			       ao_error_h_sq_avg); +			if (ao_flight_state == ao_flight_landed) +				ao_test_exit();  		} - -		if (ao_test_max_height < height) { -			ao_test_max_height = height; -			ao_test_max_height_time = time; -		} -		if (height > ao_config.main_deploy) { -			ao_test_main_height_time = time; -			ao_test_main_height = height; -		} -	} -} - -void -ao_test_exit(void) -{ -	double	drogue_error; -	double	main_error; - -	if (!ao_test_main_height_time) { -		ao_test_main_height_time = ao_test_max_height_time; -		ao_test_main_height = ao_test_max_height; -	} -	drogue_error = fabs(ao_test_max_height_time - drogue_time); -	main_error = fabs(ao_test_main_height_time - main_time); -	if (drogue_error > emulator_error_max || main_error > emulator_error_max) { -		printf ("%s %s\n", -			emulator_app, emulator_name); -		printf ("\tApogee error %g\n", drogue_error); -		printf ("\tMain error %g\n", main_error); -		printf ("\tActual: apogee: %d at %7.2f main: %d at %7.2f\n", -			ao_test_max_height, ao_test_max_height_time, -			ao_test_main_height, ao_test_main_height_time); -		printf ("\tComputed: apogee: %d at %7.2f main: %d at %7.2f\n", -			drogue_height, drogue_time, main_height, main_time); -		exit (1);  	} -	exit(0);  }  void diff --git a/src/test/run-one b/src/test/run-one index d661abec..7d0f95ae 100755 --- a/src/test/run-one +++ b/src/test/run-one @@ -3,13 +3,14 @@  for i in "$@"; do  ./ao_flight_test "$i" > run-out.full  ./ao_flight_test_baro "$i" > run-out.baro -#./ao_flight_test_accel "$i" > run-out.accel +#./ao_flight_test_accel "$i" > run-out.accel  #"run-out.accel" using 1:9 with lines lt 4 axes x1y1 title "accel height",\  #"run-out.accel" using 1:11 with lines lt 4 axes x1y2 title "accel speed",\  #"run-out.accel" using 1:13 with lines lt 4 axes x1y2 title "accel accel",\  #"run-out.accel" using 1:15 with lines lt 4 axes x1y1 title "accel drogue",\  #"run-out.accel" using 1:17 with lines lt 4 axes x1y1 title "accel main",\ +#  gnuplot << EOF  set ylabel "altitude (m)" diff --git a/src/test/run-tests b/src/test/run-tests index 11b4c95c..3e0cad3c 100755 --- a/src/test/run-tests +++ b/src/test/run-tests @@ -4,7 +4,7 @@ DIR=~/src/cc1111/flights  bad_baro=0  bad_full=0 -while read flight; do +while read flight description; do      if ./ao_flight_test_baro -s $DIR/$flight; then  	:      else | 
