// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH #ifndef ORGOMGC4IDOMAIN_MODELRADAR_DOMAINMISSILE_GUIDANCEDEFVAR #define ORGOMGC4IDOMAIN_MODELRADAR_DOMAINMISSILE_GUIDANCEDEFVAR #include "Common_Types.idl" #include "Coordinates_and_Positions.idl" #include "Track_Reporting.idl" module org { module omg { module c4i { module Domain_Model { module Radar_Domain { module Missile_Guidance { // A frequency channel identifies a specific radar frequency. typedef unsigned short frequency_channel_type; enum track_id_switch_type { track_id_type_sensor_track_id_kind, track_id_type_system_track_id_kind }; // The track referred to by a missile guidance command may either be a system track // (provided by the CMS) or a sensor track (if the object is already tracked by the // sensor). Therefore, the track_id(s) in the missile guidance command may be a // sensor_track_id or a missile_track_id. union track_id_type switch (track_id_switch_type) { // sensor track id option case track_id_type_sensor_track_id_kind : org::omg::c4i::Domain_Model::Sensor_Domain::Track_Reporting::sensor_track_id_type sensor_track_id; // system track id option case track_id_type_system_track_id_kind : org::omg::c4i::Domain_Model::Common_Types::system_track_id_type system_track_id; }; // a simple union type, to represent an optional value union uplink_report_uplink_info_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type value; }; // Information downlinked by the missile to the radar. struct downlink_report_type { // The identifier for the track representing the missile providing the downlink. track_id_type own_missile_track_id; // The absolute time at which the downlink was received org::omg::c4i::Domain_Model::Common_Types::time_type time_of_receipt; // The system specific content of the downlink from the missile. org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type downlink_content; }; // a simple union type, to represent an optional value union downlink_request_frequency_channel_type switch (boolean) { // the value when present case TRUE : frequency_channel_type value; }; // a simple union type, to represent an optional value union illumination_request_frequency_channel_type switch (boolean) { // the value when present case TRUE : frequency_channel_type value; }; // a simple union type, to represent an optional value union uplink_request_frequency_channel_type switch (boolean) { // the value when present case TRUE : frequency_channel_type value; }; // A sequence type, to represent multiple values. typedef sequence illumination_request_own_missile_track_id_type; // request to downlink struct downlink_request_type { // The identifier for track that is representing the system's own missile in the // engagement. track_id_type own_missile_track_id; // The absolute period of time during which downlinks shall be received org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::absolute_duration_type listening_period; // Optionally the frequency channel to use for the downlink. downlink_request_frequency_channel_type frequency_channel; // System specific information to support the downlink org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type additional_parameters; }; // a report from uplink struct uplink_report_type { // The identifier for track that is representing the system's own missile in the // engagement. track_id_type own_missile_track_id; // System specific information to support the uplink uplink_report_uplink_info_type uplink_info; }; // a request to downlink struct uplink_request_type { // The identifier for track that is representing the system's own missile in the // engagement. track_id_type own_missile_track_id; // Optionally, the frequency channel to use for the uplink. uplink_request_frequency_channel_type frequency_channel; // System specific information regarding the uplink. org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type request_info; }; // semantics of selects association is implementation specific. struct illumination_request_type { // The identifier for the target track track_id_type target_track_id; // The identifier for track that is representing the system's own missile in the // engagement. illumination_request_own_missile_track_id_type own_missile_track_id; // The length of time to provide illumination of the target org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::absolute_duration_type illumination_period; // The frequency channel to use for target illumination illumination_request_frequency_channel_type frequency_channel; // System specific information to support the illumination org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type additional_parameters; }; }; }; }; }; }; }; #endif