// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH
#ifndef ORGOMGC4ISERVICE_INTERFACESSENSOR_SERVICESSENSOR_CONTROLDEFINE_TEST_TARGET_SCENARIODEFVAR
#define ORGOMGC4ISERVICE_INTERFACESSENSOR_SERVICESSENSOR_CONTROLDEFINE_TEST_TARGET_SCENARIODEFVAR
#include "Requests.idl"
#include "Sensor_Control.idl"
module org
{
  module omg
  {
    module c4i
    {
      module Service_Interfaces
      {
        module Sensor_Services
        {
          module Sensor_Control
          {
            // This package contains interfaces for the Define Test Target Scenario service.
            module Define_Test_Target_Scenario
            {
              // Method used by the sensor to return the identification number of the modified or
              // created test target scenario.
              // This specifies the interactions for defining and modifying a test target
              // scenario. A Test Target scenario consists of a number of Test Targets to be
              // generated according to their characteristics (positions, motion law, generation
              // parameters) with the purpose of producing stimuli devoted to the execution of an
              // internal functional test of the sensor.
              // A number of Test Target scenarios may be maintained in a sensor internal Test
              // Targets scenarios database, where each scenario is identified by a unique
              // identification number. Write accesses to this database shall rejected if the
              // sensor Mastership is not actually assigned to CMS, but the possession of the
              // sensor Mastership is not required for executing read accesses.
              // The generation of the so defined Test Target scenarios may be activated as
              // specified in Control Test Target Facility. For the generation mechanism
              // see the interface Control Test Target Facility
              // 
              // One or more Test Target scenarios may be maintained in a sensor internal Test
              // Targets scenarios database, where each scenario is identified by an unique
              // identification number. The number of available Test Target scenarios is accessed
              // by Manage subsystem parameters.
              // 
              // Depending on the sensor type and its capabilities, a Test Target scenario may
              // be constituted by:
              // a) a number of independent targets, with each target having own characteristic
              // parameters; so the scenario is defined by:
              // 
              // and for each target
              // 
              //  - the initial target position with the relevant initial time
 
              //  - target parameters
 
              // 
              // b) a number of targets distributed in a defined area/volume and having the same
              // common parameters, so the scenario is defined by:
              // 
              // 
              //  - area/volume boundaries
 
              // 
              // 
              //  - common initial time
 
              // 
              // 
              //  - common targets parameters
 
              // 
              // Target parameters define:
              // a. the target motion type, with the relevant motion parameters
              // b. the target generation parameters, such as injection type (internal /
              // external), attenuation law (constant / variable-with-range), doppler type (0 /
              // PRF/2).
              struct test_target_scenario_setting_type
              {
#ifdef DDS_XTYPES
                @Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
                org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
                org::omg::c4i::Domain_Model::Sensor_Domain::Sensor_Control::test_target_scenario_id_type test_target_scenario_id;
              };
#ifndef DDS_XTYPES
#pragma keylist test_target_scenario_setting_type request_id
#endif
              // Method used by the sensor to return the required test target scenario with its
              // parameters.
              // This specifies the interactions for defining and modifying a test target
              // scenario. A Test Target scenario consists of a number of Test Targets to be
              // generated according to their characteristics (positions, motion law, generation
              // parameters) with the purpose of producing stimuli devoted to the execution of an
              // internal functional test of the sensor.
              // A number of Test Target scenarios may be maintained in a sensor internal Test
              // Targets scenarios database, where each scenario is identified by a unique
              // identification number. Write accesses to this database shall rejected if the
              // sensor Mastership is not actually assigned to CMS, but the possession of the
              // sensor Mastership is not required for executing read accesses.
              // The generation of the so defined Test Target scenarios may be activated as
              // specified in Control Test Target Facility. For the generation mechanism
              // see the interface Control Test Target Facility
              // 
              // One or more Test Target scenarios may be maintained in a sensor internal Test
              // Targets scenarios database, where each scenario is identified by an unique
              // identification number. The number of available Test Target scenarios is accessed
              // by Manage subsystem parameters.
              // 
              // Depending on the sensor type and its capabilities, a Test Target scenario may
              // be constituted by:
              // a) a number of independent targets, with each target having own characteristic
              // parameters; so the scenario is defined by:
              // 
              // and for each target
              // 
              //  - the initial target position with the relevant initial time
 
              //  - target parameters
 
              // 
              // b) a number of targets distributed in a defined area/volume and having the same
              // common parameters, so the scenario is defined by:
              // 
              // 
              //  - area/volume boundaries
 
              // 
              // 
              //  - common initial time
 
              // 
              // 
              //  - common targets parameters
 
              // 
              // Target parameters define:
              // a. the target motion type, with the relevant motion parameters
              // b. the target generation parameters, such as injection type (internal /
              // external), attenuation law (constant / variable-with-range), doppler type (0 /
              // PRF/2).
              struct test_target_scenario_setting_all_feature_type
              {
#ifdef DDS_XTYPES
                @Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
                org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
                org::omg::c4i::Domain_Model::Sensor_Domain::Sensor_Control::test_target_scenario_type test_target_features;
              };
#ifndef DDS_XTYPES
#pragma keylist test_target_scenario_setting_all_feature_type request_id
#endif
              // Method used by the CMS to send to the sensor a read request of a specified Test
              // Target scenario.
              // This is the Subsystem interface for defining test target scenarios.
              struct read_test_target_scenario_type
              {
#ifdef DDS_XTYPES
                @Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
                org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
                org::omg::c4i::Domain_Model::Sensor_Domain::Sensor_Control::test_target_scenario_id_type test_target_scenario_id;
              };
#ifndef DDS_XTYPES
#pragma keylist read_test_target_scenario_type request_id
#endif
              // Method used by the CMS to send to the sensor a write request of a specified Test
              // Target scenario.
              // This is the Subsystem interface for defining test target scenarios.
              struct write_test_target_scenario_type
              {
#ifdef DDS_XTYPES
                @Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
                org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
                org::omg::c4i::Domain_Model::Sensor_Domain::Sensor_Control::test_target_scenario_type test_target_scenario;
              };
#ifndef DDS_XTYPES
#pragma keylist write_test_target_scenario_type request_id
#endif
            };
          };
        };
      };
    };
  };
};
#endif