// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH #ifndef ORGOMGC4IDOMAIN_MODELSENSOR_DOMAINPLOT_REPORTINGDEFVAR #define ORGOMGC4IDOMAIN_MODELSENSOR_DOMAINPLOT_REPORTINGDEFVAR #include "Common_Types.idl" #include "Coordinates_and_Positions.idl" #include "Shape_Model.idl" #include "Surface_Engagement_Support.idl" module org { module omg { module c4i { module Domain_Model { module Sensor_Domain { module Plot_Reporting { // The class models the kinds of error distribution supported for sensors accuracy. enum error_distribution_kind_type { // The error has a Gaussian distribution with zero mean and stated standard // deviation. GAUSSIAN, // The error has a uniform distribution with zero mean and stated standard // deviation. UNIFORM, // The error has a symmetric triangular distribution with zero mean and stated // standard deviation. TRIANGULAR, // The distribution of the error is not defined UNDEFINED_DISTRIBUTION }; // Identifier for a plot, unique within a given sensor. Such plot ids should not be // reused between sensor subsystem restarts. typedef unsigned long plot_id_type; // A string type // Encapsulates a category of sensor processing capability. The set of known // categories of sensor processing is defined on an implementation specific basis. typedef string<20> processing_capability_type; // struct holding keys for class sensor_plot_type. struct sensor_plot_key_type { // A unique identifier for the plot within the scope of the sensor. This attribute // is mandatory so that a sensor's plot summary can refer to published plots. plot_id_type plot_id; // 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 sequence type, to represent multiple values. typedef sequence plot_distribution_cell_strength_type; // a simple union type, to represent an optional value union plot_filter_parameters_area_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Shape_Model::area_2d_type value; }; // a simple union type, to represent an optional value union plot_filter_parameters_height_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::height_interval_type value; }; // a simple union type, to represent an optional value union plot_level_filter_attributes_strength_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::strength_type value; }; // a simple union type, to represent an optional value union plot_level_filter_attributes_radial_velocity_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::speed_type value; }; // a simple union type, to represent an optional value union plot_level_filter_attributes_spectral_spread_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::percentage_type value; }; // This class encapsulates the strength of the plot over a grid of higher-resolution // range cells. The spatial extent of the distribution in range, azimuth and // elevation is defined by the spread attribute of the relevant qualification // attribute. The sequence of strength values represents a 3D array over range // (inner iteration), azimuth and elevation (outer iteration). The cell at logical // index i,j,k for range, azimuth and elevation respectively is at index: // i + j * range_cell_count + k * azimuth_cell_count * range_cell_count // The cell indexed zero represents the lowest values of range, azimuth or elevation // and cells are equally spaced such that the cell at logical index i,j,k for // range, azimuth and elevation respectively corresponds to: // min_range + i * range_spread / range_cell_count < range < min_range + (i + // 1) * range_spread / range_cell_count; min_range = range - range_spread / 2 // min_azimuth + i * azimuth_spread /azimuth_cell_count < azimuth < // min_azimuth + (i + 1) * azimuth_spread / azimuth_cell_count; min_azimuth = // azimuth - azimuth_spread / 2 // min_elevation + i * elevation_spread / elevation_cell_count < elevation < // min_elevation + (i + 1) * elevation_spread / elevation_cell_count; min_elevation // = elevation - elevation_spread / 2 // where range_spread = range_qualification.spread for the plot and range, azimuth // and elevation are the mean coordinates reported for the plot. // If no spread is defined for a plot in the range, azimuth or elevation // qualification then it is only valid for there to be a count of one defined for // that dimension. struct plot_distribution_type { // The number of cells in the range dimension. Only one cell is valid if no range // spread is defined. short range_cell_count; // The number of cells in the azimuth dimension. Only one cell is valid if no // azimuth spread is defined. short azimuth_cell_count; // The number of cells in the elevation dimension. Only one cell is valid if no // elevation spread is defined. short elevation_cell_count; // The strength of plot signal in a higher resolution spatial cell plot_distribution_cell_strength_type cell_strength; }; // a simple union type, to represent an optional value union plot_summary_range_bounds_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_interval_type value; }; // a simple union type, to represent an optional value union plot_summary_azimuth_bounds_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_interval_type value; }; // a simple union type, to represent an optional value union plot_summary_elevation_bounds_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_interval_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_azimuth_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_elevation_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_range_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_range_rate_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_rate_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_stern_offset_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_port_offset_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_calibration_model_mast_offset_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::cartesian_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_plot_range_rate_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::speed_type value; }; // a simple union type, to represent an optional value union sensor_plot_range_qualification_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_qualification_type value; }; // a simple union type, to represent an optional value union sensor_plot_elevation_qualification_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_qualification_type value; }; // a simple union type, to represent an optional value union sensor_plot_range_rate_accuracy_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::speed_type value; }; // a simple union type, to represent an optional value union sensor_plot_strength_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::strength_type value; }; // a simple union type, to represent an optional value union sensor_plot_confidence_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::confidence_type value; }; // a simple union type, to represent an optional value union sensor_plot_time_accuracy_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // a simple union type, to represent an optional value union sensor_plot_splash_spotting_area_id_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Radar_Domain::Surface_Engagement_Support::splash_spotting_area_id_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_azimuth_precision_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_elevation_precision_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_range_precision_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_range_rate_precision_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_rate_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_time_precision_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_strength_precision_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::strength_type value; }; // a simple union type, to represent an optional value union sensor_precision_model_confidence_threshold_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::confidence_type value; }; // a simple union type, to represent an optional value union sensor_processing_model_nominal_reporting_interval_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // a simple union type, to represent an optional value union sensor_processing_model_nominal_internal_reporting_latency_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // a simple union type, to represent an optional value union sensor_processing_model_nominal_external_reporting_latency_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // a simple union type, to represent an optional value union sensor_stabilization_model_azimuth_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_stabilization_model_elevation_error_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_stabilization_model_temporal_error_correlation_interval_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::duration_type value; }; // a simple union type, to represent an optional value union track_level_filter_attributes_speed_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::speed_type value; }; // a simple union type, to represent an optional value union track_level_filter_attributes_priority_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::track_priority_type value; }; // A sequence type, to represent multiple values. typedef sequence track_level_filter_attributes_external_protocol_name_type; // a simple union type, to represent an optional value union sensor_orientation_elevation_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_orientation_bank_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::bank_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_orientation_origin_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::position_coordinate_type value; }; // a simple union type, to represent an optional value union sensor_orientation_azimuth_coverage_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_interval_type value; }; // a simple union type, to represent an optional value union sensor_orientation_elevation_coverage_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_interval_type value; }; // a simple union type, to represent an optional value union sensor_orientation_origin_coordinate_specification_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 sensor_orientation_sensor_id_type switch (boolean) { // the value when present case TRUE : short value; }; // A sequence type, to represent multiple values. typedef sequence sensor_processing_model_processing_capability_type; // A sequence type, to represent multiple values. typedef sequence plot_summary_plots_id_type; // a simple union type, to represent an optional value union sensor_plot_distribution_type switch (boolean) { // the value when present case TRUE : plot_distribution_type value; }; // The plot-level criteria which the plot attributes must pass in order to pass the // filter. struct plot_level_filter_attributes_type { // The plot strength criterion for the filter. plot_level_filter_attributes_strength_type strength; // The plot radial velocity criterion for the filter. plot_level_filter_attributes_radial_velocity_type radial_velocity; // The plot spectral spread criterion for the filter. plot_level_filter_attributes_spectral_spread_type spectral_spread; }; // This class models the sensor error estimate due to sensor stabilization. These // are errors that are in addition to any calibration errors, struct sensor_stabilization_model_type { // Current error in azimuth due to stabilization to one standard deviation sensor_stabilization_model_azimuth_error_type azimuth_error; // Current error in elevation due to stabilization to one standard deviation sensor_stabilization_model_elevation_error_type elevation_error; // The statistical distribution of the azimuth and elevation stabilization errors. error_distribution_kind_type orientation_error_distribution; // The time period, centered on the time of information, such that the coefficient // of correlation between stabilization errors at either end is expected to be 0.5. // Measurements made within this interval are expected to have stabilization errors // that are strongly correlated with each other. sensor_stabilization_model_temporal_error_correlation_interval_type temporal_error_correlation_interval; // The time for which the stabilization error estimates are valid. org::omg::c4i::Domain_Model::Common_Types::time_type time_of_information; }; // The track-level criteria that must be met for the plot to pass the filter. These // are criteria applied with respect to any track to which the plot is contributing. struct track_level_filter_attributes_type { // A speed criterion. A track to which the plot contributes must have an absolute // speed greater than this. track_level_filter_attributes_speed_type speed; // A priority criterion. A track to which the plot contributes must have a priority // greater than or equal to this. track_level_filter_attributes_priority_type priority; // A criterion relating to whether the plot is contributing to a track. The // cumulative probability of being associated to a track must be within the interval // defined to pass the filter. If no filtering is required then an interval // including all confidence values is defined. org::omg::c4i::Domain_Model::Common_Types::confidence_interval_type association_status; // Filter on the basis of the external protocols on which the track is known. track_level_filter_attributes_external_protocol_name_type external_protocol_name; // A criterion relating to the quality of a track. A track to which the plot // contributes must have a track quality within the interval defined to pass the // filter. If no filtering is required then an interval including all quality values // is defined. org::omg::c4i::Domain_Model::Common_Types::quality_interval_type quality; }; // The method receives a summary of plots found by the sensor in a region of the // environment. It is expected to be called periodically from the sensor. // Interface to the CMS for receiving plot updates. // This interface provides sensor plots to the CMS (filterable to air, surface, land // and space environments). The transfer of data is expected to take place // asynchronously, although for certain classes of sensor it may appear periodic // The class provides a summary of plots found by the sensor in a region of the // environment. Objects expected to be in the region for which there is no // corresponding plot have not been detected by sensor, therefore missed // measurements can be identified from this information. struct plot_summary_type { // The bounds of the region being summarized in range. If omitted the region in // unbounded in range. plot_summary_range_bounds_type range_bounds; // The bounds of the region being summarized in azimuth. If omitted the region in // unbounded in azimuth. plot_summary_azimuth_bounds_type azimuth_bounds; // The bounds of the region being summarized in elevation. If omitted the region in // unbounded in elevation. plot_summary_elevation_bounds_type elevation_bounds; // The period of time during which the sensor sensed the region org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::absolute_duration_type time_interval; // The set of plots found in the region plot_summary_plots_id_type plots_id; // 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 plot_summary_type subsystem_id #endif // This class encapsulates sensor processing parameters to promote the accurate // statistical processing of its measurements struct sensor_processing_model_type { // The nominal period between successive measurements on the same object for the // sensor. sensor_processing_model_nominal_reporting_interval_type nominal_reporting_interval; // The nominal period between the sensor's measurement of an object and its // reporting of the object to systems on the same platform. sensor_processing_model_nominal_internal_reporting_latency_type nominal_internal_reporting_latency; // The nominal period between the sensor's measurement of an object and its // reporting of the object to a system on any other connected platform. sensor_processing_model_nominal_external_reporting_latency_type nominal_external_reporting_latency; // The set of processing capabilities of which the sensor is capable. These // capabilities have quality implications for the sensors plot measurement // information. sensor_processing_model_processing_capability_type processing_capability; }; // This class models the residual global sensor error estimate after calibration struct sensor_calibration_model_type { // Residual error in azimuth to one standard deviation sensor_calibration_model_azimuth_error_type azimuth_error; // Residual error in elevation to one standard deviation sensor_calibration_model_elevation_error_type elevation_error; // The statistical distribution of the azimuth and elevation errors. error_distribution_kind_type orientation_error_distribution; // Residual error in range to one standard deviation sensor_calibration_model_range_error_type range_error; // Residual error in range rate to one standard deviation sensor_calibration_model_range_rate_error_type range_rate_error; // The statistical distribution of the range and range rate errors. error_distribution_kind_type signal_error_distribution; // Residual error in offset of the sensor bore-sight origin on the stern-bow axis to // one standard deviation sensor_calibration_model_stern_offset_error_type stern_offset_error; // Residual error in offset of the sensor bore-sight origin on the port-starboard // axis to one standard deviation sensor_calibration_model_port_offset_error_type port_offset_error; // Residual error in offset of the sensor bore-sight origin on the mast-keel axis to // one standard deviation sensor_calibration_model_mast_offset_error_type mast_offset_error; // The statistical distribution of the sensor origin offset errors. error_distribution_kind_type offset_error_distribution; }; // This class models the precision of the sensor - i.e. the smallest changes in // measurement quantities that it is capable of distinguishing. struct sensor_precision_model_type { // The precision with which the sensor is capable of measuring azimuth. sensor_precision_model_azimuth_precision_type azimuth_precision; // The precision with which the sensor is capable of measuring elevation. sensor_precision_model_elevation_precision_type elevation_precision; // The precision with which the sensor is capable of measuring range. sensor_precision_model_range_precision_type range_precision; // The precision with which the sensor is capable of measuring range rate. sensor_precision_model_range_rate_precision_type range_rate_precision; // The precision with which the sensor is capable of measuring time. sensor_precision_model_time_precision_type time_precision; // The precision with which the sensor is capable of measuring signal strength. sensor_precision_model_strength_precision_type strength_precision; // The threshold probability for signal strength to identify a plot sensor_precision_model_confidence_threshold_type confidence_threshold; }; // The criteria that must all be met for a plot to pass the filter. The filter // attributes are applied with and-wise logic. For or-wise logic define multiple // filter objects. struct plot_filter_parameters_type { // The mode in which the plots are filtered. org::omg::c4i::Domain_Model::Common_Types::filter_mode_type mode; // An area which is optionally part of the filter. plot_filter_parameters_area_type area; // The height values that are optionally part of the filter. plot_filter_parameters_height_type height; // If true, tracks that pass the filter are included in transmission and/or // reception dependent upon the mode attribute. Otherwise, they are excluded. boolean is_inclusive; // When true, for real-valued criteria, plots meet the criteria of the filter if // the plot's value is equal to or higher than the corresponding filter criteria // value. Otherwise, the criteria is met if equal to or lower. boolean higher_values; // The filter criteria for plots that relate to the tracks to which the plots // contribute. track_level_filter_attributes_type track_attributes; // The filter criteria for plots that relate to characteristics of the plots // themsleves. plot_level_filter_attributes_type plot_attributes; }; // The orientation of the sensor // Informs the CMS of the orientation of the sensor // The interface to the CMS for receiving sensor orientation updates. // The sensor provides its orientation in the case that it has movement that is // independent of that for the overall platform. It is provided periodically with a // frequency defined using the manage subsystem parameters use case. // This class describes the orientation of the sensor at a particular moment in // time. This is useful for plot processing functionality such as track extraction // as it allows instantaneous coverage of the sensor to be estimated. struct sensor_orientation_type { // The (azimuth) direction of the head of the sensor (e.g. antenna, lens or // hydro-phone) org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type azimuth; // The (elevation) direction of the head of the sensor (e.g. antenna, lens or // hydro-phone). If not supplied either horizontal is assumed or a constant angle is // defined through the Manage_Subsystem_Parameters use case. sensor_orientation_elevation_type elevation; // The (bank) direction of the head of the sensor (e.g. antenna, lens or // hydro-phone). If not supplied either no bank is assumed or a constant angle is // defined through the Manage_Subsystem_Parameters use case. sensor_orientation_bank_type bank; // The time for which is sensor orientation is valid org::omg::c4i::Domain_Model::Common_Types::time_type time_of_validity; // This attribute defines the interpretation of azimuth and elevation. // Valid enumerates are: // NORTH_HORIZONTAL, // NORTH_DOWN, // STERN_KEEL, // STERN_DECK_LEVEL org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_orientation_type sensor_coordinate_system; // The position of the origin of the head of the sensor. sensor_orientation_origin_type origin; // The instantaneous extent of the coverage of the sensor in azimuth with respect // the origin of its head. sensor_orientation_azimuth_coverage_type azimuth_coverage; // The instantaneous extent of the coverage of the sensor in elevation with respect // the origin of its head. It is only valid to set this when the elevation attribute // is also specified. sensor_orientation_elevation_coverage_type elevation_coverage; // This attribute defines the characteristics of the coordinate system used to // define the origin. It is only valid to set this when origin attribute is also // specified. sensor_orientation_origin_coordinate_specification_type origin_coordinate_specification; // For a multi sensor radar system, this attribute defines the sensor_id for which // this orientation applies. sensor_orientation_sensor_id_type sensor_id; // 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 sensor_orientation_type subsystem_id #endif // The set of plots // This method receives a individual plot update from the sensor. It is expected to // be called periodically from the sensor. // Interface to the CMS for receiving plot updates. // This interface provides sensor plots to the CMS (filterable to air, surface, land // and space environments). The transfer of data is expected to take place // asynchronously, although for certain classes of sensor it may appear periodic // One plot from a sensor, a plot being a measurement estimate of an object's state // in terms of location, motion and optionally size at a particular moment in time. struct sensor_plot_type { // A unique identifier for the plot within the scope of the sensor. This attribute // is mandatory so that a sensor's plot summary can refer to published plots. #ifdef DDS_XTYPES @key plot_id_type plot_id; #else plot_id_type plot_id; #endif // The position of the plot in polar coordinates (measurements assumed to be // relative to a particular sensor position). This is the mean, central position. // Note the qualification attributes, which give information on accuracy and spread // estimates. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::polar_position_type position; // This attribute defines the characteristics of the coordinate system used org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type coordinate_specification; // The speed of the object detected along the line-of-sight of the sensor; positive // values for an object receding from the sensor. Doppler processing can derive this // value. sensor_plot_range_rate_type range_rate; // A measure of the spread and accuracy of the plot in range. This is optional as // not all sensors measure range. sensor_plot_range_qualification_type range_qualification; // A measure of the spread and accuracy of the plot in azimuth. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_qualification_type azimuth_qualification; // A measure of the spread and accuracy of the plot in elevation. This is optional // as not all sensors measure elevation. sensor_plot_elevation_qualification_type elevation_qualification; // A measure of the accuracy of the plot in range rate equal to one standard // deviation of uncertainty. This is optional as not all sensors measure range rate. // Note that for rigid objects a continuous spread in the measurement of range rate // is not expected. sensor_plot_range_rate_accuracy_type range_rate_accuracy; // If true, the plot is simulated. See also simulation support services within this // standard. boolean simulation_status; // The signal strength of the plot. This attribute is optional as not all sensors // measure a quantity which has // equivalence to strength. sensor_plot_strength_type strength; // The probability that the plot represents a true object of interest as opposed to // clutter, noise or other false objects. sensor_plot_confidence_type confidence; // The time at which the plot was measured. org::omg::c4i::Domain_Model::Common_Types::time_type time_of_plot; // A measure of the accuracy of the time-stamping of the plot's time_of_plot // attribute. This is equal to one standard deviation of uncertainty. This is // optional as not all sensors estimate time accuracy and for some applications the // uncertainty is negligible. sensor_plot_time_accuracy_type time_accuracy; // Potentially classified information about the plot, which may be used in a system // specific way to distribute information about a plot to other subsystems. Further // information about this attribute, including layout semantics is outside of the // scope of this interface standard. org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type additional_information; // Indicates which splash spotting area the plot refers to - if any - hence it is // optional. sensor_plot_splash_spotting_area_id_type splash_spotting_area_id; // Indication whether or not a plot is from a source of jamming. boolean jammer_indication; // The optional spatial distribution of plot strength in higher resolution. It is // only valid to specify a distribution when a spread had been specified in one of // the plot's qualification attributes. sensor_plot_distribution_type distribution; // 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 sensor_plot_type plot_id subsystem_id #endif // A sequence type, to represent multiple values. typedef sequence sensor_plot_set_plots_type; // The set of plots // This method receives a set of one or more plot updates from the sensor. It is // expected to be called periodically from the sensor. // Interface to the CMS for receiving plot updates. // This interface provides sensor plots to the CMS (filterable to air, surface, land // and space environments). The transfer of data is expected to take place // asynchronously, although for certain classes of sensor it may appear periodic // Set of one or more sensor plots. struct sensor_plot_set_type { // The plots in the sensor plot set sensor_plot_set_plots_type plots; // 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 sensor_plot_set_type subsystem_id #endif }; }; }; }; }; }; #endif