// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH
#ifndef ORGOMGC4ISERVICE_INTERFACESSENSOR_SERVICESTRACK_REPORTINGPROVIDE_SENSOR_TRACKSDEFVAR
#define ORGOMGC4ISERVICE_INTERFACESSENSOR_SERVICESTRACK_REPORTINGPROVIDE_SENSOR_TRACKSDEFVAR
#include "Common_Types.idl"
#include "Requests.idl"
#include "Track_Reporting.idl"
module org
{
module omg
{
module c4i
{
module Service_Interfaces
{
module Sensor_Services
{
module Track_Reporting
{
module Provide_Sensor_Tracks
{
// The method represents a deletion of a single sensor track (air, land, space or
// surface) to the CMS. After a deletion, no further writes for that sensor track
// instance are made. Subsystems may subsequently use the same sensor_track_id to
// denote another sensor track instance possibly after a 'cooling off period'. Such
// behavior is implementation specific.
// This service allows the CMS to obtain an overview of (real and/or simulated) air
// / land / space / surface objects observed or simulated. Information may cover all
// aspects of a track such as kinematic and amplifying information.
// The service does not cover:
//
// - additional track information provision dedicated for engagement
// support,
// - special search functions such as cued search, volume search and horizon
// search (however, if such a search function is initiated by means of another
// service, the tracks shall be provided by this service),
//
// Although the service focuses on radar as an example of a sensor, the service also
// applies to other sensors, like IR/EO sensors and ECM/ESM sensors.
// The actor is the Combat Management System.
// The service starts when:
//
// - if the service does provide registration capabilities: the service "Register
// interest" has completed successfully, or
// - if the service does not provide registration capabilities: the service
// "Provide subsystem services" has completed successfully for this service.
//
// The sensor provides, periodically or on event, a set of sensor tracks observed by
// the sensor. These may be sensor point or bearing tracks. The set of sensor tracks
// includes:
//
// - Track updates of existing and new sensor tracks. These are provided when
// there are sufficient measurements (e.g. plots) in the last observation cycle,
// which may be associated with the sensor track.
// - Dead-reckoned tracks. These are sensor track updates for which in the last
// observation cycle there are no measurements that may be associated with the
// sensor track. For dead-reckoned tracks, the sensor track information (e.g.
// kinematics) is extrapolated. The dead-reckoned tracks may become"normal" tracks
// again if, in the next scan, there are measurement(s) that may be associated with
// the track. Alternatively, dead-reckoned tracks (after n unsuccessful scans) may
// become lost tracks.
// - Lost tracks. These are sensor track updates that are reported once, if in
// the last n scans, there are no measurements that may be associated with the
// sensor track. The value of n is typically a sensor parameter that is managed by
// the service "Manage subsystem parameters".
//
// Some sensors are not capable of reporting lost and/or dead-reckoned tracks.
// The sensor may also provide single sensor tracks periodically or on event.
// The service ends with success when:
//
// - if the service does provide registration capabilities: the service "Register
// interest" has completed successfully for a deregistration request, or
// - if the service does not provide registration capabilities: the sensor is
// shutdown using service "Shut down".
//
struct end_sensor_track_type
{
org::omg::c4i::Domain_Model::Sensor_Domain::Track_Reporting::sensor_track_id_type the_sensor_track_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 end_sensor_track_type subsystem_id
#endif
// struct holding keys for class prioritize_track_type.
struct prioritize_track_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;
};
// CMS requests the subsystem to report the referenced sensor track with the stated
// priority.
struct prioritize_track_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::Track_Reporting::sensor_track_id_type sensor_track_id;
org::omg::c4i::Domain_Model::Common_Types::track_priority_type priority;
};
#ifndef DDS_XTYPES
#pragma keylist prioritize_track_type request_id subsystem_id
#endif
// struct holding keys for class remove_track_priority_type.
struct remove_track_priority_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;
};
// The CMS requests the subsystem to report the track with the default priority for
// that subsystem.
struct remove_track_priority_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::Track_Reporting::sensor_track_id_type sensor_track_id;
};
#ifndef DDS_XTYPES
#pragma keylist remove_track_priority_type request_id subsystem_id
#endif
};
};
};
};
};
};
};
#endif