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


#ifndef idd_antenna_types_H
#define idd_antenna_types_H

//## auto_generated
#include "iddtypes.h"
//## attribute bar_in_progress
#include "idd_base_types.h"
//## dependency stdint
#include "stdint.h"
namespace iddtypes
{
    //## package iddtypes::idd_antenna_types
    
    
    //#[ type op_mode_t
    enum op_mode_t CPP_ENUM_BASE(uint32_t)
    {
    	INVALID_MODE,
    	HORIZONTAL_SCAN,
    	VERTICAL_SCAN,
    	CONICAL,
    	POSITIONING,
    	DBS_1,
    	DBS_2
    };
    //#]
    
    //#[ type stab_mode_t
    enum stab_mode_t CPP_ENUM_BASE(uint32_t)
    {
        INVALID_STABILIZATION,
        BODY,
        NAVIGATION
    };
    //#]
    
    //#[ type scan_volume_t
    struct scan_volume_t
    {
    	op_mode_t antennaMode;
    	stab_mode_t stabMode; 
    	float azimuth_center;
    	float elevation_center;
    	float scan_width;
    	float scan_rate;
    	float bar_distance;
    	uint32_t bars_num;
    	
    	boolean frameReset;
    	boolean reverseDirection;
    
    	boolean nearPointStart;
    	float azimuth_pointstart;
    	float elevation_pointStart;
    	
    	float interlacing_distance;
    	
    	uint32_t spare[7];
    };
    //#]
    
    //#[ type bar_number_t
    typedef unsigned int bar_number_t;
    
    #define BAR_NUMBER_T_MIN 0
    #define BAR_NUMBER_T_MAX 5
    //#]
    
    //#[ type scan_type_t
    enum scan_type_t CPP_ENUM_BASE(uint32_t)
    {
        st_not_valid,
        st_spot_short,
        st_spot_long,
        st_narrow,
        st_wide
    };
    
    #define SCAN_TYPE_MAX (iddtypes::st_wide+1)
    //#]
    
    //## type antenna_position_t
    struct antenna_position_t
    {
        float azimuth;		//## attribute azimuth
        float elevation;		//## attribute elevation
    };
    
    //## type antenna_feedback_t
    struct antenna_feedback_t
    {
        antenna_position_t nav_pos;		//## attribute nav_pos
        antenna_position_t body_pos;		//## attribute body_pos
        boolean bar_in_progress;		//## attribute bar_in_progress
        boolean frame_in_progress;		//## attribute frame_in_progress
        int direction;		//## attribute direction
        op_mode_t op_mode;		//## attribute op_mode
        int bar_number;		//## attribute bar_number
        int cone_turn_number;		//## attribute cone_turn_number
        float frame_center;		//## attribute frame_center
        float scan_center;		//## attribute scan_center
        boolean off_limits;		//## attribute off_limits
        boolean loop_fail;		//## attribute loop_fail
        float bar_distance;		//## attribute bar_distance
        float dbs_start_az;		//## attribute dbs_start_az
        float dbs_end_az;		//## attribute dbs_end_az
        float dbs_vel;		//## attribute dbs_vel
        float db1;		//## attribute db1
        float db2;		//## attribute db2
    };
}

#endif
//;;Rpy:: end


