/***************************************************************************
                     FILE INFORMATION HEADER                              
                     -----------------------                                 
    a.  PROJECT NAME:       GRIFO_S7  P2813         
    b.  ITEM TYPE:              header 
    c.  ITEM NAME:              rws_waveform_scheduling_type.h
    d.  ITEM REFERENCE:          
    e.  CURRENT VERSION:        1.2
    f.  DATE:                   4/20/99
    g.  SOURCE FILE LOCATION:   /sparc-2/library/sr3b_end/dati/common/aa_search/s.rws_waveform_scheduling_type.h
    h.  'C' RELEASE:            2.11

    i.  ITEM DESCRIPTION:       
        This header file contains some local datatype declarations
        used by RWS Waveform Scheduling Modules.

    j.  DOCUMENTATION REFERENCES:     
        Tracker Computer SDD for Software Release 2.

    k.  PROGRAMMER NAME(S):     M.Lombardi
    l.  COPYRIGHT:              FIAR    
    m.  REVISION HISTORY:       07-11-01 - Baseline copied from 3B.86 R3K Metis radar version   
                                                                               

 ***************************************************************************/

#ifndef waveform_scheduling_type_defined
//## attribute ::types_reverse::TopLevel.waveform_scheduling_type_defined
const RhpString waveform_scheduling_type_defined;

//## dependency datatypes
#include "datatypes.h"
namespace legacy
{
    //#[ type waveform_command_t
    typedef enum {
    	fixed_lprf,
    	fixed_mprf_lookup,
    	fixed_mprf,
    	fixed_hprf,
    	fixed_lprf_nc,
    	fixed_mprf_short,
    	adaptive_mprf_short_mprf,
    	adaptive_mprf_lprf,
    	adaptive_mprf_mprf,
    	adaptive_hprf_lprf,
    	adaptive_hprf_mprf,
    	adaptive_auto_lprf,
    	adaptive_auto_mprf,
    	adaptive_auto_tws
    }  waveform_command_t;
    //#]
    
    //#[ type ws_scan_data_t
    typedef struct
    {
    	boolean                   start_of_frame;
    	boolean                   end_of_frame;
    	boolean                   start_of_bar;
    	boolean                   end_of_bar;
    } ws_scan_data_t;
    //#]
    
    //#[ type ws_select_mode_t
    typedef enum {
    	select_waveform_for_rws,
    	select_waveform_for_tws
    }  ws_select_mode_t;
    //#]
    
    //#[ type ws_waveform_cmd_t
    typedef struct
    {
    	waveform_command_t        command;
    	boolean                   change;
    	ws_select_mode_t          mode;
    } ws_waveform_cmd_t;
    //#]
    
    //#[ type ws_dsp_results_t
    typedef struct
    {
    	boolean                   available;
    	clutter_power_measures_t  clutter_power_measures;
    } ws_dsp_results_t;
    //#]
    
    //#[ type ws_1553_settings_t
    typedef struct
    {
    	metres_t                  range_threshold;
    	low_high_t                lprf_threshold;
    } ws_1553_settings_t;
    //#]
    
    //#[ type ws_out_data_t
    typedef struct
    {
    	waveform_t                current_waveform;
    	boolean                   waveform_change;
    	waveform_indicator_t      current_waveform_indicator;
    	boolean                   waveform_indicator_change;
    	boolean                   looking_up;
    } ws_out_data_t;
    //#]
    
    //#[ type stored_look_down_scheme_t
    typedef enum { hprf_slds,
                   mprf_slds,
                   tws_slds,
                   interleave_1_to_1_slds
    }  stored_look_down_scheme_t;
    //#]
    
    //#[ type waveform_selection_scheme_t
    typedef enum { wss_idle,
                   in_fixed,
                   in_short_range,
                   in_look_down,
                   in_look_up
    }  waveform_selection_scheme_t;
    //#]
    
    //#[ type ar_tws_hprf_slds_t
    typedef legacy::waveform_t ar_tws_hprf_slds_t[2][5] ;
    //#]
    
    //## dependency barnum_for_tws_hprf
    extern int barnum_for_tws_hprf;
    
    //## dependency prev_barnum_for_tws_hprf
    extern int prev_barnum_for_tws_hprf;
    
    //## dependency framenum_for_tws_hprf
    extern int framenum_for_tws_hprf;
}

#endif
