// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH #ifndef ORGOMGC4IDOMAIN_MODELCOMMON_TYPESSYSTEM_TRACKDEFVAR #define ORGOMGC4IDOMAIN_MODELCOMMON_TYPESSYSTEM_TRACKDEFVAR #include "Common_Types.idl" #include "Coordinates_and_Positions.idl" module org { module omg { module c4i { module Domain_Model { module Common_Types { // A package to contain the system track class. module System_Track { // struct holding keys for class system_track_type. struct system_track_key_type { // The identifier for the system track org::omg::c4i::Domain_Model::Common_Types::system_track_id_type system_track_number; // Indicates which subsystem published the data or is intended to read it as a // subscriber org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; }; // a simple union type, to represent an optional value union system_track_velocity_accuracy_coordinate_system_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type value; }; // a simple union type, to represent an optional value union system_track_velocity_accuracy_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::velocity_accuracy_coordinate_type value; }; // a simple union type, to represent an optional value union system_track_max_range_limit_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_coordinate_type value; }; // System track information is limited to information required by a subsystem for // missile guidance. struct system_track_type { // The identifier for the system track #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::system_track_id_type system_track_number; #else org::omg::c4i::Domain_Model::Common_Types::system_track_id_type system_track_number; #endif // Whether the system track is part of a simulation boolean simulated; // The absolute time at which the information in the attributes of the system track // is valid. org::omg::c4i::Domain_Model::Common_Types::time_type time_of_information; // The coordinate system used for the system track's position. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type position_coordinate_system; // The position of the system track. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::position_coordinate_type position; // The coordinate system used for the system track's velocity. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type velocity_coordinate_system; // The velocity of the system track. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::velocity_coordinate_type velocity; // The coordinate system used for the system track's position accuracy. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type position_accuracy_coordinate_system; // The position accuracy of the system track. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::position_accuracy_coordinate_type position_accuracy; // The coordinate system used for the system track's velocity accuracy. system_track_velocity_accuracy_coordinate_system_type velocity_accuracy_coordinate_system; // The velocity accuracy of the system track. system_track_velocity_accuracy_type velocity_accuracy; // The estimated maximum range of the system track (for cases where the position // coordinate does not specify range - i.e. bearing only). system_track_max_range_limit_type max_range_limit; // Indicates which subsystem published the data or is intended to read it as a // subscriber #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #else org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #endif }; #ifndef DDS_XTYPES #pragma keylist system_track_type system_track_number subsystem_id #endif }; }; }; }; }; }; #endif