/* * Header for giotto ROSACE case study */ #ifndef _F_CODE_ #define _F_CODE_ #include "f_table.h" #include "f_spec.h" #include "f_interface.h" #define delta_th_eq (1.5868660794926) #define delta_e_eq (0.012009615652468) extern const double h_eq; extern const double Va_eq; #ifndef NBMAX_SAMPLE #define NBMAX_SAMPLE (6000000/4) #endif typedef enum SAMPLE_RANK { SPL_T, SPL_VA,SPL_AZ,SPL_Q,SPL_VZ,SPL_H, SPL_DELTA_TH_C, SPL_DELTA_E_C, SPL_SIZE } SampleRank_t; extern double sample[SPL_SIZE][NBMAX_SAMPLE]; typedef struct { double h; double az; double vz; double q; double va; } AircraftDynamicsOutput; typedef struct { double vac; double vzf; double qf; double vaf; } VaControlInput; typedef struct { double hf; double hc; } AltitudeHoldInput; typedef struct { double vzc; double azf; double vzf; double qf; } VzControlInput; typedef struct { double T; double delta_e; } AircraftDynamicsInput; typedef int c_int; typedef unsigned c_bool; void h_filter_100(double *h_filter_input_h_filter_h, double *local_output_h_filter_hf); void az_filter_100(double *az_filter_input_az, double *local_output_az_filter_azf); void vz_filter_100(double *vz_filter_input_vz, double *local_output_vz_filter_vzf); void q_filter_100(double *q_filter_input_q, double *local_output_q_filter_qf); void va_filter_100(double *va_filter_input_va, double *local_output_va_filter_vaf); void va_control_50(VaControlInput *va_control_input_va_control, double *local_output_va_control_delta_thc); void altitude_hold_50(AltitudeHoldInput *altitude_hold_input_altitude_hold, double *local_output_altitude_hold_vzc); void vz_control_200(VzControlInput *vz_control_input_vz_control, double *local_output_vz_control_delta_ec); void engine(double *engine_input_engine_delta_thc, double *local_output_engine_T); void elevator(double *elevator_input_elevator_delta_ec, double *local_output_elevator_delta_e); void aircraft_dynamics(AircraftDynamicsInput *aircraft_dynamics_input_aircraft_dynamics, AircraftDynamicsOutput *local_output_aircraft_dynamics_values); unsigned c_true(); void copy_double(double *, double *); void copy_AircraftDynamicsOutput(AircraftDynamicsOutput *, AircraftDynamicsOutput *); void getSensorVAC(double *); void getSensorHC(double *); void InitOuputHF(double *); void InitOuputAZF(double *); void InitOuputVZF(double *); void InitOuputQF(double *); void InitOuputVAF(double *); void InitOutputVAControl(double *); void InitOuputVZC(double *); void InitOutputVZControl(double *); void InitOutputEngineT(double *); void InitOutputElevatorDeltaE(double *); void InitOutputAircraftValues(AircraftDynamicsOutput *); void cp_double_to_double(double *, double *); void cp_h(AircraftDynamicsOutput *global_output_aircraft_dynamics_values, double *h_filter_input_h_filter_h); void cp_az(AircraftDynamicsOutput *global_output_aircraft_dynamics_values, double *az_filter_input_az); void cp_vz(AircraftDynamicsOutput *global_output_aircraft_dynamics_values, double *vz_filter_input_vz); void cp_va(AircraftDynamicsOutput *global_output_aircraft_dynamics_values, double *va_filter_input_va); void cp_q(AircraftDynamicsOutput *global_output_aircraft_dynamics_values,double *q_filter_input_q); void cp_values_to_VaControlInput(double *global_output_vz_filter_vzf, double *global_output_va_filter_vaf, double *global_output_q_filter_qf, double *sensor_vac, VaControlInput *va_control_input_va_control); void cp_values_to_AltitudeHoldInput(double *global_output_h_filter_hf, double *sensor_hc, AltitudeHoldInput *altitude_hold_input_altitude_hold); void cp_values_to_VzControlInput(double *global_output_altitude_hold_vzc, double *global_output_az_filter_azf, double *global_output_vz_filter_vzf, double *global_output_q_filter_qf, VzControlInput *vz_control_input_vz_control); void cp_values_to_AircraftDynamicsInput(double *global_output_engine_T, double *global_output_elevator_delta_e, AircraftDynamicsInput *aircraft_dynamics_input_aircraft_dynamics); void giotto_timer_enable_code(e_machine_type, int); int giotto_timer_save_code(void); unsigned giotto_timer_trigger_code(int, int); #endif