/***************************************************************************
                     FILE INFORMATION HEADER
                     -----------------------

    a.  PROJECT NAME:       GRIFO_S7  P2813
    b.  ITEM TYPE
    c.  ITEM NAME:              mcp_types.h
    d.  ITEM REFERENCE:
    e.  CURRENT VERSION:        1.2
    f.  DATE:                   2/18/98
    g.  SOURCE FILE LOCATION:   /sparc-2/library/sr3b_end/dati/common/cmn_dt/s.mcp_types.h
    h.  'C' RELEASE:            2.11
    i.  ITEM DESCRIPTION:
    j.  DOCUMENTATION REFERENCES:
    k.  PROGRAMMER NAME(S):     M. Lombardi
    l.  COPYRIGHT:              FIAR
    m.  REVISION HISTORY:       07-11-01 - Baseline copied from 3B.86 R3K Metis radar version
                                01-31-02 - Modified for SR1 - see DSRM/781/AR
 ***************************************************************************/

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

//## dependency base_types
#include "base_types.h"
namespace legacy
{
    //#[ type bcn_class_t
    typedef enum {
      as_beacon,
      aa_beacon
    }  bcn_class_t;
    //#]
    
    //#[ type bcn_code_t
    typedef enum {
      bcn_0,
      bcn_1,
      bcn_2,
      bcn_3,
      bcn_4,
      bcn_5,
      bcn_6,
      bcn_7,
      bcn_8,
      bcn_9,
      bcn_10,
      bcn_11,
      bcn_12,
      bcn_13,
      bcn_14,
      bcn_15,
      bcn_not_valid = 99
      }  bcn_code_t;
    //#]
}

// #define BCN_CODE_T_MIN 0
// #define BCN_CODE_T_MAX 15
//## attribute ::types_reverse::TopLevel.BCN_CODE_T_MIN
const RhpString BCN_CODE_T_MIN(bcn_0);

//## attribute ::types_reverse::TopLevel.BCN_CODE_T_MAX
const RhpString BCN_CODE_T_MAX(bcn_15);

namespace legacy
{
    //#[ type beacon_settings_t
    typedef struct {
      bcn_code_t  beacon_code;
      seconds_t   beacon_delay;
      } beacon_settings_t;
    //#]
    
    //#[ type frequency_group_t
    typedef enum {
      group_1,
      group_2,
      group_3,
      group_4,
      group_5
    }  frequency_group_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.FREQUENCY_GROUP_T_MIN
const RhpString FREQUENCY_GROUP_T_MIN(group_1);

//## attribute ::types_reverse::TopLevel.MCP_FREQUENCY_GROUP_T_MAX
const RhpString MCP_FREQUENCY_GROUP_T_MAX(group_5);

//## attribute ::types_reverse::TopLevel.FREQUENCY_GROUP_T_MAX
const RhpString FREQUENCY_GROUP_T_MAX(group_5);

namespace legacy
{
    //#[ type bit_map_freq_word_t
    typedef enum {
      group1,
      group2,
      group3,
      group4,
      group5,
      spare_group,
      rf_restricted,
      prf_restricted,
      forced_bandwidth,
      type_b_group = 15,     /* added for select type_b group of channels in SR1 */
    }  bit_map_freq_word_t;
    //#]
    
    //#[ type freq_ag_type_t
    typedef enum {
      fixed,
      random,
      adaptive
      }  freq_ag_type_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.FREQ_AG_TYPE_T_MIN
const RhpString FREQ_AG_TYPE_T_MIN(fixed);

//## attribute ::types_reverse::TopLevel.FREQ_AG_TYPE_T_MAX
const RhpString FREQ_AG_TYPE_T_MAX(adaptive);

namespace legacy
{
    //#[ type band_indicator_t
    typedef enum {
      fixed_freq,
      narrow_band,
      wide_band
      }  band_indicator_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.BAND_INDICATOR_T_MIN
const RhpString BAND_INDICATOR_T_MIN(fixed_freq);

//## attribute ::types_reverse::TopLevel.BAND_INDICATOR_T_MAX
const RhpString BAND_INDICATOR_T_MAX(wide_band);

namespace legacy
{
    //#[ type forced_bandwidth_t
    typedef enum {
      no_forced,
      narrow_forced,
      wide_forced
      }  forced_bandwidth_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.FORCED_BANDWIDTH_T_MIN
const RhpString FORCED_BANDWIDTH_T_MIN(no_forced);

//## attribute ::types_reverse::TopLevel.FORCED_BANDWIDTH_T_MAX
const RhpString FORCED_BANDWIDTH_T_MAX(wide_forced);

namespace legacy
{
    //#[ type rf_restriction_level_t
    typedef enum {
      not_restricted,
      restricted
      }  rf_restriction_level_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.RF_RESTRICTION_LEVEL_T_MIN
const RhpString RF_RESTRICTION_LEVEL_T_MIN(not_restricted);

//## attribute ::types_reverse::TopLevel.RF_RESTRICTION_LEVEL_T_MAX
const RhpString RF_RESTRICTION_LEVEL_T_MAX(restricted);

namespace legacy
{
    //#[ type waveform_scheduling_indicator_t
    typedef enum {
        waveform_indicator_not_valid = -1,
        medium_waveform = 0,
        high_waveform,
        interleaved_waveform
      }  waveform_scheduling_indicator_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.WAVEFORM_SCHEDULING_INDICATOR_T_MIN
const RhpString WAVEFORM_SCHEDULING_INDICATOR_T_MIN(medium_waveform);

//## attribute ::types_reverse::TopLevel.WAVEFORM_SCHEDULING_INDICATOR_T_MAX
const RhpString WAVEFORM_SCHEDULING_INDICATOR_T_MAX(interleaved_waveform);

namespace legacy
{
    //#[ type waveform_interleave_sel_t
    typedef enum {
      interleave_0,
      interleave_1,
      interleave_2,
      interleave_3
      }  waveform_interleave_sel_t;
    //#]
}

//## attribute ::types_reverse::TopLevel.WAVEFORM_INTERLEAV_SEL_T_MIN
const RhpString WAVEFORM_INTERLEAV_SEL_T_MIN(interleav_0);

//## attribute ::types_reverse::TopLevel.WAVEFORM_INTERLEAV_SEL_T_MAX
const RhpString WAVEFORM_INTERLEAV_SEL_T_MAX(interleav_3);

namespace legacy
{
    //#[ type waveform_indicator_t
    typedef struct {
      waveform_scheduling_indicator_t  waveform_scheduling;
      waveform_t                       current_waveform;
      } waveform_indicator_t;
    //#]
    
    //#[ type parameter_in_waveform_t
    typedef enum {
     piw_not_active = 0,
     piw_lookup,
     piw_mprf_normal,
     piw_hprf,
     piw_lprf_nc,
     piw_mprf_short,
     piw_agr_short,
     piw_agr_long,
     piw_mprf_short_adaptive,
     piw_mprf_adaptive,
     piw_hprf_adaptive,
     piw_fully_auto
    }  parameter_in_waveform_t;
    //#]
    
    //#[ type lookup_waveform_t
    typedef enum {
     cmd_lprf_lookup,
     cmd_mprf_lookup
    }  lookup_waveform_t;
    //#]
    
    //#[ type altitude_line_indicator_t
    typedef struct {
      validity_t   validity;
      int_metres_t data;
      } altitude_line_indicator_t;
    //#]
    
    //#[ type mcp_time_t
    typedef struct {
      validity_t     validity;
      unsigned short hour;
      unsigned short minute;
      unsigned short second;
      } mcp_time_t;
    //#]
    
    //#[ type cursor_data_t
    typedef struct {
      int_metres_t  cursor_range;
      radians_t     cursor_azimuth;
    } cursor_data_t;
    //#]
    
    //#[ type acq_qualifier_t
    typedef enum {
      acq_for_stt,
      acq_for_sam,
      acq_for_sam_on_new_hpt,
      acq_for_dtt,
      acq_for_sstt,
      acq_for_smtt,
      acq_for_gmtt,
      aoj_for_sam,
      aoj_for_stt,
      acq_for_ftt       /* added for FTT-SR1 */
    }  acq_qualifier_t;
    //#]
    
    //#[ type internal_event_t
    typedef enum {
      int_evnt_not_valid,
      reacq_rqst,
      hpt_lost_dtt,
      spt_lost_dtt,
      hpt_near_3NM,
      acc_great_6g,
      track_rejected
    }  internal_event_t;
    //#]
}

#endif
