//!;;Rpy::+
//!;;Rpy::ModelElement: idddsp::idd_dsp_results_types
//!;;Rpy::
//!;;Rpy::Component: IDDComponent 
//!;;Rpy::Configuration: IDDConfig
//!;;Rpy::Project: IDD
//!;;Rpy::
//!;;Rpy::FilePath: idd_dsp_results_types.h
//!;;Rpy::Tag: $Tag
//!;;Rpy::
//!;;Rpy::Copyright: Leonardocompany - COMPANY RESTRICTED
//!;;Rpy::
//!;;Rpy::Generated by Rhapsody: 7.5.3 
//!;;Rpy::-


#ifndef idd_dsp_results_types_H
#define idd_dsp_results_types_H

//## dependency antenna_feedback_t
#include "idd_antenna_types.h"
//## dependency idd_detections_types
#include "idd_detections_types.h"
//## dependency idd_mode_types
#include "idd_mode_types.h"
//## dependency waveform_t
#include "idd_waveform_types.h"
namespace idddsp
{
    //## package idddsp::idd_dsp_results_types
    
    
    //#[ type dsp_simple_agc_t
    struct dsp_simple_agc_t
    {
    	int valid;
        unsigned int batch;			//signal batch use to estimate
        float att_estimation_db;	//estimation value, -1 -> not esitimated
        float att_prediction_db;	//predicted value, -1 -> not predicted
        float pred_time_sec;		//This is imprecise, cannot known the extract delay between estimation and application
        
        //For prediction fixing in DFE
        float att_k;				//batch attenuation (used as input for estimation and prediciton)
        
        float proc_time_us;
    };
    //#]
    
    //#[ type dsp_detections_t
    struct dsp_detections_t
    {
        unsigned int valid;   //this does not means "no dectection", but problems in the processing of Plot Extractor
        dsp_simple_agc_t simple_agc;
        unsigned int spare_[1];
        iddtypes::generic_detections_t detections;
    };
    //#]
    
    //#[ type dsp_processing_context_t
    struct dsp_processing_context_t
    {
        iddtypes::master_mode_t master_mode;
        iddtypes::master_mode_t mode;
        unsigned int dsp_mode;
        int phase;
        int sub_phase;
        int results_id;
         
        iddtypes::waveform_t waveform_type;
        
        unsigned int batch;
        unsigned int timetag;
        
        unsigned int pipe;
        
        unsigned dsp_err;
                              
        unsigned int pri_and_rbins;                          
        
        float ref_azimuth;
    };
    //#]
    
    //#[ type dsp_antenna_feedback_t
    struct dsp_antenna_feedback_t
    {
        iddtypes::antenna_feedback_t antennaFeedback;
        unsigned int spare[2];
    }
    ;
    //#]
    
    //#[ type dsp_stt_data_t
    struct dsp_stt_data_t
    {
        int valid;
        unsigned int batch;
        int results_id;
        int unique_id;
        
        unsigned int spare_[4];
        
    	enum aa_stt_params_t
    	{
    		/*e_max_number_meas=20,*/
    		e_max_number_meas=10
    	};
    
    	struct main_measure_t
    	{
    		float rng_tgt;
    		float vel_tgt;
    		float mr;
    		float snr_tgt;
    	};
    	struct main_measure_list_t
    	{
    		int32_t num_meas;
    		main_measure_t main_measure[e_max_number_meas];
    	};
    	struct eccm_data_t
    	{
    		float amp_tgt;
    	};
    	struct eccm_data_list_t
    	{
    		int32_t num_meas;
    		eccm_data_t eccm_data[e_max_number_meas];
    	};
    
    
    	struct ale_data_t
    	{
    		float ale_range_meas;
    		int32_t ale_range_meas_validity;
    	};       
    	struct main_measure_double_delta_t
    	{
    		float rng_tgt;
    	  	float vel_tgt;
    	  	float mr_daz;
    	   	float mr_del;
    	  	float snr_tgt;
    	};
    
    	struct main_measure_double_delta_list_t
    	{
    		int32_t num_meas;
    		main_measure_double_delta_t main_measure[e_max_number_meas];
    	};
    
    	                        
        enum monopulse_ch_t {mp_ch_invalid=0, mp_ch_daz=1, mp_ch_del=2};	                          
        uint32_t monopulse_ch;
        
    	/*main_measure_list_t measures_list; */
    	main_measure_double_delta_list_t measures_list;
    	eccm_data_list_t eccm_data_list;
    	ale_data_t ale_data;    
    	
    	uint32_t spare__[4];
    };
    //#]
}

#endif
//;;Rpy:: end


