// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH #ifndef ORGOMGC4IDOMAIN_MODELSENSOR_DOMAINSENSOR_PERFORMANCEDEFVAR #define ORGOMGC4IDOMAIN_MODELSENSOR_DOMAINSENSOR_PERFORMANCEDEFVAR #include "Common_Types.idl" #include "Coordinates_and_Positions.idl" #include "Shape_Model.idl" #include "Subsystem_Control.idl" module org { module omg { module c4i { module Domain_Model { module Sensor_Domain { module Sensor_Performance { // Defined as a signal excess in dB above noise floor for a nominal ideal target // with 1m2 tangential cross-section. typedef float absolute_performance_type; // Enumeration of the types of interferers that are known about. enum interferer_kind { // Interference from active noise. ACTIVE_NOISE, // Interference from clutter. CLUTTER, // Interference from a jammer, which is self screening. SELF_SCREENING_JAMMER, // Interference from a stand-off jammer STANDOFF_JAMMER, // Interference from a strobe jammer. STROBE, // The interference source is of a different type to the other declared interference // kinds OTHER_TYPE, // The interference source could not be classified by the sensor subsystem. NO_STATEMENT }; // Target strength (Effective Radiated Power - ERP) of a jammer. The precise // semantics of this type are sensor subsystem specific, but a typical // interpretation is as a signal to noise ratio in dB. typedef unsigned short jamming_magnitude_type; // Defined as a signal excess in dB above noise floor for a nominal 0dB target // strength, when assessing nominal performance or for the jammer when providing // jammer assessment. typedef float relative_performance_type; // A sequence type, to represent multiple values. typedef sequence interferer_affected_bands_type; // a simple union type, to represent an optional value union interferer_position_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 interferer_affected_volume_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Shape_Model::general_polar_volume_type value; }; // a simple union type, to represent an optional value union performance_assessment_parameters_start_azimuth_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 performance_assessment_parameters_end_azimuth_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 perfomance_bin_absolute_value_type switch (boolean) { // the value when present case TRUE : absolute_performance_type value; }; // a simple union type, to represent an optional value union performance_assessment_parameters_start_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 performance_assessment_parameters_end_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 performance_assessment_parameters_min_range_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 performance_assessment_parameters_max_range_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_coordinate_type value; }; // A sequence type, to represent multiple values. typedef sequence performance_assessment_parameters_frequency_bands_type; // a simple union type, to represent an optional value union performance_band_frequency_band_type switch (boolean) { // the value when present case TRUE : org::omg::c4i::Domain_Model::Common_Types::frequency_band_type value; }; // a simple union type, to represent an optional value union interferer_magnitude_type switch (boolean) { // the value when present case TRUE : jamming_magnitude_type value; }; // a simple union type, to represent an optional value union perfomance_bin_relative_value_type switch (boolean) { // the value when present case TRUE : relative_performance_type value; }; // Value of performance in a volume of space. This is given as a signal excess in dB // above noise floor for a nominal 0dB target strength. For a current performance // report, this noise floor shall include clutter and jamming. These are not // included in a nominal performance report. struct perfomance_bin_type { // The start of the bin in range. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_coordinate_type start_range; // The end of the bin in range. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::range_coordinate_type end_range; // The assessed relative level of performance (comparable with other instances of // the sensor or the same sensor in a different context). // If no value present, there is no performance data available for this bin. perfomance_bin_relative_value_type relative_value; // The assessed absolute level of performance (comparable with other sensors). // If no value present, there is no performance data available for this bin. perfomance_bin_absolute_value_type absolute_value; }; // A sequence type, to represent multiple values. typedef sequence performance_beam_bin_type; // A single source of interference. struct interferer_type { // Time to which the performance report applies. org::omg::c4i::Domain_Model::Common_Types::time_type timestamp; // The Effective Radiated Power (ERP) of the source of interference. This is an // optional attribute, which may not all sensors may be able to calculate. interferer_magnitude_type magnitude; // A list of frequency bands which are effected by the source of interference. interferer_affected_bands_type affected_bands; // The source position of the interference. This is an optional attribute that not // all sensors may be able to calculate. interferer_position_type position; // A classification of the interference source. interferer_kind kind; // The volume in space, which the interference source is affecting. This is an // optional attribute, which may not all sensors may be able to calculate. interferer_affected_volume_type affected_volume; // Specifies the coordinate system used to define the interferer. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_specification_type position_coordinate_specification; }; // Set of performance values for a line of points in space. Each value applies to a // volume whose boundaries may be inferred from the numbers of bins and the min and // max values in the report. struct performance_beam_type { // The start of the beam in elevation (positive orientation). org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_coordinate_type start_elevation; // The end of the beam in elevation (positive orientation). org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::elevation_coordinate_type end_elevation; // The list of 'bins' in a beam of the performance assessment performance_beam_bin_type bin; }; // A sequence type, to represent multiple values. typedef sequence interference_report_interferers_type; // The report on interference // Provides an updated set of interference reports to the CMS. // This describes the process whereby the subsystem provides a set of reports on // sources of interference, including jammers. The data shall, therefore, in // general, be non-real-time but should, where appropriate, be time-tagged and shall // be updated when any observed data changes. // The sensor need not be radiating but shall at least be receiving. The subsystem // VOI (volume of interest) or other filter mechanisms might be supplied in a // request to the subsystem // For a nominal effect assessment, the request might contain data on number, // strength/Effective Radiated Power (ERP), type and deployment of jammers and other // interferers affecting radar operations. For example, for each interferer //
    //
  • Sensor time-tag
  • //
  • Interference type - active noise, self-screening jammer, standoff jammer // etc
  • //
  • Strength/Effective Radiated Power
  • //
  • Locations - strobes etc.
  • //
//
    //
  • Affected sectors
  • //
  • Frequency bands affected
  • //
// Set of interferer objects in a report. struct interference_report_type { // The interference sources, which are described by the report. interference_report_interferers_type interferers; // 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 interference_report_type subsystem_id #endif // A sequence type, to represent multiple values. typedef sequence performance_sector_beam_type; // A set of performance values for a sector of azimuth [start_azimuth..end_azimuth]. struct performance_sector_type { // The start of the sector of azimuth (positive orientation). org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type start_azimuth; // The end of the sector of azimuth (positive orientation). org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::azimuth_coordinate_type end_azimuth; // The list of beams in the sector of the performance report performance_sector_beam_type beam; }; // A performance assessment request consists of an overall volume of interest and a // specification of a number of 'bins' into which that volume is to be sub-divided. // In response the sensor assess performance for each 'bin'. // The coordinate origin for the request is the SENSOR_REFERENCE_POINT as defined in // coordinate_origin_type. struct performance_assessment_parameters_type { // Number of azimuth bins that the CMS would like in the performance report. The // subsystem should try to honour this request but does not have to. unsigned short azimuth_bin_count; // Number of range bins that the CMS would like in the report. The subsystem should // try to honour this request but does not have to. unsigned short range_bin_count; // The number of elevation bins that the CMS would like in the report. The // subsystem should try to honour this request but does not have to. unsigned short elevation_bin_count; // Defines the start of the arc of azimuth (positive orientation) of the volume in // which the sensor's performance is to be assessed. performance_assessment_parameters_start_azimuth_type start_azimuth; // Defines the end of the arc of azimuth (positive orientation) of the volume in // which the sensor's performance is to be assessed. performance_assessment_parameters_end_azimuth_type end_azimuth; // Defines the start of the arc of elevation (positive orientation) of the volume in // which the sensor's performance is to be assessed. performance_assessment_parameters_start_elevation_type start_elevation; // Defines the end of the arc of elevation (positive orientation) of the volume in // which the sensor's performance is to be assessed. performance_assessment_parameters_end_elevation_type end_elevation; // Defines the minimum range of the volume in which the sensor's performance is to // be assessed. performance_assessment_parameters_min_range_type min_range; // Defines the maximum range of the volume in which the sensor's performance is to // be assessed. performance_assessment_parameters_max_range_type max_range; // The set of frequency bands to assess the performance for. Where no bands are // specified the performance is assessed for the sensor in general in the specified // operational mode. performance_assessment_parameters_frequency_bands_type frequency_bands; // The performance assessment is to be in the context of this // operational mode of the sensor subsystem. org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::operational_mode_type applicable_mode; // The orientation of the polar coordinates used in this class. Note that the origin // is always the sensor reference point and that the coordinate system is always // polar. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::coordinate_orientation_type coordinate_orientation; }; // A sequence type, to represent multiple values. typedef sequence performance_band_sector_type; // The performance reported in a particular band (or in general) struct performance_band_type { // The specific band to which the contained performance assessments refers performance_band_frequency_band_type frequency_band; // The list of sectors in the performance assessment performance_band_sector_type sector; }; // A sequence type, to represent multiple values. typedef sequence performance_assessment_report_band_type; // Contains the results of a performance assessment. struct performance_assessment_report_type { // The time of validity of the performance assessment. org::omg::c4i::Domain_Model::Common_Types::time_type time_of_report; // The actual dimensions of the assessment that is performed are reported with the // result. performance_assessment_parameters_type assessment_dimensions; // The performance assessment for the band (or the sensor in general) performance_assessment_report_band_type band; }; }; }; }; }; }; }; #endif