// 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 { module System_Track { // struct holding keys for class system_track_type. struct system_track_key_type { 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 { #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 boolean simulated; org::omg::c4i::Domain_Model::Common_Types::time_type time_of_information; org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type position_coordinate_system; org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::position_coordinate_type position; org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type velocity_coordinate_system; org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::velocity_coordinate_type velocity; org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type position_accuracy_coordinate_system; org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::position_accuracy_coordinate_type position_accuracy; system_track_velocity_accuracy_coordinate_system_type velocity_accuracy_coordinate_system; system_track_velocity_accuracy_type velocity_accuracy; 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