#ifndef EXTDEFVAR #define EXTDEFVAR #include "Coordinates_and_Positions.idl" #include "Reporting.idl" #include "Position.idl" module org { module omg { module c4i { module Domain_Model { module Navigation_Domain { module Attitude { module Ext { // Version 1.0 // This class encapsulates the error estimates associated with the platform's // rotational attitude rate values. Accuracies are reported as one standard // deviation. struct attitude_rotation_rate_accuracy_type { // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::navigation_accuracy_type navigation_accuracy; // The accuracy of the pitch rate value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_rate_type pitch_rate_accuracy; // The accuracy of the roll rate value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_rate_type roll_rate_accuracy; // The accuracy of the yaw rate value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_rate_type yaw_rate_accuracy; }; // Version 1.0 // This class encapsulates the instantaneous rate of rotation of the platform // (relative to the Earth). struct attitude_rotation_rate_type { attitude_rotation_rate_accuracy_type accuracy; // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::Attitude::offset_report_type offset_report; // The pitch rate of the platform, relative to its platform reference point in a // vertical plane. It is the rate of change of angle of rotation around the // lateral axis (towards starboard/right) through the platform reference point. // For sea systems, the angle to the bow; // for air systems, the angle to the nose; // for land systems, the angle to the front. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_rate_type pitch_rate; // The roll rate of the platform, relative to its platform reference point in a // vertical plane. It is the rate of change of the angle of rotation about the // longitudinal axis through the platform reference point (front-to-back). // The roll angle is defined as that of the at-rest horizontal through the // platform's reference on the starboard side for sea and air systems and on the // right (forward facing) for land systems. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_rate_type roll_rate; // The yaw rate of the platform, relative to its platform reference point in a // horizontal plane. It is the rate of change of the angle of rotation about the // vertical axis through the platform reference point (top-to-bottom) relative to the platform's // course. // For sea systems, the angle to the bow; // for air systems, the angle to the nose; // for land systems, the angle to the front. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_rate_type yaw_rate; }; // Version 1.0 // This class encapsulates the error estimates associated with the platform's // attitude offset values. Accuracies are reported as one standard deviation. struct position_offset_accuracy_type { // The accuracy of the lateral value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type sway_accuracy; // The accuracy of the longitudinal value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type surge_accuracy; // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::navigation_accuracy_type navigation_accuracy; // The accuracy of the vertical value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type heave_accuracy; }; // Version 1.0 // This class encapsulates the instantaneous offset of the platform from its mean // reported motion. // Non-normative: typically due to the variable motion of the environment - // sea, air, etc. - through which it is travelling. struct position_offset_type { position_offset_accuracy_type accuracy; // The instantaneous offset from mean motion on the lateral horizontal axis // through the platform reference point. // For sea and air systems port-starboard - starboard positive // For land systems side-to-side - right positive when facing forwards. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type sway; // The instantaneous offset from mean motion on the longitudinal horizontal axis // through the platform reference point. // For sea systems stern-bow - bow positive // For air systems tail-nose - nose positive // For land systems back-to-front - front positive. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type surge; // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::Attitude::offset_report_type offset_report; // The instantaneous offset from mean motion on the vertical axis through the // platform reference point. // For sea systems keel-mast - mast positive // For air and land systems bottom-to-top - top positive. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type heave; }; // Version 1.0 // This class encapsulates the error estimates associated with the platform's // attitude offset rate values. Accuracies are reported as one standard deviation. struct velocity_offset_accuracy_type { // The accuracy of the lateral rate value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_velocity_component_type sway_rate_accuracy; // The accuracy of the longitudinal rate value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_velocity_component_type surge_rate_accuracy; // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::navigation_accuracy_type navigation_accuracy; // The accuracy of the vertical rate value to one standard deviation, org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_velocity_component_type heave_rate_accuracy; }; // Version 1.0 // This class encapsulates the instantaneous rate of change of the offset of the // platform from its mean reported motion. struct velocity_offset_type { velocity_offset_accuracy_type accuracy; // The instantaneous rate of change of the offset from mean motion on the lateral // horizontal axis through the platform reference point. // For sea and air systems port-starboard - starboard positive // For land systems side-to-side - right positive when facing forwards. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_velocity_component_type sway_rate; // The instantaneous rate of change of the offset from mean motion on the // longitudinal horizontal axis through the platform reference point. // For sea systems stern-bow - bow positive // For air systems tail-nose - nose positive // For land systems back-to-front - front positive. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_velocity_component_type surge_rate; // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::Attitude::offset_report_type offset_report; // The instantaneous rate of change of the offset from mean motion on the vertical // axis through the platform reference point. // For sea systems keel-mast - mast positive // For air and land systems bottom-to-top - top positive. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_velocity_component_type heave_rate; }; }; }; module Reporting { module Ext { // Version 1.0 // A sequence type, to represent multiple values. Note: variable length sequence, // which should contain at least one instance. typedef sequence navigation_covariance_report_id_type; // Version 1.0 // A sequence type, to represent multiple values. Note: unbounded sequence typedef sequence navigation_covariance_value_type; // Version 1.0 // This class encapsulates the covariance between the measurements in one or more // navigation_report_instances. The rows and columns of the triangular covariance // matrix relate to the (3) quantities from the first instance, optionally the (3) // quantities from each of the further instances and finally, optionally, time. // This, for instance allows the covariance between rotational attitude and // position to be represented or the covariance between rotational attitude, // position, all their rates of change and time. struct navigation_covariance_type { // Whether time is included in the covariance - it is always represented in the // last row and column. boolean include_time; navigation_covariance_report_id_type report_id; // The content of the triangular covariance matrix omitting symmetric (duplicate) // values. Valid lengths are sum(n=1..*; 3n) and sum(n=1..*; 3n+1). The sequence // starts 6, 10, 21, 28, 45, ... navigation_covariance_value_type value; }; // Version 1.0 // A sequence of navigation report kinds. It is expected that this class will map // to implementation specific mechanisms in PSMs. typedef sequence navigation_report_kind_sequence_type; }; }; module Position { module Ext { // Version 1.0 // a simple union type, to represent an optional value union own_acceleration_accuracy_angle_of_climb_rate_accuracy_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_rate_type value; }; // Version 1.0 // The rate of change of speed in meters per second-squared typedef double speed_rate_type; // Version 1.0 // The accuracy of the platform's own acceleration report. struct own_acceleration_accuracy_type { // The accuracy of the angle of climb rate - 1 standard deviation own_acceleration_accuracy_angle_of_climb_rate_accuracy_type angle_of_climb_rate_accuracy; // The accuracy of the heading rate - 1 standard deviation org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_rate_type heading_rate_accuracy; // The accuracy of the speed rate - 1 standard deviation speed_rate_type speed_rate_accuracy; }; // Version 1.0 // a simple union type, to represent an optional value union own_acceleration_angle_of_climb_rate_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_rate_type value; }; // Version 1.0 // The platform's reporting of its change in velocity struct own_acceleration_type { own_acceleration_accuracy_type accuracy; // The rate at which the angle of climb is changing own_acceleration_angle_of_climb_rate_type angle_of_climb_rate; // The rate at which the heading is changing org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_rate_type heading_rate; // The definition of the acceleration (change in velocity) being measured. org::omg::c4i::Domain_Model::Navigation_Domain::Position::velocity_measurement_type measurement_kind; // Contains the attributes inherited from the parent type. org::omg::c4i::Domain_Model::Navigation_Domain::Reporting::navigation_report_type navigation_report; // The rate at which the speed is changing speed_rate_type speed_rate; }; }; }; }; }; }; }; }; #endif