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


#ifndef idd_detections_types_H
#define idd_detections_types_H

//## auto_generated
#include "iddtypes.h"
//## dependency idd_antenna_types
#include "idd_antenna_types.h"
//## dependency idd_base_types
#include "idd_base_types.h"
//## dependency idd_channels_types
#include "idd_channels_types.h"
//## dependency idd_dsp_types
#include "idd_dsp_types.h"
//## dependency idd_frequency_types
#include "idd_frequency_types.h"
//## dependency idd_mode_types
#include "idd_mode_types.h"
//## dependency idd_waveform_types
#include "idd_waveform_types.h"
namespace iddtypes
{
    //## package iddtypes::idd_detections_types
    
    
    //#[ type _detected_tgt_t
    struct _detected_tgt_t{
      timetag_t        detection_timetag;
      metres_t         detected_tgt_range;
      validity_t       detected_tgt_range_validity;
      metres_per_sec_t detected_tgt_rrate;
      validity_t       detected_tgt_rrate_validity;
      metres_per_sec_t detected_tgt_radial_vel;
      validity_t       detected_tgt_radial_vel_validity;
      pure_number_t    amplitude_det;
      pure_number_t    sdr_det;
      range_bin_t      prt_last;
      //float            monop_det;
      //timetag_t        monop_det_timetag;
      //switch_channel_t monop_det_channel;
      float            tx_chan_mhz;
      unsigned int     nfft_total;
      monopulse_validity_t monop_valid;
      float            monop_u;
      float            monop_v;  
    };
    //#]
    
    //#[ type _target_detection_t
    struct _target_detection_t{
      boolean        detection_valid;
      _detected_tgt_t detected_tgt;
      radians_t      associated_azimuth;
      radians_t      associated_elevation;
      metres_t       associated_altitude;
      bar_number_t   associated_bar_number; 
      int 			 id;		//that specifies how many targets were entered in 
      									//this position in the list.
      enum det_flag_t
      {
        det_normal=0,
        det_ignored,
        det_associated
      };  									
      unsigned int flags; 
      
      int track_association;
      float track_association_value;
    };
    
    #define MAX_NO_OF_TGT_DETECTIONS_AS  8 /*16*/ /* max number of targets in as-modes */
    #define MAX_NO_OF_TGT_DETECTIONS     8 /*16*/ /* max number of targets in aa-modes */
    
    //#]
    
    //#[ type _generic_detections_t
    struct _generic_detections_t{
      range_bin_t        processed_prt;
      hertz_t            processed_mlc_freq;
      freq_channel_t     processed_tx_freq;
      waveform_t         pp_waveform_tellback;
      range_scale_t      pp_range_scale_tellback;
      scan_rate_t        pp_scan_rate_tellback;
      timetag_t          processed_pck_timetag;
      n_int_t            processed_nfft_total;
      unsigned int       code_length;
      boolean            detected_in_lookup;
      unsigned int       num_of_detected_tgts;
      _target_detection_t target_detections[MAX_NO_OF_TGT_DETECTIONS];
    };
    //#]
    
    //## type detected_tgt_t
    typedef _detected_tgt_t detected_tgt_t;
    
    //## type generic_detections_t
    typedef _generic_detections_t generic_detections_t;
    
    //## type target_detection_t
    typedef _target_detection_t target_detection_t;
}

#endif
//;;Rpy:: end


