// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH
#ifndef ORGOMGC4ISERVICE_INTERFACESSENSOR_SERVICESTRACKING_CONTROLMANAGE_TRACKING_ZONESDEFVAR
#define ORGOMGC4ISERVICE_INTERFACESSENSOR_SERVICESTRACKING_CONTROLMANAGE_TRACKING_ZONESDEFVAR
#include "Common_Types.idl"
#include "Requests.idl"
#include "Tracking_Control.idl"
module org
{
module omg
{
module c4i
{
module Service_Interfaces
{
module Sensor_Services
{
module Tracking_Control
{
// This package contains interfaces for the Manage Tracking Zones service.
module Manage_Tracking_Zones
{
// struct holding keys for class tracking_zone_setting_type.
struct tracking_zone_setting_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_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;
};
// Method used by the CMS to send an enable/disable tracking zone request to the
// sensor.
// This controls the sensor tracking behaviour in selected zones, which may be 1D
// (delimited in azimuth only), 2D (have additional elevation bounds) or 3D (have
// further range bounds). Depending on the zone type the sensor may be requested to
// modify its normal tracking behaviour, such as enable/disable the capability to
// auto initiate new tracks, or the capability of managing Track-On-Jammer. A list
// of typical tracking zones is
//
// - Automatic Track Initiation Zones
//
// zones where the sensor is allowed to auto initiate new tracks. Depending on the
// sensor type and its capabilities, such a type of zones may be delimited in
// azimuth only, or both in azimuth and elevation, or may have further range bounds,
// and in some cases also additional constraints (such as target type, velocity
// bounds, etc.).
// • Track-On-Jammer Sectors
// sectors where the sensor is allowed to manage Track-On-Jammer. Depending on the
// sensor type and its capabilities, such a type of sectors may be delimited either
// in azimuth only or both in azimuth and elevation.
// • Multipath Devoted Tracking Sectors
// sectors where the sensor is required to use, for tracking activities, devoted
// waveforms to reduce the multipath effects. This capability is usually provided by
// multifunctional radars. Such a type of sectors is usually limited in azimuth
// only, below a defined elevation.
// The supported tracking zone types (names and characteristics) differ from sensor
// to sensor, so they shall be handled as configuration parameters. They shall be
// offered to the operator to enable him for a selection and then transferred to the
// sensor to achieve the intended response.
// Special Requirements
// Provision of the sensor tracking zones setting
// Sensor shall keep CMS informed about the actual setting of the tracking zones 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.
// Additional Information
// Lack of mastership
// In the case where CMS does not have mastership of the sensor, CMS shall be
// informed about the actual setting of the tracking zones and its changes (if any).
struct tracking_zone_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
// 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
org::omg::c4i::Domain_Model::Sensor_Domain::Tracking_Control::tracking_zone_set_type setting_message;
};
#ifndef DDS_XTYPES
#pragma keylist tracking_zone_setting_type request_id subsystem_id
#endif
// struct holding keys for class set_tracking_zone_type.
struct set_tracking_zone_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_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;
};
// Method used by the sensor to return the actual setting of the tracking zones
// modified according to the request.
// This is the Subsystem interface for managing tracking zones.
struct set_tracking_zone_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
// 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
org::omg::c4i::Domain_Model::Sensor_Domain::Tracking_Control::tracking_zone_set_type zone;
};
#ifndef DDS_XTYPES
#pragma keylist set_tracking_zone_type request_id subsystem_id
#endif
};
};
};
};
};
};
};
#endif