// copyright 2021-23 BAE Systems // copyright 2023 Real-Time Innovations // copyright 2023 Sparx Systems Pty Ltd // copyright 2023 SimVentions // copyright 2023 Open Text Inc. // copyright 2021-23 Object Management Group Inc // Version 1.0 #ifndef ORGOMGTDAISERVICEMODELTACTICALPICTURERECOMMENDATIONSDEFVAR #define ORGOMGTDAISERVICEMODELTACTICALPICTURERECOMMENDATIONSDEFVAR #include "TacticalPicture.idl" #include "Utils.idl" #include "Recommendations.idl" #include "EntityPayload.idl" #include "Util.idl" module org { module omg { module tdai { module ServiceModel { module TacticalPictureRecommendations { // This is the DDS Topic type for invoking and implementing the recommendClassification method on the Categorization interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::ClassificationDescriptor classification; // The entity to which the classification applies org::omg::tex::DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist recommendClassification recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the recommendIdentity method on the Categorization interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::IdentityDescriptor identity; // The entity to which the identity applies org::omg::tex::DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist recommendIdentity recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the recommendActivity method on the ExtendedCategorization interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::ActivityDescriptor activity; // The entity to which the activity applies org::omg::tex::DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist recommendActivity recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the recommendCategorization method on the ExtendedCategorization interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // This is an operation to invoke to make an atomic and coherent recommendation for // multiple aspects of categorization (classification, identity, activity or // status). A categorization recommendation for an entity supersedes preceding // recommendations for individual aspects for that entity from the same Tactical // Decision Aid. // 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 recommendCategorization { // The classification aspect of the categorization being recommended org::omg::tdai::DataModel::TacticalPicture::ClassificationDescriptor classification; // The identification aspect of the categorization being recommended org::omg::tdai::DataModel::TacticalPicture::IdentityDescriptor identity; // The activity aspect of the categorization being recommended org::omg::tdai::DataModel::TacticalPicture::ActivityDescriptor activity; // The set of additional status values contributing to the categorization org::omg::tdai::DataModel::TacticalPicture::EntityStatusDescriptor status; // The entity to which the categorization refers org::omg::tex::DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist recommendCategorization recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the recommendStatus method on the ExtendedCategorization interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::EntityStatusDescriptor status; // The entity to which the status applies org::omg::tex::DataPayload::EntityPayload::EntityRef entity; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif // Optionally, the entity to which the status refers org::omg::tex::DataPayload::EntityPayload::EntityRef referenceEntity; // Optionally, this parameter quantifies the status, for instance to determine // relative priority of entities with the same status org::omg::tdai::MetaModel::DataModel::Utils::Quantifier quantity; }; #ifndef DDS_XTYPES #pragma keylist recommendStatus recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the correlate method on the PictureManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::SystemTrackRef receiver; // The system track to discard after the operation org::omg::tdai::DataModel::TacticalPicture::SystemTrackRef donor; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist correlate recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the decorrelate method on the PictureManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 { org::omg::tdai::DataModel::TacticalPicture::SystemTrackRef systemTrack; org::omg::tdai::DataModel::TacticalPicture::SensorTrackRef sensorTrack; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist decorrelate recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the move method on the ExtendedPictureManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::SystemTrackRef receiver; // The sensor track to move to a different system track org::omg::tdai::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. org::omg::tdai::DataModel::TacticalPicture::SystemTrackRef donor; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist move recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the repair method on the ExtendedPictureManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::SensorTrackRef newSensorTrack; // The track previously supported by the sensor org::omg::tdai::DataModel::TacticalPicture::SensorTrackRef oldSensorTrack; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist repair recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the slice method on the ExtendedPictureManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::SensorTrackRef sensorTrack; // The time at which to divide the tracks history org::omg::tex::DataPayload::Util::DateTime sliceTime; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist slice recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the exchange method on the ExtendedPictureManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::TacticalPicture::SensorTrackRef sensorTrack1; // The second sensor track to be exchanged org::omg::tdai::DataModel::TacticalPicture::SensorTrackRef sensorTrack2; // The time at which to exchange the tracks history org::omg::tex::DataPayload::Util::DateTime exchangeTime; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist exchange recommendation.respondee.clientId recommendation.respondee.requestId #endif }; }; }; }; }; #endif