// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH #ifndef ORGOMGC4IDOMAIN_MODELSENSOR_DOMAINSENSOR_CONTROLDEFVAR #define ORGOMGC4IDOMAIN_MODELSENSOR_DOMAINSENSOR_CONTROLDEFVAR #include "Common_Types.idl" #include "Coordinates_and_Positions.idl" #include "Shape_Model.idl" module org { module omg { module c4i { module Domain_Model { module Sensor_Domain { // This package contains structs and type defs for managing frequency usage, // transmission sectors, emission control, and test target scenarios. module Sensor_Control { // State of frequency transmission struct transmission_frequency_state_type { // Indicates whether the CMS is enabling or disabling a transmission frequency. boolean enabled; // A unique identifier for the transmission frequency. org::omg::c4i::Domain_Model::Common_Types::frequency_band_type frequency_id; }; // reported frequency state struct reported_frequency_state_type { // Indicates whether the CMS is enabling or disabling a transmission frequency. boolean enable; // A unique identifier for the transmission frequency. org::omg::c4i::Domain_Model::Common_Types::frequency_band_type frequency_id; // Indicates whether a transmission frequency is available or not available. boolean available; }; // The mode enum transmission_frequency_mode_type { // The sensor always uses the same pre-selected frequency AUTOMATIC_FREQUENCY_SELECTION, // At each transmission sensor selects the frequency to be used inside a // pre-selected subset of frequencies FIXED_FREQUENCY, // At each transmission sensor selects the frequency to be used among the least // jammed frequencies FREQUENCY_DIVERSITY, // At each transmission sensor random selects the frequency to be used. RANDOM_AGILITY }; enum test_target_scenario_switch_type { test_target_scenario_type_scenario_common_parameter_target_kind, test_target_scenario_type_scenario_independent_target_kind }; // This enumeration allows specification of a CMS commanded power level for a // sector. enum transmission_sector_power_level_type { // radiate with full power FULL_RADIATE_POWER, // inhibit transmission INHIBIT, // radiate with reduced power REDUCED_RADIATE_POWER }; // This enumeration specifies the sectors reference systems. enum sector_reference_type { // Indicates values referenced with respect to true North NORTH_RELATED, // Indicates values referenced with respect to ship's heading SHIP_RELATED }; // Emission state struct control_emission_state_type { // Indicates whether the CMS is enabling or disabling the sensor emission state. boolean emission_activated; }; // Encapsulation of a test target (simulated target to enable technical testing of a // sensor) struct test_target_type { // This attribute defines the relevant initial time. org::omg::c4i::Domain_Model::Common_Types::time_type initial_time; // This attribute defines the initial target position. org::omg::c4i::Domain_Model::Common_Types::Coordinates_and_Positions::wgs84_position_type position; // A identifier for the test targets. unsigned short test_target_id; // This attribute defines: // - the target motion type, with the relevant motion parameters // - the target generation parameters, such as injection type (internal / external), // attenuation law (constant / variable-with-range), doppler type (0 / PRF/2). org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type test_target_parameter; }; // Test target with its scenario struct test_target_plus_scenario_type { // A identifier for the test targets. unsigned short test_target_id; // This attribute defines: // - the target motion type, with the relevant motion parameters // - the target generation parameters, such as injection type (internal / external), // attenuation law (constant / variable-with-range), doppler type (0 / PRF/2). org::omg::c4i::Domain_Model::Common_Types::anonymous_blob_type test_target_parameter; }; // This typedef is used to identify a specific test target scenario. typedef long test_target_scenario_id_type; // A sequence type, to represent multiple values. typedef sequence selected_frequency_list_selected_frequencies_type; // This struct contains zero to many frequencies which may be enabled/disabled by // the CMS struct selected_frequency_list_type { selected_frequency_list_selected_frequencies_type selected_frequencies; }; // A sequence type, to represent multiple values. typedef sequence all_frequencies_state_reported_frequencies_type; // Method used by the sensor to return the current availability of the frequency // usage and its changes (if any). // This controls the sensor behaviour with respect to the transmission frequency // management. Basing on a discrete set of transmission frequencies offered by the // sensor, CMS may disable/enable the use of a subset of them. As well CMS may // select the sensor transmission mode, i.e. how the sensor shall select the // transmission frequencies, among the set of transmission modes supported by the // sensor. // The transmission mode defines how the sensor selects the transmission // frequencies, which may be: // // // // // The availability of each of the above listed transmission modes depends on the // sensor type and its capabilities (not all the sensor types support all them). // Besides a transmission mode supported by the sensor may be “selectable” or “not // selectable” according to the specific sensor rules and the state of transmission // frequencies. // Both the set of transmission frequencies offered by the sensor and the supported // transmission modes (names and characteristics) differ from sensor to sensor, so // they shall be handled as configuration parameters. The sensor reports all // supported frequencies whether or not currently available or enabled. // Sensors cannot enable/disable the setting of the frequency usage at its own // initiative, but at any time a transmission frequency could become not available // because of a fault (e.g. fault of the relevant oscillator), and this could affect // the effective availability of one or more sensor supported transmission modes. // Provision of the frequency usage state // Sensor shall keep CMS informed about the current availability of the frequency // usage and its changes (if any). // Provision of the transmission mode // Sensor shall keep CMS informed about the currently selected transmission mode, // with the relevant parameters, and its changes (if any). // It is the CMS's responsibility to initiate the determination of initial state by // making a request for information to the subsystem. // Lack of mastership // In the case where CMS does not have mastership of the sensor, CMS shall be // informed about both the actual setting of the frequency usage and the actual // transmission mode, with its changes (if any). // State of transmission frequencies // With respect to its operational use each sensor transmission frequency may be // “enabled” or “disabled”, according to the relevant setting. On the other hand, // with respect to its health status, each transmission frequency may be “available” // or “not available” according to the presence of faults. // Note that a transmission frequency may be effectively selectable for the sensor // transmission if it is both “enabled” and not in fault. // Relationship to Manage Transmission Sectors // As well as the overall transmission mode, here specified, CMS may define sectors // where a devoted transmission mode is to be applied (see Manage Transmission // Sectors). // This struct contains zero to many "available" or "not available" frequencies // which may be enabled/disabled by the CMS struct all_frequencies_state_type { all_frequencies_state_reported_frequencies_type reported_frequencies; // 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 all_frequencies_state_type subsystem_id #endif // scenario state struct test_target_scenario_state_type { // Indicates whether the CMS is enabling or disabling the execution of the test // target scenario. boolean test_target_scenario_activated; // A unique identifier for the test target scenario. test_target_scenario_id_type test_target_scenario_id; }; // A sequence type, to represent multiple values. typedef sequence test_target_scenario_independent_target_targets_type; // The scenario is defined by a number of targets distributed in a defined // area/volume and having the same common parameters. struct test_target_scenario_common_parameter_target_type { // This indicates the common initial time of the targets. org::omg::c4i::Domain_Model::Common_Types::time_type initial_time; // This is the number of the test targets composing the scenario. unsigned short number_of_test_target; // Indicates whether the CMS is enabling or disabling the generation of a test // target scenario. boolean test_target_scenario_activated; // A unique identifier for the test target scenario. test_target_scenario_id_type test_target_scenario_id; // This indicates the area/volume boundaries where the test targets are distributed. org::omg::c4i::Domain_Model::Common_Types::Shape_Model::general_polar_volume_type volume_boundaries; test_target_plus_scenario_type targets_parameter; }; // The scenario is defined by a number of independent targets, with each target // having own characteristic parameters. struct test_target_scenario_independent_target_type { // This is the number of the test targets composing the scenario. unsigned short number_of_test_target; // Indicates whether the CMS is enabling or disabling the generation of a test // target scenario. boolean test_target_scenario_activated; // A unique identifier for the test target scenario. test_target_scenario_id_type test_target_scenario_id; test_target_scenario_independent_target_targets_type targets; }; // Scenario for test targets union test_target_scenario_type switch (test_target_scenario_switch_type) { // This case is used when a test target scenario is constituted by a number of // targets distributed in a defined area/volume and having the same common // parameters. case test_target_scenario_type_scenario_common_parameter_target_kind : test_target_scenario_common_parameter_target_type scenario_common_parameter_target; // This case is used when a test target scenario is constituted by a number of // independent targets. case test_target_scenario_type_scenario_independent_target_kind : test_target_scenario_independent_target_type scenario_independent_target; }; // Sector for transmission struct transmission_sector_type { // Indicates the transmission power level of the sector. transmission_sector_power_level_type power_level_transmission; // Indicates whether the CMS is enabling or disabling a transmission sector. boolean sector_enabled; // A unique identifier for the transmission sector. short sector_id; // This indicates the reference system of the transmission sector. sector_reference_type sector_reference; // Note that the azimuth dimension of the sector shape (polar volume) applies to the // horizon plane (i.e. elevation=0) org::omg::c4i::Domain_Model::Common_Types::Shape_Model::general_polar_volume_type sector_shape; // Indicates the transmission mode used within the sector transmission_frequency_mode_type transmision_mode; }; // A sequence type, to represent multiple values. typedef sequence transmission_sector_set_sector_type; // This struct contains zero to many transmission sectors which must be set/reset by // the CMS. struct transmission_sector_set_type { transmission_sector_set_sector_type sector; }; }; }; }; }; }; }; #endif