// copyright 2021 BAE Systems, Object Management Group Inc #ifndef SERVICEMODELTACTICALPICTURERECOMMENDATIONSDEFVAR #define SERVICEMODELTACTICALPICTURERECOMMENDATIONSDEFVAR #include "TacticalPicture.idl" #include "EntityPayload.idl" #include "Util.idl" #include "Recommendations.idl" module ServiceModel { module TacticalPictureRecommendations { // This is an operation to invoke to make a Classification Recommendation. // Classification refers to the kind of platform or vehicle that the Entity // represents. Examples include truck, ferry, submarine, helicopter and satellite. // This interface allows client tactical decision aids to make recommendations to // categorize Entities in the tactical picture. I.e. recommendation relating to // Entity Categorization data as defined by the TACSIT Data Exchange (TEX) standard. // This interface supports recommendations relating to the most common tactical // categorization decisions and hence those recommendations most likely to be // generated by decision aids. // All Recommendation operations on the Categorization interface receive a // CategorizationResponse instance in the callback. // It is invalid to recommend a categorization for an Entity that does not exist. // That is, no Entity is returned for the EntityRef through the TEX DataSink // interface. struct recommendClassification { // The classification being recommended DataModel::TacticalPicture::ClassificationDescriptor classification; // The entity to which the classification applies DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist recommendClassification recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is an operation to invoke to make a Identification Recommendation. // Identification refers to the allegiance or ownership of platform or vehicle that // the Entity represents. This can be expressed, for example, as a hostility // category (also known as standard identity) a nationality, an organization or // personal identifier. // This interface allows client tactical decision aids to make recommendations to // categorize Entities in the tactical picture. I.e. recommendation relating to // Entity Categorization data as defined by the TACSIT Data Exchange (TEX) standard. // This interface supports recommendations relating to the most common tactical // categorization decisions and hence those recommendations most likely to be // generated by decision aids. // All Recommendation operations on the Categorization interface receive a // CategorizationResponse instance in the callback. // It is invalid to recommend a categorization for an Entity that does not exist. // That is, no Entity is returned for the EntityRef through the TEX DataSink // interface. struct recommendIdentity { // The identity being recommended DataModel::TacticalPicture::IdentityDescriptor identity; // The entity to which the identity applies DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist recommendIdentity recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is an operation to invoke to make an Activity Recommendation. Activity // refers to the tasks currently being undertaken by the platform or vehicle that // the Entity represents. Examples include Air Defence, Guard, Patrol, // Reconnaissance, Refuel and Survey. // This interface allows client tactical decision aids to make specialized // recommendations to categorize Entities in the tactical picture. I.e. // recommendation relating to Entity Categorization data as defined by the TACSIT // Data Exchange (TEX) standard. This interface supports recommendations relating to // more advanced or specialized tactical categorization decisions and hence those // recommendations that may not be generated by all decision aids. // All Recommendation operations on the ExtendedCategorization interface receive a // CategorizationResponse instance in the callback. // It is invalid to recommend a categorization for an Entity that does not exist. // That is, no Entity is returned for the EntityRef through the TEX DataSink // interface. struct recommendActivity { // The activity being recommended DataModel::TacticalPicture::ActivityDescriptor activity; // The entity to which the activity applies DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist recommendActivity recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is an operation to invoke to make an Status Recommendation. Status refers to // all aspects of the current tactical significance of the platform or vehicle that // the Entity represents. Examples of status categories include: the extent to which // the Entity poses a threat; the type of offensive action that the Entity is // subject to, the outcome of offensive action and other emergencies. // This interface allows client tactical decision aids to make specialized // recommendations to categorize Entities in the tactical picture. I.e. // recommendation relating to Entity Categorization data as defined by the TACSIT // Data Exchange (TEX) standard. This interface supports recommendations relating to // more advanced or specialized tactical categorization decisions and hence those // recommendations that may not be generated by all decision aids. // All Recommendation operations on the ExtendedCategorization interface receive a // CategorizationResponse instance in the callback. // It is invalid to recommend a categorization for an Entity that does not exist. // That is, no Entity is returned for the EntityRef through the TEX DataSink // interface. struct recommendStatus { // The status being recommended DataModel::TacticalPicture::EntityStatusDescriptor status; // The entity to which the status applies DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist recommendStatus recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to make a Correlation Recommendation. Correlation // refers to the determination that two or more sensor tracks correspond to the same // object in the tactical environment. That object is to be represented by a single // system track in an unambiguous tactical picture. Correlation relates the sensor // tracks to the single system track. Note that it is typically possible for // multiple sensors to observe and track the same object. // Tactical Decision Aids receive a CorrelationResponse instance in the callback. // This interface allows client tactical decision aids to make recommendations to // manage the relationships between Entities in the tactical picture. I.e. // recommendations relating to the constituent Entities of Groups as defined by the // TACSIT Data Exchange (TEX) standard. This interface supports recommendations // relating to the most common tactical relation decisions and hence those // recommendations most likely to be generated by decision aids. // Recommendation operations on the PictureManagement interface receive operation // specific ResponseData specialization instances in the callback. // It is invalid to invoke an operation for an Entity that does not exist. That is, // no Entity is returned for the EntityRef (SystemTrackRef or SensorTrackRef) // through the TEX DataSink interface. struct correlate { // The system track to be retained after the operation DataModel::TacticalPicture::SystemTrackRef receiver; // The system track to discard after the operation DataModel::TacticalPicture::SystemTrackRef donor; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist correlate recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to make a Decorrelation Recommendation. // Decorrelation is the reverse of Correlation and is used to undo incorrect // Correlations or to correct the case when a sensor has started to track a // different object with the same sensor track. // Tactical Decision Aids receive a DecorrelationResponse instance in the callback. // This interface allows client tactical decision aids to make recommendations to // manage the relationships between Entities in the tactical picture. I.e. // recommendations relating to the constituent Entities of Groups as defined by the // TACSIT Data Exchange (TEX) standard. This interface supports recommendations // relating to the most common tactical relation decisions and hence those // recommendations most likely to be generated by decision aids. // Recommendation operations on the PictureManagement interface receive operation // specific ResponseData specialization instances in the callback. // It is invalid to invoke an operation for an Entity that does not exist. That is, // no Entity is returned for the EntityRef (SystemTrackRef or SensorTrackRef) // through the TEX DataSink interface. struct decorrelate { DataModel::TacticalPicture::SystemTrackRef systemTrack; DataModel::TacticalPicture::SensorTrackRef sensorTrack; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist decorrelate recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to make an Exchange Recommendation. Exchange is // an action on a pair of sensor tracks' track report histories that is used to make // the track histories coherent when a sensor has swapped the real-world objects // that a pair of sensor tracks have been tracking. An exchange operation is a // composition of two slice operations with a common slice-time followed by two // repair operations. The sensor track parameters are semantically commutative: // exchanging track-a with track-b is equivalent to exchanging track-b with track-a. // Tactical Decision Aids receive an ExchangeResponse instance in the callback. // This interface allows client tactical decision aids to make specialized // recommendations to manage the relationships between Entities in the tactical // picture. I.e. recommendations relating to the constituent Entities of Groups as // defined by the TACSIT Data Exchange (TEX) standard. This interface supports // recommendations relating more advanced or specialized tactical relation // decisions and hence those recommendations that may not be generated by all // decision aids.. // Recommendation operations on the ExtendedPictureManagement interface receive // operation specific ResponseData specialization instances in the callback. // It is invalid to invoke an operation for an Entity that does not exist. That is, // no Entity is returned for the EntityRef (SystemTrackRef or SensorTrackRef) // through the TEX DataSink interface. struct exchange { // The first sensor track to be exchanged DataModel::TacticalPicture::SensorTrackRef sensorTrack1; // The second sensor track to be exchanged DataModel::TacticalPicture::SensorTrackRef sensorTrack2; // The time at which to exchange the tracks history DataPayload::Util::DateTime exchangeTime; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist exchange recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to make a Move Recommendation. Move is a sequence // of a Decorrelation followed by a Correlation and is used to correct the case when // one sensor has started to track (with the same sensor track) a different object // that is already being tracked by another sensor. The sensor track in question is // Decorrelated from its original system track and Correlated with the system track // that already exists for the new object that the sensor is actually tracking. // Tactical Decision Aids receive a MoveResponse instance in the callback. // This interface allows client tactical decision aids to make specialized // recommendations to manage the relationships between Entities in the tactical // picture. I.e. recommendations relating to the constituent Entities of Groups as // defined by the TACSIT Data Exchange (TEX) standard. This interface supports // recommendations relating more advanced or specialized tactical relation // decisions and hence those recommendations that may not be generated by all // decision aids.. // Recommendation operations on the ExtendedPictureManagement interface receive // operation specific ResponseData specialization instances in the callback. // It is invalid to invoke an operation for an Entity that does not exist. That is, // no Entity is returned for the EntityRef (SystemTrackRef or SensorTrackRef) // through the TEX DataSink interface. struct move { // The system track to which the sensor track is to be moved DataModel::TacticalPicture::SystemTrackRef receiver; // The sensor track to move to a different system track DataModel::TacticalPicture::SensorTrackRef sensorTrack; // The system track the sensor track is to be moved from. To be a valid // recommendation the donor track should be supported by tracks other than the // sensor track being moved. DataModel::TacticalPicture::SystemTrackRef donor; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist move recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to make a Repair Recommendation. Repair is an // action on a sensor track's track report history that is used to make the track // history continuous when a sensor has declared deletion of track before, later, // starting to report the same real world object with a new sensor track. The // original sensor track's history is added to the new sensor track's history. The // implementation is such that the TEX (TACSIT Data Exchange) Entity History // interface returns the complete history for the repaired track and no history for // the deleted track as defined by the RepairResponse instance received in the // callback. // This interface allows client tactical decision aids to make specialized // recommendations to manage the relationships between Entities in the tactical // picture. I.e. recommendations relating to the constituent Entities of Groups as // defined by the TACSIT Data Exchange (TEX) standard. This interface supports // recommendations relating more advanced or specialized tactical relation // decisions and hence those recommendations that may not be generated by all // decision aids.. // Recommendation operations on the ExtendedPictureManagement interface receive // operation specific ResponseData specialization instances in the callback. // It is invalid to invoke an operation for an Entity that does not exist. That is, // no Entity is returned for the EntityRef (SystemTrackRef or SensorTrackRef) // through the TEX DataSink interface. struct repair { // The track currently supported by the sensor DataModel::TacticalPicture::SensorTrackRef newSensorTrack; // The track previously supported by the sensor DataModel::TacticalPicture::SensorTrackRef oldSensorTrack; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist repair recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to make a Slice Recommendation. Slice is an // action on a sensor track's track report history that is used to make the track // history discrete when a sensor has started to track a different real world object // with the same sensor track. It is the inverse of Repair. The original part of // sensor track's history is removed from sensor track's history and placed into a // new sensor track. The implementation is such that the TEX (TACSIT Data Exchange) // Entity History interface returns the pre-slice history for the original track and // the post-slice history for the new track as defined by the SliceResponse instance // received in the callback. // This interface allows client tactical decision aids to make specialized // recommendations to manage the relationships between Entities in the tactical // picture. I.e. recommendations relating to the constituent Entities of Groups as // defined by the TACSIT Data Exchange (TEX) standard. This interface supports // recommendations relating more advanced or specialized tactical relation // decisions and hence those recommendations that may not be generated by all // decision aids.. // Recommendation operations on the ExtendedPictureManagement interface receive // operation specific ResponseData specialization instances in the callback. // It is invalid to invoke an operation for an Entity that does not exist. That is, // no Entity is returned for the EntityRef (SystemTrackRef or SensorTrackRef) // through the TEX DataSink interface. struct slice { // The sensor track whose history is to be sliced into new and old portions DataModel::TacticalPicture::SensorTrackRef sensorTrack; // The time at which to divide the tracks history DataPayload::Util::DateTime sliceTime; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist slice recommendation.respondee.clientId recommendation.respondee.requestId #endif }; }; #endif