#ifndef REPORTINGDEFVAR #define REPORTINGDEFVAR #include "Navigation_Domain.idl" #include "Common_Types.idl" #include "Coordinates_and_Positions.idl" #include "Attitude.idl" #include "Position.idl" module org { module omg { module c4i { module Domain_Model { module Navigation_Domain { module Reporting { // Version 1.0 // A sequence type, to represent multiple values. Note: unbounded sequence typedef sequence navigation_report_composite_contributors_type; // Version 1.0 // This class is used in service selection to specify the type of navigation // report being requested. Its implementation is determined by the PSM mapping. enum navigation_report_kind_type { ACCELERATION, ATTITUDE_OFFSET_RATE, ATTITUDE_OFFSET, DEPTH, POSITION, ROTATIONAL_ATTITUDE_RATE, ROTATIONAL_ATTITUDE, VELOCITY }; // Version 1.0 // A string type typedef string navigation_report_specific_system_string_type; // Version 1.0 // A base type for classes that report navigational measurements struct navigation_report_type { // An optional set of contributing sensor kinds that have been used to derive the // report. This set is defined when the system_kind is COMPOSITE. navigation_report_composite_contributors_type composite_contributors; // Whether the information has been simulated - e.g. for operator training. boolean simulated; // The specific system employed - e.g. GPS, LORAN-B navigation_report_specific_system_string_type specific_system; // The generic type of navigation system used. org::omg::c4i::Domain_Model::Navigation_Domain::navigation_derivation_kind_type system_kind; // The time for which the report values are valid. org::omg::c4i::Domain_Model::Common_Types::time_type time_of_information; }; // Version 1.0 // a simple union type, to represent an optional value union navigation_request_interval_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // Version 1.0 // a simple union type, to represent an optional value union navigation_request_measurement_kind_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Navigation_Domain::Attitude::measurement_kind_type value; }; // Version 1.0 // a simple union type, to represent an optional value union navigation_request_velocity_measurement_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Navigation_Domain::Position::velocity_measurement_type value; }; // Version 1.0 // This class is used to construct requests for data to a navigation system and // also to cancel such requests. // When used to cancel requests the interval should be omitted by the C2 System and // ignored by the Navigation System. struct navigation_request_type { // The nominal interval between reports being requested. Omit to request at the // default rate for the navigation system. navigation_request_interval_type interval; // The kind of statistical reporting of the measurements being requested. Omit to // request all measurement kinds supported by the navigation system. navigation_request_measurement_kind_type measurement_kind; // The type of data to be reported in response to the request. navigation_report_kind_type report_kind; // The type of velocity measurement requested. This is only valid if the report // kind indicates velocity. Omit to request all velocity measurements supported by // the navigation system. navigation_request_velocity_measurement_type velocity_measurement; }; }; }; }; }; }; }; #endif