├── .gitignore
├── images
└── dependencies.png
├── modules
├── NETN-SMC
│ ├── changelog.md
│ ├── README.md
│ └── NETN-SMC.md
├── NETN-DIM
│ ├── changelog.md
│ └── README.md
├── NETN-AIS
│ ├── XmlSchema
│ │ ├── NETN-AIS-example.xml
│ │ └── NETN-AIS.xsd
│ ├── changelog.md
│ └── README.md
├── NETN-ORG
│ ├── XmlSchema
│ │ ├── NETN-ORG.xsd
│ │ ├── extern
│ │ │ └── ModelID_v2006_FINAL.xsd
│ │ └── NETN-ORG-SimpleTypes.xsd
│ ├── README.md
│ └── changelog.md
├── NETN-COM
│ ├── changelog.md
│ └── README.md
├── NETN-SE
│ ├── changelog.md
│ ├── README.md
│ └── NETN-SE.md
├── NETN-METOC
│ ├── changelog.md
│ └── README.md
├── NETN-BASE
│ ├── README.md
│ ├── changelog.md
│ └── NETN-BASE.md
├── NETN-ENTITY
│ ├── README.md
│ └── changelog.md
├── NETN-CBRN
│ ├── changelog.md
│ └── README.md
├── NETN-LOG
│ ├── README.md
│ └── changelog.md
├── NETN-ETR
│ ├── README.md
│ └── changelog.md
├── NETN-MRM
│ ├── README.md
│ └── changelog.md
└── NETN-TMR
│ ├── README.md
│ ├── changelog.md
│ └── NETN-TMR.md
├── FomFiles_Merged_HLA_Evolved
└── README.md
├── changelog.md
├── NamingConventions.md
├── README.md
├── flow.md
└── LICENCE.md
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | .DS_Store
3 | *-DEP.xml
--------------------------------------------------------------------------------
/images/dependencies.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AMSP-04/NETN-FOM/HEAD/images/dependencies.png
--------------------------------------------------------------------------------
/modules/NETN-SMC/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-SMC
2 |
3 | ### v1.0 - Version developed by MSG-191. Release included in NETN FOM v4.0
4 |
5 | Initial Version
6 |
7 |
--------------------------------------------------------------------------------
/modules/NETN-DIM/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-DIM
2 |
3 | ### v0.9 - Initial version developed by MSG-147 and used in LOE3 experiment.
4 |
5 |
6 |
7 | ### v1.0 - Updated version developed by MSG-191. Release included in NETN FOM 4.0
8 |
9 | * Initial version.
10 |
11 |
12 |
--------------------------------------------------------------------------------
/FomFiles_Merged_HLA_Evolved/README.md:
--------------------------------------------------------------------------------
1 | This folder contain the entire NETN-FOM merged and exported in HLA Evolved format.
2 |
3 | The FOM-module contain all the NETN modules and the entire RPR_FOM_v2.0_1516-2010 FOM in one.
4 |
5 | For this module to fully work you must also load the NETN-MIM.
6 | This custom mim is the standrad mim with the extension to HLAobjectRoot and HLAinteractionRoot made in NETN-BASE and NETN-TMR.
--------------------------------------------------------------------------------
/modules/NETN-AIS/XmlSchema/NETN-AIS-example.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | 244159000
9 | 7.3.153.37.0.0.0
10 | ON_AND_TRANSMITTING
11 | 9109756
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/modules/NETN-AIS/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-AIS
2 |
3 | ### v1.0 - Developed by MSG-163 for NETN FOM v3.0
4 |
5 |
6 |
7 | ### v2.0 - Developed by MSG-191 for NETN FOM v4.0
8 |
9 | * Renamed `AisEquipmentItem` object class to `AIS_Equipment` as subclass of NETN-ORG object class `Equipment`
10 | * Added `AIS_Equipment` object class attribute `Callsign`
11 | * Added `Vessel` object class attribute `ShipType`
12 | * Added `Vessel` object class attribute `DimensionToStern`
13 | * Added `Vessel` object class attribute `DimensionToBow`
14 | * Added `Vessel` object class attribute `DimensionToPort`
15 | * Added `Vessel` object class attribute `DimensionToStarboard`
16 | * Added `Vessel` object class attribute `Drought`
17 | * Added `AidToNavigation` object class attribute `DimensionToStern`
18 | * Added `AidToNavigation` object class attribute `DimensionToBow`
19 | * Added `AidToNavigation` object class attribute `DimensionToPort`
20 | * Added `AidToNavigation` object class attribute `DimensionToStarboard`
21 |
22 | * Added datatype `SendSafetyRelatedMessageTaskStruct`
23 | * Added datatype `SendSafetyRelatedBroadcastMessageTaskStruct`
24 | * Added datatype `TaskDefinitionVariantRecord`
25 | * Added datatype `TaskProgressVariantRecord`
26 | * Added datatype `EntityControlActionEnum`
27 |
28 |
--------------------------------------------------------------------------------
/modules/NETN-ORG/XmlSchema/NETN-ORG.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
21 |
22 |
23 |
24 | The Military Scenario for the exercise.
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/modules/NETN-COM/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-COM
2 |
3 | ### 1.0 - Initial version developed by MSG-164 and MSG-163 for NETN FOM v3.0
4 |
5 |
6 |
7 | ### 2.0 - Version developed by MSG-191 for NETN FOM v4.0
8 |
9 | * Replaced all `WorldLocationStruct` with `LocationStruct`
10 | * Replaced all use of datatype `PercentFloat64` with `PercentFloat32`
11 | * Replaced all `ArrayOfWorldLocationStruct` with `LocationStructArray`
12 | * Moved attribute `UniqueId` of object class `METOC_Root` to object class `HLAobjectRoot` defined in `NETN-BASE` FOM module
13 | * Renamed field `Bandwith`in Fixed Record `ConnectionReceiverStruct`to `Bandwidth`
14 | * Added interaction class `DisruptCommunication`
15 | * Change datatype `CommunicationNetworkArray` element to `UUID`
16 | * Added `Task` parameter `CommunicationNetworks`
17 | * Added datatype `EntityControlActionEnum`
18 | * Added datatype `TaskDefinitionVariantRecord`
19 | * Renamed Connection attribute CommunicationNetworkName to CommunicationNetwork
20 | * Changed datatype of Connection attribute CommunicationNetwork to UUID
21 | * Renamed Connection attribute SenderEntityId to SenderEntity
22 | * Renamed CommunicationNode attribute EntityId to HostEntity
23 | * Renamed DisruptionEffect attribute AffectedNetworks to Networks
24 | * Renamed DisruptionEffect attribute AffectedArea to Area
25 | * Changed datatype of DisruptionEffect attribute Networks to ArrayOfUuid
26 | * Changed datatype of DisruptionEffect attribute Area to LocationStructArray
27 | * Added `Unit` attribute `CommunicationNetworks`
28 | * Added `Equipment` attribute `CommunicationNetworks`
29 |
30 |
--------------------------------------------------------------------------------
/modules/NETN-SE/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-SE
2 |
3 | ### v1.0 - Developed by MSG-163 for NETN FOM v3.0
4 |
5 |
6 |
7 | ### v2.0 - Developed by MSG-191 for NETN FOM v4.0
8 |
9 | * Replaced object class `SE_GeoObject` with `EnvironmentObject`
10 | * Replaced object class `Location` with `PointObject`
11 | * Replaced object class `Path` with `LinearObject`
12 | * Replaced object class `Region` with `ArealObject`
13 | * Moved `SE_Facility` attributes `Name`, `SymbolId`, `DamageState`, `Comment` and `Status` moved to `EnvironmentObject`
14 | * Removed object class `SE_Facility`
15 | * Replaced object class `CheckPoint` with `Checkpoint` as subclass to `PointObject`
16 | * Added `PointObject` attribute `Radius`
17 | * Added `LinearObject` attribute `Points`
18 | * Added `EnvironmentObject` attribute `HostObject`
19 | * Added object class `ArealBreach`
20 |
21 |
22 | * Added interaction class `CreateBreach`
23 | * Added interaction class `EstablishCheckpoint`
24 | * Added interaction class `LayMinefield`
25 | * Added interaction class `CreateObstacle`
26 | * Added interaction class `ClearEngineering`
27 |
28 | * Removed datatype `GeoLocationReferenceVariant`
29 | * Added datatype `EntityControlActionEnum`
30 | * Added datatype `EngineeringTaskStruct`
31 | * Added datatype `LayMinefieldTaskStruct`
32 | * Added datatype `ClearEngineeringTaskStruct`
33 | * Added datatype `CreateBreachTaskStruct`
34 | * Added datatype `EstablishCheckpointTaskStruct`
35 | * Added datatype `CreateObstacleTaskStruct`
36 | * Added datatype `TaskDefinitionVariantStruct`
37 | * Added datatype `TaskProgressVariantStruct`
38 |
39 |
--------------------------------------------------------------------------------
/modules/NETN-METOC/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-METOC
2 |
3 | ### v1.0 - Initial version developed by MSG-163. Release included in NETN FOM v3.0
4 |
5 |
6 |
7 | ### v2.0 - Updates developed by MSG-191 and included in NETN FOM v4.0
8 |
9 | * Replaced `Service` object class with `METOC_Service`
10 | * Replaced `EnvironmentCondition` object class with `METOC_EnvironmentCondition`
11 | * Replaced `EnvironmentCondition` attribute `ServiceId` with `METOC_EnvironmentCondition` attribute `Service`
12 | * Replaced `EnvironmentCondition` attribute `GeoReference` with `METOC_EnvironmentCondition` attribute `GeoReference`
13 | * Replaced `METOC_Root` attribute `UniqueId` with HLA-BASE `HLAobjectRoot` attribute `UniqueId`
14 | * Replaced `METOC_Root` attribute `Name` with `METOC_Service` attribute `Name`
15 | * Removed object class `METOC_Root`
16 |
17 | * Replaced `METOC_Interaction` parameter `EventId` with NETN-BASE `HLAinteractionRoot` parameter `UniqueId`
18 | * Removed interaction class `METOC_Interaction`
19 |
20 | * Replaced `Request` parameter `ServiceId` with `METOC_Request` parameter `Service`
21 | * Replaced `Request` parameter `GeoReference` with `METOC_Request` parameter `GeoReference`
22 | * Replaced `Request` parameter `UpdateAsObject` with `METOC_Request` parameter `UpdateAsObject`
23 |
24 | * Replaced `Response` parameter `EnvironmentObjectId` with `METOC_Response` parameter `EnvironmentObject`
25 | * Replaced `Response` parameter `GeoReference` with `METOC_Response` parameter `GeoReference`
26 | * Replaced `Response` parameter `Status` with `METOC_Response` parameter `Status`
27 | * Added `Response` parameter `Request`
28 | * Added `FederateControlActionEnum` Enumerated datatype.
29 | * Reamed `WeatherModelTypeEnum32` Enumerated datatype to `EnvironmentConditionModelTypeEnum32`
30 |
31 |
--------------------------------------------------------------------------------
/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-FOM
2 |
3 | ### Changes in v 4.0
4 | Major restructuring using HLA4 FOM modelling principles and techniques, allowing simplified structure and class merging of attributes/parameters from multiple modules.
5 |
6 | New FOM Module NETN-SMC for common service management and control interactions used in various other modules.
7 |
8 | New FOM Module NETN-DIM for representing disaster objects, events and tasks.
9 |
10 | Renaming of NETN-Physical to NETN-ENTITY to represent both platform and aggregate-level simulated entities.
11 |
12 | Major simplification of NETN-TMR pattern.
13 |
14 | Extension of NETN-ETR to include observation reports based on SISO C2SIM report ontology.
15 |
16 | ### Changes in v 3.0
17 | Version 3.0 of the NETN FOM is included in AMSP-04 Ed B v1.0 and is based on updates made by MSG-163.
18 |
19 | * Added NETN-AIS v1.0
20 | * Updated NETN-BASE v2.0
21 | * Updated NETN-CBRN v1.2
22 | * Added NETN-COM v1.0
23 | * Updated NETN-LBML to NETN-ETR v2.0
24 | * Added NETN-LOG v2.0 and merged NETN-SCP-Base, NETN-Repair, NETN-Transport, NETN-Supply, NETN-Storage
25 | * Added NETN-METOC v1.0
26 | * Updated NETN-MRM v2.0 and merged NETN-Aggregate
27 | * Added NETN-ORG v1.0
28 | * Updated NETN-Physical v2.0
29 | * Added NETN-SE v1.0
30 | * Updated NETN-TMR v2.0
31 |
32 | ### Changes in v 2.0
33 | Version 2.0 of the NETN FOM is included in AMSP-04 Ed A v1.0 and is based on updates made by MSG-106 and MSG-134.
34 |
35 | * Added NETN-Base (NETN-Base_v1.0.2.xml)
36 | * Added NETN-Physical (NETN-Physical_v1.1.2.xml) - extends RPR-FOM v2.0
37 | * Added NETN-CBRN (CBRN_v1.1.9.xml)
38 | * Added NETN-MRM (MRM_v1.1.1.xml)
39 | * Added NETN-TMR (TMR_v1.1.3.xml)
40 | * Added NETN-HCBML (NETN-HCBML_v1.1.1.xml)
41 | * Added NETN-LLBML (NETN-LBML_v1.1.0.xml)
42 | * Updated NETN-Aggregate (NETN-Aggregate_v1.0.4.xml) - updated and based on NETN-Base - extends RPR-FOM v2.0
43 | * Updated NETN-SCP-Base (NETN-SCP-Base_v1.1.3.xml) - updated
44 | * Updated NETN-Repair (NETN-Repair_v1.2.1.xml) - from NETN Logistics FOM Module
45 | * Updated NETN-Storage (NETN-Storage_v1.2.2.xml) - from NETN Logistics FOM Module
46 | * Updated NETN-Supply (NETN-Supply_v1.1.2.xml) - from NETN Logistics FOM Module
47 | * Updated NETN-Transport (NETN-Transport_v1.1.2.xml) - from NETN Logistics FOM Module
48 |
49 | ### Version 1.0
50 | Version 1.0 of the NETN FOM was developed by MSG-068.
51 |
52 | * Added NETN Service Consumer‐Provider FOM Module v1.0
53 | * Added NETN Logistics FOM Module v1.0
54 | * Added NETN Aggregate FOM Module v1.0
--------------------------------------------------------------------------------
/modules/NETN-SE/README.md:
--------------------------------------------------------------------------------
1 | # NETN-SE
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |2.0|2024-03-10|RPR-SE, NETN-ETR, NETN-BASE|
7 |
8 | > [Full Documentation](NETN-SE.md)
9 |
10 |
11 |
12 | The NATO Education and Training Network Synthetic Environment module (NETN-SE) provides a standard way to exchange simulation data for objects in the synthetic environment other than simulated entities such as `Platform` or `AggregateEntity` objects.
13 |
14 |
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-SE.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |v1.0 - Developed by MSG-163 for NETN FOM v3.0|
40 | |v2.0 - Developed by MSG-191 for NETN FOM v4.0|
41 |
42 | > [Changelog](changelog.md)
43 |
44 |
--------------------------------------------------------------------------------
/modules/NETN-BASE/README.md:
--------------------------------------------------------------------------------
1 | # NETN-BASE
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |3.0|2024-03-10|RPR-Base|
7 |
8 | > [Full Documentation](NETN-BASE.md)
9 |
10 |
11 |
12 | The NATO Education and Training Network Base (NETN-BASE) Module provides standard definitions of datatypes used by NETN modules. It depends on the RPR-BASE Module.
13 |
14 |
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-BASE.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |v1.0 - Initial version developed by MSG-106 and MSG-134. Release included in NETN FOM v2.0|
40 | |v2.0 - Updated version developed by MSG-163. Release included in NETN FOM v3.0|
41 | |v3.0 - Updated version developed by MSG-191. The release is included in NETN FOM v4.0|
42 |
43 | > [Changelog](changelog.md)
44 |
45 |
--------------------------------------------------------------------------------
/modules/NETN-COM/README.md:
--------------------------------------------------------------------------------
1 | # NETN-COM
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |2.0|2024-03-18|NETN-BASE, NETN-ETR, NETN-ORG|
7 |
8 | > [Full Documentation](NETN-COM.md)
9 |
10 | The purpose of the NATO Education and Training Network Communication Network Module (NETN-COM) is to provide a standard way to exchange data related to the status of connections in a communication network and links in a physical network.
11 |
12 | The communication networks can be modelled using radios, ethernet, satellite communication or laser-based links, transmitting from point to point or routing through the network.
13 |
14 |
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-COM.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |1.0 - Initial version developed by MSG-164 and MSG-163 for NETN FOM v3.0|
40 | |2.0 - Version developed by MSG-191 for NETN FOM v4.0|
41 |
42 | > [Changelog](changelog.md)
43 |
44 |
--------------------------------------------------------------------------------
/modules/NETN-METOC/README.md:
--------------------------------------------------------------------------------
1 | # NETN-METOC
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |2.0|2024-03-10|NETN-BASE|
7 |
8 | > [Full Documentation](NETN-METOC.md)
9 |
10 | The purpose of the NATO Education and Training Network Meteorological and Oceanographic Module (NETN-METOC) is to provide a standard way to exchange data related to environmental conditions, including weather and the primary effects of weather on terrain and water surfaces in the atmosphere and subsurface water conditions.
11 |
12 | NETN-METOC provides a reference model that represents a common core subset of METOC-related aspects and allows the module's extension to incorporate additional detail if required.
13 |
14 |
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-METOC.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |v1.0 - Initial version developed by MSG-163. Release included in NETN FOM v3.0|
40 | |v2.0 - Updates developed by MSG-191 and included in NETN FOM v4.0|
41 |
42 | > [Changelog](changelog.md)
43 |
44 |
--------------------------------------------------------------------------------
/modules/NETN-DIM/README.md:
--------------------------------------------------------------------------------
1 | # NETN-DIM
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |1.0|2024-03-05|RPR-SE, NETN-ETR, NETN-BASE|
7 |
8 |
9 | > [Full Documentation](NETN-DIM.md)
10 |
11 | The NATO Education and Training Network Disaster Module (NETN-DIM) provides a standard interface for representing hazards, e.g. flooding and wildfire, in federated distributed simulation environments.
12 |
13 | Hazards such as wildfires, flooding, earthquakes, and landslides have different effects in a synthetic environment and on the simulated entities. Furthermore, hazard observation reporting and activities to mitigate the effects of hazards are important aspects of simulations where hazards are part of the scenario.
14 |
15 |
16 |
17 | ## License
18 |
19 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
20 |
21 | The work includes the NETN-DIM.xml FOM Module and documentation.
22 |
23 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
24 |
25 | ## Versions, updates and extensions
26 |
27 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
28 |
29 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
30 |
31 | Version numbering of this FOM Module and associated documentation is based on the following principles:
32 |
33 | * A new official version number is in effect only when a new release is made in the Master branch.
34 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
35 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
36 | * Patches are released to fix minor issues that do not break backward compatibility.
37 |
38 | |Version|
39 | |---|
40 | |v0.9 - Initial version developed by MSG-147 and used in LOE3 experiment.|
41 | |v1.0 - Updated version developed by MSG-191. Release included in NETN FOM 4.0|
42 |
43 | > [Changelog](changelog.md)
44 |
45 |
--------------------------------------------------------------------------------
/modules/NETN-ENTITY/README.md:
--------------------------------------------------------------------------------
1 | # NETN-ENTITY
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |v3.0|2024-03-09|NETN-BASE, RPR-Base, RPR-Physical, RPR-Aggregate, MIM|
7 |
8 | > [Full Documentation](NETN-ENTITY.md)
9 |
10 |
11 |
12 | The NETN-ENTITY FOM Module provides a standard interface for representing simulation entities in a federated distributed simulation. The module extends the RPR-FOM standard SISO-STD-001-2015 with additional attributes for simulated physical and aggregated entities.
13 |
14 | For backward compatibility, published objects should include all required RPR-FOM attributes.
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-ENTITY.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |v1.2 - First version developed by MSG-134 for NETN FOM v2.0. Object classes and datatypes derived from deprecated NETN FOM v 1.0 module AggDeagg.|
40 | |v2.0 - Updated version developed by MSG-163 for NETN FOM v3.0 renamed NETN-Physical|
41 | |v3.0 - Updated version developed by MSG-191 for NETN FOM v4.0 renamed NETN-ENTITY|
42 |
43 | > [Changelog](changelog.md)
44 |
45 |
--------------------------------------------------------------------------------
/modules/NETN-CBRN/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-CBRN
2 |
3 | ### v1.1 - Initial version developed by MSG-106. Included in NETN FOM v2.0 and AMSP-04 Ed A.
4 |
5 | Version 1.1.9 is the initial public release of the NETN-CBRN FOM Module developed by MSG-106 & MSG-134. This version is included in NETN-FOM v2.0 and AMSP-04 Ed A. Several internal development releases were also made available to the team and a summary of the changes are provided below
6 |
7 | * v1.0.0 - Initial; object, interaction classes and datatypes.
8 | * v1.0.1 - Added semantics.
9 | * v1.0.2 - Added missing QuantityUInt32 simple data type, fixed IPEEnum values.
10 | * v1.1.0 - Added new attributes to ATP45HazardArea, CBRN_Sensor and CBRN_Detector. Added parent interaction type to COLPROUpdate and DecontaminationStationUpdate. Re-used existing RPR and NETN simple data types. Renamed several data types and attribute names.
11 | * v1.1.1 - Added references to dependencies.
12 | * v1.1.2 - Added ValidityTime attribute to ATP45HazardArea.
13 | * v1.1.3 - Updated the description.
14 | * v1.1.4 - Added CBRN_PlatformUpdate interaction.
15 | * v1.1.5 - Updated semantics.
16 | * v1.1.6 - Standardised on Agent for agent name. Used correct naming convention for CBRN_FacilityUpdate.
17 | * v1.1.7 - Changed update conditions for certain attributes. Added UniqueID attributes to hazard contours.
18 | * v1.1.8 - Added TIC agents to AgentTypeEnum16.
19 | * v1.1.9 - Added POC information.
20 |
21 |
22 | ### v1.2 - Minor update of the NETN-CBRN FOM Module developed by MSG-163 and included in AMSP-04 Ed B.
23 |
24 | Version 1.2 of the NETN-CBRN was updated by MSG-163 and included in NETN-FOM v3.0 and AMSP-04 Ed B.
25 |
26 | * Changed modelIdentification securityClassification from unclassified to Not Classified
27 | * Changed modelIdentification other to include license information
28 | * Changed modelIdentification reference to only refer to directly dependent FOM Modules
29 | * Added modelIdentification useLimitation to reflect Scope of FOM Module as defined in NETN-CBRN#2
30 | * Added modelIdentification glyph
31 | * Added datatype GeocentricPolygon
32 | * Updated modelIdentification purpose to reflect Purpose of FOM Module as defined in NETN-CBRN#2
33 | * Updated modelIdentification description to reflect Introduction of FOM Module as defined in NETN-CBRN#2
34 | * Changed object class CBRN_SubmersibleVehicle to CBRN_SubmersibleVessel
35 | * Introduction section restructured and clarified including description, purpose and useLimitation.
36 | * Source Release section restructured and clarified including a new sequence diagram
37 | * Semantics of CBRN_Release attributes updated
38 | * Removed SimpleDatatype ConcentrationKgPerMeterCubedFloat32 (move to NETN-BASE and renamed MassConcentrationFloat32)
39 | * Changed use of data type TimeSecInt64 to EpochTimeSecInt64 (renamed in NETN-BASE)
40 | * Changed use of datatype ArrayOfWorldLocationStruct3 to GeocentricPolygon (renamed in NETN-BASE)
41 |
42 |
43 | ### v2.0 - Updated version developed by MSG-191. Release included in NETN FOM v4.0
44 |
45 | * Remodelled based on HLA4 modelling
46 | * Based on NETN-DIM
47 | * Simplified Hazard representation
48 | * Updated documentation
49 |
50 |
--------------------------------------------------------------------------------
/modules/NETN-SMC/README.md:
--------------------------------------------------------------------------------
1 | # NETN-SMC
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |1.0|2023-11-20|NETN-BASE|
7 |
8 | > [Full Documentation](NETN-SMC.md)
9 |
10 | The NATO Education and Training Service Management and Control (NETN-SMC) module provides a standard way to send control actions in a federated simulation. Control actions are interactions targeting the federation, an individual federate, or an individual simulated entity.
11 |
12 | In a federated distributed simulation, the participating systems (federates) provide services to model aspects of the synthetic environment. To simulate model change, these services use operator input, data published in the federation, and the passing of scenario time.
13 |
14 | The NETN-SMC module provides methods to interact with services using control actions and defines a Request-Response pattern. The control actions described in this module form the basis for subclassing more specific actions in other FOM modules.
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-SMC.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |v1.0 - Version developed by MSG-191. Release included in NETN FOM v4.0|
40 |
41 | > [Changelog](changelog.md)
42 |
43 |
--------------------------------------------------------------------------------
/modules/NETN-ORG/README.md:
--------------------------------------------------------------------------------
1 | # NETN-ORG
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |2.0|2024-03-07|NETN-BASE|
7 |
8 | > [Full Documentation](NETN-ORG.md)
9 |
10 | The NATO Education and Training Organization (NETN-ORG) module provides a standard way to represent organizations in the simulation scenario and their relationships and structure. The relationships include unit command structure, relationships between organizations, unit equipment, and installations.
11 |
12 | Simulating organizational elements requires knowledge of intra-organizational relationships, e.g., superior, subordinate, and inter-organizational relationships with other organizations, e.g., friendly or hostile. The NETN-ORG supports initialization and organizations' dynamic change of this information.
13 |
14 | Use the NETN-ORG information to:
15 | * initialize simulated entities
16 | * perform disaggregation, aggregation, divide and merge actions using NETN-MRM
17 | * change organizational relationships
18 | * capture simulated unit and equipment state as snapshots
19 |
20 | ## License
21 |
22 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
23 |
24 | The work includes the NETN-ORG.xml FOM Module and documentation.
25 |
26 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
27 |
28 | ## Versions, updates and extensions
29 |
30 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
31 |
32 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
33 |
34 | Version numbering of this FOM Module and associated documentation is based on the following principles:
35 |
36 | * A new official version number is in effect only when a new release is made in the Master branch.
37 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
38 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
39 | * Patches are released to fix minor issues that do not break backward compatibility.
40 |
41 | |Version|
42 | |---|
43 | |v1.0 - Initial version developed by MSG-163. Release included in NETN FOM v3.0|
44 | |v2.0 - Updated version developed by MSG-191. Release included in NETN FOM v4.0|
45 |
46 | > [Changelog](changelog.md)
47 |
48 |
--------------------------------------------------------------------------------
/NamingConventions.md:
--------------------------------------------------------------------------------
1 | # NETN FOM naming conventions
2 |
3 | ## Class names
4 |
5 | An object class name should be a noun, i.e. a name of a thing that persists in time.
6 |
7 | An interaction class name should be a name that describes an event that is temporal in time.
8 |
9 | A class name starts with a capital letter. A class name may be in mixed case with the first letter of each internal word capitalized. A class name shall not start with an underscore, but underscores may be used within a class name, for example to create a prefix for a class name.
10 |
11 | A class name should be simple and descriptive, using whole words. The use of acronyms and abbreviations should be avoided, unless the abbreviation is much more widely used than the long-form, such as `URL` or `HTML`.
12 |
13 | Examples:
14 |
15 | - Object class names:
16 | - `Unit` (NETN-ORG)
17 | - `Path` (NETN-SE)
18 |
19 | - Interaction class names:
20 | - `AisMessage` (NETN-AIS)
21 | - `StopAtSideOfRoad` (NETN-ETR)
22 |
23 | ## Datatype names
24 |
25 | A datatype name follows the same convention as for a class name, with the additions below.
26 |
27 | Since the NETN FOM modules include many legacy datatypes (that will not be changed) and since the modules are built on existing datatypes from the SISO RPR-FOM, exceptions to the naming convention may exist:
28 |
29 | ### Simple Datatype
30 |
31 | The name of a simple datatype should end with the underlying representation and size. If relevant the unit of the datatype can be included in the name. Examples: `AltitudeMeterFloat64` which includes Meter as the unit and `MassConcentrationFloat32` which excludes the unit kg/m3.
32 |
33 | ### Enumerated Datatype
34 |
35 | An enumeration datatype name should end with the word `Enum` + size of the datatype, for example `AggregateMissionEnum16`. Enumeration values should be in capital letters; the use of underscores in the value is allowed.
36 |
37 | ### Array Datatype
38 |
39 | If the name of an array datatype is an obvious sequence of data, for example a name, string, list, path or polygon, then no additional indication is required. All other array datatypes should include the term `ArrayOf` + the element datatype name, for example `ArrayOfWorldLocationStruct`. Some special array datatypes, such as `UUID`, do not follow this convention.
40 |
41 | If an indication of the array cardinality is relevant, then the array datatype should end with the absolute or maximum size of the array. For example `SymbolIdentifer15` or `Text255`.
42 |
43 | ### Fixed Record Datatype
44 |
45 | Fixed record datatypes should end with the word `Struct`.
46 |
47 | ### Variant Record Datatype
48 |
49 | Variant record datatypes should end with the word `VariantStruct`.
50 |
51 | ## Attribute and parameter names
52 |
53 | A class attribute or a parameter name starts with a capital letter (in contrast to common coding practices). A name may be in mixed case with the first letter of each internal word capitalized. A name shall not start with an underscore, but underscores may be used within a name. A name should be short yet meaningful. The choice of a name should be mnemonic - that is, designed to indicate to the casual observer the intent of its use. One-character names should be avoided.
54 |
55 | Common words may be abbreviated in the name. This includes currently:
56 |
57 | - `Identifier` => `Id`
58 |
59 | Examples:
60 |
61 | - `UniqueId` (used in several NETN modules)
62 | - `RulesOfEngagement` (in `SetRulesOfEngagement` task in NETN-ETR)
--------------------------------------------------------------------------------
/modules/NETN-LOG/README.md:
--------------------------------------------------------------------------------
1 | # NETN-LOG
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |3.0|2024-03-10|NETN-BASE|
7 |
8 | > [Full Documentation](NETN-LOG.md)
9 |
10 | The NATO Education and Training Network Logistics Module (NETN-LOG) provides a standard interface for representing supplies, equipment and personnel when modelled as part of an aggregated entity. The module also includes support for logistics tasks in a federated distributed simulation.
11 |
12 | Military logistics is the discipline of planning and carrying out the movement and maintenance of military forces, including storage, distribution, maintenance and transportation of supplies, equipment and personnel.
13 |
14 | The NETN Logistics module covers the following tasks:
15 | * Resupply, e.g. refuelling aircraft at an airbase or in the air
16 | * Repair, e.g. repair of damaged platforms in a facility
17 | * Transport, e.g. transporting supplies from a specific pick-up point to an off-loading destination
18 |
19 | ## License
20 |
21 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
22 |
23 | The work includes the NETN-LOG.xml FOM Module and documentation.
24 |
25 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
26 |
27 | ## Versions, updates and extensions
28 |
29 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
30 |
31 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
32 |
33 | Version numbering of this FOM Module and associated documentation is based on the following principles:
34 |
35 | * A new official version number is in effect only when a new release is made in the Master branch.
36 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
37 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
38 | * Patches are released to fix minor issues that do not break backward compatibility.
39 |
40 | |Version|
41 | |---|
42 | |v1.1 - Initial version developed by MSG-068 for NETN FOM v1.0. |
43 | |v2.0 - Re-merged version of NETN-LOG FOM Module updated by MSG-163 for NETN FOM v3.0. Includes NETN-SCP, NETN-Supply, NETN-Storage, NETN-Repair and NETN-Transport.|
44 | |v3.0 - Updated version developed by MSG-191. Release included in NETN FOM v4.0|
45 |
46 | > [Changelog](changelog.md)
47 |
48 |
--------------------------------------------------------------------------------
/modules/NETN-ETR/README.md:
--------------------------------------------------------------------------------
1 | # NETN-ETR
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |3.0 |2024-03-08|NETN-BASE, NETN-SMC|
7 |
8 | > [Full Documentation](NETN-ETR.md)
9 |
10 | The NATO Education and Training Network Entity Tasking and Reports Module (NETN-ETR) provides a standard interface for sending tasks to simulated entities represented in a federated distributed simulation. It defines interactions that can be interpreted and executed by simulators that model the behaviour of a tasked entity. The module also defines report interactions sent by simulated entities.
11 |
12 | Based on the SMC_EntityControl pattern, the module defines a core set of tasks for simulated entities. Other NETN-FOM modules define additional tasks. The task definitions provided in NETN reflect the capabilities commonly found in Commercial-off-the-Shelf (COTS) Computer-Generated Forces (CGF) applications but are independent of any specific CGF.
13 |
14 | A tasked entity can be either a physical entity (e.g., platform or lifeform) or an aggregate entity. A task definition does not specify in detail how a simulation models the execution of the task.
15 |
16 | ## License
17 |
18 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
19 |
20 | The work includes the NETN-ETR.xml FOM Module and documentation.
21 |
22 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
23 |
24 | ## Versions, updates and extensions
25 |
26 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
27 |
28 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
29 |
30 | Version numbering of this FOM Module and associated documentation is based on the following principles:
31 |
32 | * A new official version number is in effect only when a new release is made in the Master branch.
33 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
34 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
35 | * Patches are released to fix minor issues that do not break backward compatibility.
36 |
37 | |Version|
38 | |---|
39 | |v1.1 - NETN-LBML. Developed by MSG-106 and MSG-134 for NETN FOM v2.0.|
40 | |v2.0 - Renamed and updated by MSG-163 for NETN FOM v3.0|
41 | |v3.0 - Updated by MSG-191 for NETN FOM v4.0|
42 |
43 | > [Changelog](changelog.md)
44 |
45 |
--------------------------------------------------------------------------------
/modules/NETN-MRM/README.md:
--------------------------------------------------------------------------------
1 | # NETN-MRM
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |3.0|2024-03-10|NETN-BASE, NETN-SMC, NETN-ORG|
7 |
8 | > [Full Documentation](NETN-MRM.md)
9 |
10 | The NATO Education and Training Network Multi-Resolution Modelling (NETN-MRM) module supports federations with entities represented at multiple resolution levels.
11 |
12 | Models of real-world objects, processes and phenomena are used to create a synthetic representation suitable for the simulation. Entities can be represented as individual objects or as part of an aggregated object. Entity representation can change during the simulation and switch between different levels of aggregation and individual physical entities.
13 |
14 | The NETN-MRM module specifies aggregation, disaggregation, division and merging of aggregate entities.
15 |
16 | NETN-MRM covers the following cases:
17 | * Aggregation of subunits into a representation of their parent unit
18 | * Disaggregation of a unit representation into subunits
19 | * Division of unit into subunits or physical entities
20 | * Merging of previously divided entities into a unit
21 |
22 | ## License
23 |
24 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
25 |
26 | The work includes the NETN-MRM.xml FOM Module and documentation.
27 |
28 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
29 |
30 | ## Versions, updates and extensions
31 |
32 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
33 |
34 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
35 |
36 | Version numbering of this FOM Module and associated documentation is based on the following principles:
37 |
38 | * A new official version number is in effect only when a new release is made in the Master branch.
39 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
40 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
41 | * Patches are released to fix minor issues that do not break backward compatibility.
42 |
43 | |Version|
44 | |---|
45 | |v1.1 - Initial version of NETN-MRM FOM Module released as part of NETN FOM v2.0.|
46 | |v2.0 - Updated version by MSG-163 to be part of NETN FOM v3.0.|
47 | |v3.0 - Updated version by MSG-191 to be part of NETN FOM v4.0|
48 |
49 | > [Changelog](changelog.md)
50 |
51 |
--------------------------------------------------------------------------------
/modules/NETN-CBRN/README.md:
--------------------------------------------------------------------------------
1 | # NETN-CBRN
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |v2.0|2024-03-10|RPR-Physical, NETN-DIM, NETN-BASE, NETN-ETR|
7 |
8 | > [Full Documentation](NETN-CBRN.md)
9 |
10 | The NATO Education and Training Network Chemical, Biological, Radiological and Nuclear (NETN-CBRN) provides a standard interface for representing CBRN release, detection, effects, and protective measures in a federated distributed simulation. E.g., the exposure effect on individual humans in a CBRN-contaminated Hazard area where the human is represented in one simulation and the effect is modelled in another federate simulation.
11 |
12 | CBRN are Chemical, Biological, Radiological and Nuclear materials that can be delivered intentionally as a weapon using conventional bombs, explosive materials and enhanced blast weapons (e.g., dirty bombs) or unintentionally caused by human error or natural or technological reasons, such as spills, accidental releases or leakages.
13 |
14 | The NETN-CBRN module specifies how to model CBRN-related events in a federated distributed simulation.
15 |
16 |
17 |
18 | ## License
19 |
20 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
21 |
22 | The work includes the NETN-CBRN.xml FOM Module and documentation.
23 |
24 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
25 |
26 | ## Versions, updates and extensions
27 |
28 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
29 |
30 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
31 |
32 | Version numbering of this FOM Module and associated documentation is based on the following principles:
33 |
34 | * A new official version number is in effect only when a new release is made in the Master branch.
35 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
36 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
37 | * Patches are released to fix minor issues that do not break backward compatibility.
38 |
39 | |Version|
40 | |---|
41 | |v1.1 - Initial version developed by MSG-106. Included in NETN FOM v2.0 and AMSP-04 Ed A.|
42 | |v1.2 - Minor update of the NETN-CBRN FOM Module developed by MSG-163 and included in AMSP-04 Ed B.|
43 | |v2.0 - Updated version developed by MSG-191. Release included in NETN FOM v4.0|
44 |
45 | > [Changelog](changelog.md)
46 |
47 |
--------------------------------------------------------------------------------
/modules/NETN-AIS/README.md:
--------------------------------------------------------------------------------
1 | # NETN-AIS
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |2.0|2024-03-10|NETN-BASE, RPR-Communication, NETN-ETR, NETN-ORG, NETN-SMC|
7 |
8 | > [Full Documentation](NETN-AIS.md)
9 |
10 | The purpose of the NATO Education and Training Network Automatic Identification System Module (NETN-AIS) is to:
11 |
12 | * represent vessel traffic in a simulation using AIS messages to, for example, communicate position status reports of vessels.
13 | * enable the exchange of AIS messages between HLA Federate Applications in real-time and non-real-time platform-level simulation.
14 | * allow HLA Federate Applications to use regular HLA interaction classes and parameters to represent vessel information and leave any translations to physical message formats to dedicated gateways.
15 |
16 |
17 | AIS is a worldwide automated tracking system used for sharing vessel identification and location information by propagating messages between nearby vessels and Vessel Traffic Services stations.
18 |
19 | The NETN-AIS module is a simulation-oriented representation of AIS messages. It does not focus on the physical message format defined by the AIS standard ITU-R M.1371-5. However, the module is aligned with this standard to enable easy mapping to and from live message formats.
20 |
21 | ## License
22 |
23 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
24 |
25 | The work includes the NETN-AIS.xml FOM Module and documentation.
26 |
27 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
28 |
29 | ## Versions, updates and extensions
30 |
31 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
32 |
33 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
34 |
35 | Version numbering of this FOM Module and associated documentation is based on the following principles:
36 |
37 | * A new official version number is in effect only when a new release is made in the Master branch.
38 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
39 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
40 | * Patches are released to fix minor issues that do not break backward compatibility.
41 |
42 | |Version|
43 | |---|
44 | |v1.0 - Developed by MSG-163 for NETN FOM v3.0|
45 | |v2.0 - Developed by MSG-191 for NETN FOM v4.0|
46 |
47 | > [Changelog](changelog.md)
48 |
49 |
--------------------------------------------------------------------------------
/modules/NETN-AIS/XmlSchema/NETN-AIS.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 | SISO EntityType value
10 |
11 |
12 |
13 |
14 |
15 | Enumeration values for the transmitter status.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | Specifies AIS station equipment attributes.
26 |
27 |
28 |
29 |
30 | The Maritime Mobile Service Identity (MMSI) of the AIS station.
31 |
32 |
33 |
34 |
35 | The type of transmitter.
36 |
37 |
38 |
39 |
40 | The initial status of the transmitter of the AIS station.
41 |
42 |
43 |
44 |
45 |
46 |
47 | Additional equipment attributes for AIS vessel.
48 |
49 |
50 |
51 |
52 |
53 |
54 | The International Maritime Organization (IMO) number is a unique identifier for vessels.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | Additional equipment attributes for AIS SAR aircraft.
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | Additional equipment attributes for AIS base station.
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 | Additional equipment attributes for AIS aid to navigation.
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/modules/NETN-TMR/README.md:
--------------------------------------------------------------------------------
1 | # NETN-TMR
2 |
3 |
4 | |Version| Date| Dependencies|
5 | |---|---|---|
6 | |3.0|2024-03-10|NETN-BASE, NETN-ORG, NETN-SMC|
7 |
8 | > [Full Documentation](NETN-TMR.md)
9 |
10 | The NATO Education and Training Network Transfer of Modelling Responsibilities (NETN-TMR) module provides a standard interface and pattern for transferring modelling responsibility between federates. It extends the HLA Ownership Management services by providing the means to trigger modelling responsibility transfer and publish the assigned modelling responsibilities of object instances.
11 |
12 | For example:
13 |
14 | * Transfer modelling responsibility between virtual and constructive simulation systems.
15 | * Transfer modelling responsibility between high- and low-fidelity models.
16 | * Transfer modelling responsibility to allow backup, maintenance or load-balancing.
17 |
18 | In a federated distributed simulation, the participating systems (federates) provide services that model the synthetic environment. Allocation of modelling responsibilities depends on individual federate capabilities, federation design agreements, and initial scenario conditions. The primary responsibility for modelling a simulated entity is allocated to, at most, one federate. However, during execution, the modelling responsibility and ownership of individual attributes may change.
19 |
20 | NETN-TMR covers the following cases:
21 | * Initialization with assigned modelling responsibilities for objects.
22 | * Explicit request to acquire modelling responsibility.
23 | * Triggering modelling responsibility transfer by updating the allocation of responsibility attribute.
24 |
25 | ## License
26 |
27 | Copyright (C) 2020 NATO/OTAN. This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
28 |
29 | The work includes the NETN-TMR.xml FOM Module and documentation.
30 |
31 | The licence gives you the right to use and redistribute the NETN FOM Module (XML file and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build on or extend the NETN module by referencing and including necessary scaffolding classes. You are NOT allowed to modify this FOM Module or its documentation without prior permission from the NATO Modelling and Simulation Group.
32 |
33 | ## Versions, updates and extensions
34 |
35 | All updates and versioning of this work are coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
36 |
37 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of this FOM Module please contact your national NMSG representative.
38 |
39 | Version numbering of this FOM Module and associated documentation is based on the following principles:
40 |
41 | * A new official version number is in effect only when a new release is made in the Master branch.
42 | * An update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or covers entirely new concepts.
43 | * An update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
44 | * Patches are released to fix minor issues that do not break backward compatibility.
45 |
46 | |Version|
47 | |---|
48 | |v1.1 - Released version part of NETN FOM v2.0 in AMSP-04 Ed A.|
49 | |v2.0 - Released version part of NETN FOM v3.0 in AMSP-04 Ed B.|
50 | |v3.0 - Released version part of NETN FOM v4.0 in AMSP-04 Ed C.|
51 |
52 | > [Changelog](changelog.md)
53 |
54 |
--------------------------------------------------------------------------------
/modules/NETN-ORG/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-ORG
2 |
3 | ### v1.0 - Initial version developed by MSG-163. Release included in NETN FOM v3.0
4 |
5 |
6 |
7 | ### v2.0 - Updated version developed by MSG-191. Release included in NETN FOM v4.0
8 |
9 | * Replaced `ORG_Root` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
10 |
11 | * Added `ORG_Root` attribute `Name`
12 |
13 | * Added object class `OrganizationElement`
14 |
15 | * Replaced `Unit` attribute `Name` with `ORG_Root` attribute `Name`
16 | * Replaced `Unit` attribute `Force` with `OrganizationElement` attribute `Organization`
17 | * Replaced `Unit` attribute `EntityType` with `OrganizationElement` attribute `EntityType`
18 | * Replaced `Unit` attribute `SymbolId` with `OrganizationElement` attribute `Symbol`
19 | * Replaced `Unit` attribute `Disposition` with `OrganizationElement` attribute `Location`
20 | * Replaced `Unit` attribute `CommunicationNetworks` with NETN-COM `Unit` attribute `CommunicationNetworks`
21 | * Replaced `Unit` attribute `EmbarkedIn` with `OrganizationElement` attribute `HostUnit`
22 | * Replaced `Unit` attribute `SymbolAmplification` with `OrganizationElement` attribute `Symbol`
23 | * Renamed `Unit` attribute `SuperiorUnit` to `AggregateUnit`
24 |
25 | * Added `Unit` attribute `HigherHeadquarters`
26 |
27 | * Renamed object class `EquipmentItem` to `Equipment`
28 | * Replaced `EquipmentItem` attribute `Name` with `ORG_Root` attribute `Name`
29 | * Replaced `EquipmentItem` attribute `EntityType` with `OrganizationElement` attribute `EntityType`
30 | * Removed `EquipmentItem` attribute `NatoStockNumber`
31 | * Replaced `EquipmentItem` attribute `SymbolId` with `OrganizationElement` attribute `Symbol`
32 | * Replaced `EquipmentItem` attribute `Disposition` with `OrganizationElement` attribute `Location`
33 | * Replaced `EquipmentItem` attribute `CommunicationNetworks` with NETN-COM `Equipment` attribute `CommunicationNetworks`
34 | * Removed `EquipmentItem` attribute `Resolution`
35 | * Replaced `EquipmentItem` attribute `MountedOn` with `OrganizationElement` attribute `HostUnit`
36 | * Replaced `EquipmentItem` attribute `SymbolAmplification` with `OrganizationElement` attribute `Symbol`
37 |
38 | * Replaced `Installation` attribute `Name` with `ORG_Root` attribute `Name`
39 | * Renamed `Installation` attribute `Owner` to `UnitInCommand`
40 | * Replaced `Installation` attribute `EntityType` with `OrganizationElement` attribute `EntityType`
41 | * Replaced `Installation` attribute `SymbolId` with `OrganizationElement` attribute `Symbol`
42 | * Replaced `Installation` attribute `Location` with `OrganizationElement` attribute `Location`
43 | * Replaced `Installation` attribute `SymbolAmplification` with `OrganizationElement` attribute `Symbol`
44 |
45 | * Renamed `Force` attribute `Relations` to `Relationships`
46 | * Replaced `Force` attribute `Name` with `ORG_Root` attribute `Name`
47 |
48 | * Renamed object class `Force` to `Organization`
49 |
50 | * Added `Organization` attribute `ForceIdentifier`
51 | * Added `Organization` attribute `CountryCode`
52 |
53 |
54 | * Added `BaseEntity` attribute `Organization`
55 | * Removed object class `FederateApplication`
56 |
57 | * Added datatype `ForceIdentifierEnum`
58 |
59 | * Removed datatype `Text1`
60 | * Removed datatype `Text2`
61 | * Removed datatype `Text3`
62 | * Removed datatype `Text5`
63 | * Removed datatype `Text8`
64 | * Removed datatype `Text9`
65 | * Removed datatype `Text15`
66 | * Removed datatype `Text20`
67 | * Removed datatype `Text21`
68 | * Removed datatype `Text24`
69 | * Removed datatype `Text255`
70 | * Removed datatype `EquipmentSymbolAmplificationStruct`
71 | * Removed datatype `UnitSymbolAmplificationStruct`
72 | * Removed datatype `InstallationSymbolAmplificationStruct`
73 | * Removed datatype `FormationInt32`
74 | * Removed datatype `FormationPositionStruct`
75 | * Removed datatype `HostilityStatusCodeEnum32`
76 | * Removed datatype `ModelResolutionTypeEnum32`
77 | * Removed datatype `NatoStockNumberArray13`
78 | * Removed datatype `ArrayOfCommunicationNetworks`
79 | * Removed datatype `CommunicationNetworkStruct`
80 | * Removed datatype `CommunicationServiceTypeEnum32`
81 | * Removed datatype `DispositionStruct`
82 |
83 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # NETN FOM
2 | NATO Education and Training Network (NETN) Federation Object Model (FOM)
3 |
4 |
5 | ## Executive Summary
6 |
7 |
8 | Efficient and effective use of NATO and national Modelling & Simulation (M&S) capabilities, to support training, requires standards for connecting and integrating M&S components across the training system enterprise.
9 |
10 | The NATO Education and Training Network Federation Object Model (NETN-FOM) document provides a common information exchange data model for developing interoperable distributed simulation systems.
11 |
12 | The NETN-FOM focuses on technical interoperability issues in distributed simulation and provides patterns for scenario initialization, transfer of modelling responsibilities, simulation entity tasking and patterns for managing dynamic change of model resolution.
13 |
14 | The AMSP-04 document provides a summary of all NETN-FOM modules, key design patterns and main concepts. Full on-line documentation and all related data models and files are provided through http://www.github.org/AMSP-04
15 |
16 |
17 |
18 | ## Licence
19 |
20 | Copyright (C) 2020 NATO/OTAN.
21 | This work is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](LICENCE.md).
22 |
23 | The work includes all the NETN FOM Modules and related [documentation](NETN-FOM.md).
24 |
25 | Above licence gives you the right to use and redistribute the NETN FOM (XML files and Documentation) in its entirety without modification. You are also allowed to develop new FOM Modules (in separate XML files and separate documentation) that build-on/extends the NETN FOM by reference and including necessary scaffolding classes. You are NOT allowed to modify the NETN FOM or its documentation without prior permission by the NATO Modelling and Simulation Group.
26 |
27 | ## Versions, updates and extensions
28 |
29 | All updates and versioning of this work is coordinated by the NATO Modelling and Simulation Coordination Office (MSCO), managed by the NATO Modelling and Simulation Group (NMSG) and performed as NATO Science and Technology Organization (STO) technical activities in support of the NMSG Modelling and Simulation Standards Subgroup (MS3).
30 |
31 | Feedback on the use of this work, suggestions for improvements and identified issues are welcome and can be provided using GitHub issue tracking. To engage in the development and update of NETN FOM, please contact your national NMSG representative.
32 |
33 | Version numbering of the NETN FOM and associated documentation is based on the following principles:
34 |
35 | * New official version number is assigned and in effect only when a new release is made in the Master branch.
36 | * Updates in the Develop branch will not change the version number.
37 | * Update of the major version number is made if the change constitutes a major restructuring, merging, addition or redefinition of semantics that breaks backward compatibility or cover entirely new concepts.
38 | * Update of the minor version number is made if the change constitutes minor additions to existing concepts and editorial changes that do not break backward compatibility but may require updates of software to use new concepts.
39 | * Patches are released to fix minor issues that do not break backward compatibility.
40 |
41 | |Version|Description|
42 | |---|---|
43 | |v1.0|Initial release of NETN FOM as developed by MSG-068 |
44 | |v2.0|Release of NETN FOM included in AMSP-04 Ed A|
45 | |v3.0|Release of NETN FOM included in AMSP-04 Ed B|
46 | |v4.0|Release of NETN FOM included in AMSP-04 Ed C|
47 |
48 | [Changelog](changelog.md)
49 |
50 | ## Repository structure
51 | * [Modules](modules/) contain each module in its sub folder, these sub-folder contain the fom file, documentation and any related files.
52 | * [FomFiles_Merged_HLA_Evolved](FomFiles_Merged_HLA_Evolved/) contain a merged version of the entire NETN 4 and RPR modules in HLA Evolved format.
53 | * [FomFiles_HLA4](FomFiles_HLA4/) contains only the Fom files in HLA 4 format, no documentation, sub-folders or extra files.
54 |
55 |
56 | ## Maintenance on GitHub
57 | * The master branch of the NETN FOM repository contains the official public releases of the FOM.
58 | * The develop branch of the NETN FOM repository contains the intermediate baseline releases of the FOM and the lasest build/merge of other feature branches/forks used by members of the maintenance team to update the FOM.
59 |
60 | [Work Flow](flow.md)
61 |
62 | [Naming Conventions](NamingConventions.md)
63 |
64 | ## Documentation
65 |
66 | [Full Documentation](NETN-FOM.md)
67 |
68 |
--------------------------------------------------------------------------------
/modules/NETN-TMR/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-TMR
2 |
3 | ### v1.1 - Released version part of NETN FOM v2.0 in AMSP-04 Ed A.
4 |
5 | v1.0.1 XML Schema Reference Changed
6 | v1.0.2 - Spelling correction at enumerations
7 | v1.0.3 - Adding AttributeValues
8 | v1.0.3r3 - Adding reason
9 | v1.0.3r4 - Added parameter Respondent at interaction TMR_OfferTransferModellingResponsibility and enumeration value NoofferReasonEnum32.OwnershipStateNotApplicableWithRequest
10 | v1.0.3r5 - Added enumeration value NoofferReasonEnum32.EntityNotKnown
11 | V1.0.3r6 - Change definition of data type TransactionId, a counter and the federate handle
12 | v1.1.0r1 - Added interactions TMR_CancelRequest and TMR_Status
13 | v1.1.0 - Removed "r1" from module name
14 | v1.1.1 - Update of Dependency table
15 | v1.1.2 - Rename of enumeration values (AttributeSetTooRestricted, AttributeSetTooExtensive).
16 | v1.1.3 - Rename of enumeration value (FederateTooBusy).
17 |
18 |
19 | ### v2.0 - Released version part of NETN FOM v3.0 in AMSP-04 Ed B.
20 |
21 | * Added `modelIdentification` `useLimitation` to reflect Scope of FOM Module
22 | * Added `modelIdentification` `glyph`
23 | * Added parameter `ResponseFederate` to interaction class `TMR_RequestTransferModellingResponsibility`
24 |
25 | * Moved parameter `RequestFederate` from interaction class `TMR` to `TMR_InitiateTransferModellingResponsibility`
26 | * Moved parameter `ResponseFederate` from interaction class `TMR` to `TMR_InitiateTransferModellingResponsibility`
27 | * Moved datatype `FederateName` to NETN-BASE.
28 | * Moved datatype `CancellationReasonEnum32` to NETN-BASE.
29 | * Moved datatype `TransactionId` to NETN-Base
30 |
31 | * Updated `modelIdentification` `securityClassification` from `unclassified` to `Not Classified`
32 | * Updated `modelIdentification` `other` to include license information
33 | * Updated `modelIdentification` `reference` to only refer to directly dependent FOM Modules
34 | * Updated `modelIdentification` `purpose` to reflect Purpose of FOM Module
35 | * Updated `modelIdentification` `description` to reflect Introduction of FOM Module
36 | * Updated InteractionClass `TMR` to `TMR_Interaction` and renamed parameter `TransactionID` to `EventId`
37 | * Updated InteractionClass `TMR_OfferTransferModellingResponsibility` to `OfferTransfer`
38 | * Updated InteractionClass `TMR_RequestTransferModellingResponsibility` to `RequestTransfer`
39 | * Updated InteractionClass `TMR_CancelRequest` to `CancelRequest`
40 | * Updated InteractionClass `TMR_TransferResult` to `TransferResult` and parameter `TransferOk` to `IsCompleted`
41 | * Updated InteractionClass `TMR_InitiateTransferModellingResponsibility` to `InitiateTransfer`
42 | * Updated EnumerateDatatype name `TransferTypeEnum32` to `TransferEnumType`
43 | * Updated EnumerateDatatype name `NoOfferReasonEnum32` to `NoOfferReasonEnumType`
44 | * Updated EnumeratedDatatype name `NoofferReasonEnum32` to `NoOfferReasonEnum32` and enumeration `OwnershipStateNotApplicableWithRequest` to `OwnershipStateNotCompatibleWithRequest`
45 | * Updated ArrayDatatype name `ArrayOfAttributes` to `AttributeNamesType`
46 | * Updated Paramter `isOffering` of InteractionClass `TMR_OfferTransferOfModellingResponsibility` to `IsOffering`
47 |
48 | * Removed Parameter `CapabilityType` from InteractionClass `TMR_RequestTransferModellingResponsibility`
49 | * Removed Parameter `CapabilityType` from InteractionClass `TMR_InitiateTransferModellingResponsibility`
50 | * Removed Parameter `Respondent` from InteractionClass `TMR_OfferTransferModellingResponsibility`
51 | * Removed Parameter `Initiating` of interaction class `TMR_InitiateTransferModellingResponsibility`
52 | * Removed Parameter `InstanceAttributeValues` from InteractionClass `TMR_RequestTransferModellingResponsibility`
53 | * Removed Parameter `InstanceAttributeValues` from InteractionClass `TMR_InitiateTransferModellingResponsibility`
54 | * Removed EnumeratedDatatype `CapabilityTypeEnum32`
55 | * Removed ArrayDatatype `ArrayOfInstanceAttributeValues`
56 | * Removed ArrayDatatype `ArrayOfAttributeValues`
57 | * Removed ArrayDatatype `ArrayOfBytes`
58 | * Removed FixedRecordDatatype `InstanceAttributeValuesStruct`
59 | * Removed FixedRecordDatatype `AttributeValueStruct`
60 |
61 |
62 | ### v3.0 - Released version part of NETN FOM v4.0 in AMSP-04 Ed C.
63 |
64 | * Removed All Interaction Classes
65 | * Removed All Datatypes
66 |
67 | * Added Dependency on `NETN-ETR`
68 | * Added Dependency on `NETN-ORG`
69 |
70 | * Added Object Class `TMR_FederateApplication`
71 | * Added Interaction Class `RequestTransfer`
72 |
73 | * Added `HLAobjectRoot` attribute `FederateApplication`
74 | * Added `HLAinteractionRoot` parameter `FederateApplication`
75 |
76 |
--------------------------------------------------------------------------------
/modules/NETN-BASE/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-BASE
2 |
3 | ### v1.0 - Initial version developed by MSG-106 and MSG-134. Release included in NETN FOM v2.0
4 |
5 | * v1.0.0 - First version in NETN FOM v2
6 | * v1.0.1 - Added array data type: ArrayOfWorldLocation3 (moved from NETN_Aggregate FOM module)
7 | * v1.0.2 - Renamed data type, new name: ArrayOfWorldLocationStruct3. Updated References, Dependency
8 |
9 |
10 | Previous history
11 | Common datatypes were defined in NETN FOM v1.0 modules NETN_AggDeagg_v1.07_2010, NETN_Service_Consumer_Provider_v1.0.3_2010 and NETN_Logistics_v1.1.2_2010.
12 |
13 |
14 | ### v2.0 - Updated version developed by MSG-163. Release included in NETN FOM v3.0
15 |
16 | * Changed `modelIdentification` `securityClassification` from `unclassified` to `Not Classified`
17 | * Changed `modelIdentification` `other` to include license information
18 | * Changed `modelIdentification` `useHistory` to only include formally released versions
19 | * Added datatype `AltitudeMeterFloat64`
20 | * Added datatype `DegreesPerSecondFloat32`
21 | * Added datatype `DirectionDegreesFloat32`
22 | * Added datatype `DraughtMeterFloat32`
23 | * Modified datatype `TimeSecInt64` to `EpochTimeSecInt64`
24 | * Added datatype `IMOType`
25 | * Added datatype `LatLongDegreesFloat64`
26 | * Added datatype `MassConcentrationFloat32`
27 | * Added datatype `MassDensityFloat32`
28 | * Added datatype `MIDType`
29 | * Added datatype `PercentFloat64`
30 | * Updated datatype `QuantityFloat32`
31 | * Added datatype `QuantityFloat64`
32 | * Added datatype `QuantityInt32`
33 | * Added datatype `ShipTypeType`
34 | * Added datatype `TimeSecInt32`
35 | * Added datatype `CancellationReasonEnum32`
36 | * Added datatype `EchelonEnum32`
37 | * Added datatype `EchelonEnum32`
38 | * Added datatype `SymbolStandardEnum32`
39 | * Added datatype `GeoLocationTypeEnum32`
40 | * Added datatype `ArrayOfStringType`
41 | * Added datatype `ArrayOfText64`
42 | * Added datatype `FederateName`
43 | * Removed datatype `ArrayOfWorldLocationStruct2`
44 | * Removed datatype `ArrayOfWorldLocationStruct3`
45 | * Added datatype `GeodeticPath`
46 | * Added datatype `GeodeticPolygon`
47 | * Added datatype `SymbolIdentifier15`
48 | * Added datatype `SymbolIdentifier30`
49 | * Added datatype `Text64`
50 | * Added datatype `TransactionId`
51 | * Added datatype `UUID`
52 | * Added datatype `GeocentricCircle`
53 | * Added datatype `GeodeticCircle`
54 | * Added datatype `GeodeticLocation`
55 | * Added datatype `GeodeticQuadrangle`
56 | * Added datatype `GeodeticPoint`
57 | * Added datatype `AreaVariantStruct`
58 | * Added datatype `PathVariantStruct`
59 | * Added datatype `PointVariantStruct`
60 | * Added datatype `SymbolVariantStruct`
61 |
62 |
63 | ### v3.0 - Updated version developed by MSG-191. The release is included in NETN FOM v4.0
64 |
65 | * Added `HLAobjectRoot` attribute `UniqueId`
66 |
67 | * Added `HLAobjectRoot` attribute `FederateApplication`
68 |
69 | * Added `HLAobjectRoot` attribute `CreateTime`
70 | * Added `HLAinteractionRoot` attribute `UniqueId`
71 | * Added `HLAinteractionRoot` attribute `FederateApplication`
72 | * Added `HLAinteractionRoot` attribute `SendTime`
73 |
74 | * Removed datatype `AreaVariantStruct`
75 | * Removed datatype `PathVariantStruct`
76 | * Removed datatype `PointVariantStruct`
77 | * Removed datatype `PointTypeEnum32`
78 | * Removed datatype `PathTypeEnum32`
79 |
80 | * Removed datatype `QuantityFloat32`
81 |
82 | * Replaced datatype `NETN_SupplyStruct` with `SupplyStatusStruct`
83 | * Replaced datatype `ArrayOfWorldLocationStruct` with `LocationStructArray`
84 | * Replaced datatype `NETN_ArrayOfSupplyStruct` with `ArrayOfSupplyStatus`
85 |
86 | * Removed datatype `TransactionId`
87 | * Removed datatype `UuidArrayOfHLAbyte16`
88 | * Removed datatype `ArrayOfText64`
89 | * Removed datatype `GeodeticPath`
90 | * Removed datatype `TimeSecInt32`
91 | * Removed datatype `GeoLocationTypeEnum32`
92 | * Removed datatype `ArrayOfString`
93 | * Removed datatype `Text64`
94 | * Removed datatype `CancellationReasonEnum32`
95 | * Replaced datatype `PercentFloat64` with `PercentFloat32`
96 | * Replaced datatype `EpochTimeSecInt64` with `EpochTime`
97 | * Added datatype `EquipmentSymbolAmplificationStruct`
98 | * Added datatype `UnitSymbolAmplificationStruct`
99 | * Added datatype `InstallationSymbolAmplificationStruct`
100 | * Added datatype `TimeMillisecondIn64`
101 | * Added datatype `EpochTime`
102 | * Added datatype `HostilityStatusCodeEnum32` moved from NETN-ORG
103 | * Added datatype `DamageStatusEnum32`
104 | * Added datatype `LocationStruct`
105 | * Added datatype `SymbolAmplificationVariant`
106 |
107 | * Added datatype `SymbolStruct`
108 |
109 | * Added datatype `TransmitterOperationalStatusEnum8`
110 | * Added datatype `ResourceStatusStruct`
111 | * Added datatype `ArrayOfResourceStatus`
112 |
113 | * Changed representation of `QuantityInt32` to `HLAinteger32BE`
114 |
115 | * Replaced datatype `LatLongDegreesFloat64` with `LatitudeFloat64` and `LongitudeFloat64`
116 |
117 |
--------------------------------------------------------------------------------
/modules/NETN-LOG/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-LOG
2 |
3 | ### v1.1 - Initial version developed by MSG-068 for NETN FOM v1.0.
4 |
5 | In NETN FOM v 2.0 this module was replaced with several FOM modules to represent different services. A Base FOM Module was used to represent the basic Service-Consumer Provider (SCP) pattern.
6 |
7 | These modules were initially developed by MSG-106 and prepared for release by MSG-134.
8 |
9 | Modules in AMSP-04 Ed. A. NATO Education and Training Network Federation Architecture and FOM Design (NETN FAFD) were:
10 | * NETN-SCP-BASE v1.1.3
11 | * NETN-Supply v1.1.2
12 | * NETN-Storage v1.2.2
13 | * NETN-Repair v 1.2.1
14 | * NETN-Transport v1.1.2
15 |
16 |
17 | ### v2.0 - Re-merged version of NETN-LOG FOM Module updated by MSG-163 for NETN FOM v3.0. Includes NETN-SCP, NETN-Supply, NETN-Storage, NETN-Repair and NETN-Transport.
18 |
19 | * FOM Modules NETN-SCP-BASE v1.1.3, NETN-Supply v1.1.2, NETN-Storage v1.2.2, NETN-Repair v1.2.1 and NETN-Transport v1.1.2 merged into new module NETN-LOG
20 | * Prefix dropped from all interaction classes except interaction class LOG_Service
21 | * Added note for `modelIdentification` to provide additional description of FOM module
22 | * Added glyph
23 | * Updated `releaseRestriction`, `purpose`, `description` and `useLimitation`
24 | * Changed `securityClassification` from `Unclassified` to `Not Classified`
25 |
26 | * Removed object class `SCP_Facility`
27 | * Removed interaction class `RequestStorage`
28 | * Removed interaction class `OfferStorage`
29 | * Removed interaction class `StorageComplete`
30 | * Removed interaction class `ReadyToReceiveStorage`
31 | * Removed interaction class `ReadyToReceiveRepair`
32 | * Removed interaction class `ReadyToReceiveSupply`
33 |
34 | * Removed parameter `LOG_Service.Consumer`
35 | * Removed parameter `LOG_Service.Provider`
36 | * Removed parameter `RequestSupply.LoadingDoneByProvider`
37 | * Removed parameter `OfferSupply.LoadingDoneByProvider`
38 | * Removed parameter `LOG_Service.ServiceType`
39 | * Removed parameter `OfferTransport.OfferType`
40 | * Removed parameter `OfferService.IsOffering`
41 | * Removed parameter `RequestRepair.Appointment`
42 | * Removed parameter `RequestSupply.Appointment`
43 | * Removed parameter `OfferRepair.Appointment`
44 | * Removed parameter `OfferSupply.Appointment`
45 |
46 | * Removed datatype `TransportStruct`
47 | * Removed datatype `DataTStruct`
48 | * Removed datatype `DataEDStruct`
49 | * Removed datatype `TransportTypeEnum32`
50 | * Removed datatype `ServiceIdentifier`
51 | * Removed datatype `LOG_ServiceTypeEnum8`
52 | * Removed datatype `ServiceDescription`
53 | * Removed datatype `NETN_RepairTypeEnum16`
54 |
55 | * Added interaction class `LOG_Interaction.CancelOffer`
56 | * Renamed interaction class `CancelService` to `CancelRequest`
57 | * Renamed interaction class `LOG_Service` to `LOG_Interaction`
58 |
59 | * Added parameter `RequestService.ConsumerEntity`
60 | * Added parameter `RequestService.ProviderEntity`
61 | * Added parameter `OfferService.OfferId`
62 | * Added parameter `AcceptOffer.OfferId`
63 | * Added parameter `OfferService.ProviderEntity`
64 | * Added parameter `OfferService.OfferType`
65 | * Added parameter `RequestService.StartAppointment`
66 | * Added parameter `RequestTransport.EndAppointment`
67 | * Added parameter `OfferService.StartAppointment`
68 | * Added parameter `OfferTransport.EndAppointment`
69 | * Added parameter `RequestSupply.TransferDirection`
70 |
71 | * Renamed parameter `LOG_Service.TransactionId` to `LOG_Interaction.RequestId`
72 | * Renamed parameter `OfferService.RequestTimeOut` to `OfferService.OfferTimeOut`
73 | * Changed parameter datatype for `LOG_Service.ServiceID` to `TransactionId`
74 | * Changed parameter datatype for `RequestTransport.TransportData` to `ArrayOfUuid`.
75 | * Changed parameter datatype for `OfferTransport.TransportData` to `ArrayOfUuid`.
76 |
77 | * Renamed datatype `NETN_ServiceIdentifier` to `ServiceIdentifier`
78 | * Renamed datatype field `RepairStruct.MaterialID` to `RepairStruct.MaterielId`
79 | * Changed datatype for `ArrayOfRepairTypeEnum` from `NETN_RepairTypeEnum16` to `RepairTypeEnum16`
80 |
81 |
82 | ### v3.0 - Updated version developed by MSG-191. Release included in NETN FOM v4.0
83 |
84 | * MAJOR UPDATE TO USE NETN-ETR Patterns
85 | * Add dependency on NETN-ETR
86 | * Replaced all interaction classes
87 | * Removed datatype `OfferTypeEnum32`
88 | * Removed datatype `TransferDirectionEnum32`
89 | * Removed datatype `RepairStruct`
90 | * Removed datatype `ArrayOfRepairStruct`
91 | * Removed datatype `ArrayOfRepairTypeEnumStruct`
92 |
93 | * Updated datatype `AppointmentStruct`
94 |
95 | * Extended`AggregateEntity` object class
96 | * Added `AggregateEntity` attribute `Supplies`
97 | * Added `AggregateEntity` attribute `Equipment`
98 | * Added `AggregateEntity` attribute `Personnel`
99 |
100 | * Extended NETN-ETR `RequestTask`
101 | * Added `RequestTask` interaction subclass `Resupply`
102 | * Added `RequestTask` interaction subclass `Repair`
103 | * Added `RequestTask` interaction subclass `Transport`
104 |
105 |
106 |
107 | * Added `SMC_EntityControl` interaction subclass `SetEquipmentStatus`
108 | * Added `SMC_EntityControl` interaction subclass `SetPersonnelStatus`
109 | * Added `SMC_EntityControl` interaction subclass `SetSuppliesStatus`
110 |
111 | * Added datatype `RepairTaskStruct`
112 | * Added datatype `ResupplyTaskStruct`
113 | * Added datatype `TransportTaskStruct`
114 | * Added datatype `RepairTypeEnum16`
115 | * Added enumerators to datatype `EntityControlActionEnum`
116 | * Added alternatives to NETN-ETR datatype `TaskDefinitionVariantRecord`
117 | * Added alternatives to NETN-ETR datatype `TaskProgressVariantRecord`
118 |
119 |
--------------------------------------------------------------------------------
/flow.md:
--------------------------------------------------------------------------------
1 | # Work-flow
2 |
3 | ## Repositories
4 | | Type | Description |
5 | | ---| ---|
6 | | NETN FOM | Main Repository for the entire FOM including all related FOM Modules.|
7 | | NETN-* | Repository for a specific FOM Module.|
8 |
9 | ## Branches
10 |
11 | | Type | Description |
12 | | ---| ---|
13 | | Master Branch |The latest officially released version. |
14 | | Develop Branch |The lastest development version with reviewed changes. |
15 | | Maintenance Branches |Opened to maintain specific baseline or older version. |
16 | | Release Branches |Temporary, used to prepare for a release.|
17 | | Edit Branches |Temporary, used to develop proposed updates and closed after pull-request review and approval.|
18 |
19 | ## Making changes
20 | All changes should be initiated by creating a GitHub Issue. Issues may also be created for the purpose of discussing possible future changes without suggesting a concrete plan of action.
21 |
22 | The develop branch should at all times contain only changes that have been reviewed and approved by at least one party that was not directly involved in making them. To this end, we adapt a workflow involving edit branches, pull requests and pull request reviews.
23 |
24 | The workflow is closely based the commonly used “Gitflow” workflow, originally presented [here](https://nvie.com/posts/a-successful-git-branching-model/).
25 |
26 | ### Creating a Pull Request
27 | When ready to make a change, create a branch based on the develop branch. Name the branch on the form “edit/...”, and include the number of the issue where the changes are discussed in the branch name.
28 |
29 | An edit branch may refer to more than one Issue, in which case its name should preferably include the numbers of all of them. This is not mandatory, however.
30 |
31 | Make the changes on the branch, and push the branch to GitHub.
32 |
33 | When you think the changes are ready, create a Pull Request, pointing it to the develop branch. Add reviewers to the PR as appropriate. Link the PR to each Issue it addresses, if it has not been automatically linked already.
34 |
35 | ### Reviewing a Pull Request
36 | When reviewing a pull request, comment on individual changes in the “Files changed” view. Then click the button marked “Review changes”, add any additional comments not related to individual changes, select Comment, Approve or Request changes, and submit the review.
37 |
38 | ### Merging a Pull Request
39 | Any edits that happen as a result of discussions and reviews of the PR should be committed and pushed to the same edit branch, which will automatically update the Pull Request.
40 |
41 | The PR must be reviewed and approved by at least one party from a different organization than the creator of the PR before it can be merged to the develop branch.
42 |
43 | If discussions of a PR raises questions that have not been addressed in a GitHub Issue, they should be added to a new or existing Issue and agreed upon before the PR is approved or merged.
44 |
45 | ## Releases
46 | ### Making a release of a single module
47 | 1. Create a release branch based on the develop branch, with a name on the form “release/...”, including the intended name of the release in the branch name.
48 | 2. Make any final, pre-RC changes on the release branch, such as setting correct meta data, updating the changelog or adding documentation. Remember this includes setting the version name to the upcoming release or release candidate version wherever it is mention inside the repository, such as the FOM module identification table.
49 | 3. Create a tag at the commit intended as the release candidate. Name it -rcN, where N is the sequential number of the RC for this version, starting at 1.
50 | 4. Optional: Make a release.
51 | 5. Perform review activities.
52 |
53 | If changes are necessary before a full release:
54 |
55 | * Continue from step 2, making any necessary changes
56 |
57 | If, after step 5, the RC is to be promoted to a full release:
58 |
59 | 6. Create a tag with the same name as the version to be released.
60 | 7. Make a release.
61 | 8. Merge the release branch into the develop branch and the master branch, then delete the release branch.
62 |
63 | ### Making a release of the entire NETN FOM
64 | A release of the NETN FOM as a whole must include specific, released versions of every individual FOM module that makes up the FOM.
65 |
66 | 1. Create a release branch based on the develop branch, with a name on the form “release/...”, including the intended name of the release in the branch name.
67 | 2. On this branch, replace all individual FOM module files whose versions will change in this release with the new released version. FOM module versions that are RC's are allowed.
68 | 3. Make any final, pre-RC changes on the release branch, such as setting correct meta data, updating the changelog or adding documentation. Remember this includes setting the version name to the upcoming release or release candidate version wherever it is mention inside the repository.
69 | 4. Create a tag at the commit intended as the release candidate. Name it -rcN, where N is the sequential number of the RC for this version, starting at 1.
70 | 5. Optional: Make a release.
71 | 6. Perform review activities.
72 |
73 | If changes are necessary before a full release:
74 |
75 | * Continue from step 2, making any necessary changes to individual FOM modules, making new releases of those FOM modules, and replacing their files with their new versions on the release branch.
76 |
77 | If, after step 6, the RC is to be promoted to a full release:
78 |
79 | 7. Make final releases of any RC versions of individual FOM modules included in this RC. The final FOM module releases must be identical to their respective RC versions in all but administrative details. Replace the RC version files with the final release version files on the release branch.
80 | 8. Create a tag with the same name as the version to be released.
81 | 9. Make a release.
82 | 10. Merge the release branch into the develop branch and the master branch, then delete the release branch.
83 |
84 | ## Maintenance branches
85 | For practical purposes, it is sometimes necessary to maintain older versions of individual FOM modules, or the FOM as a whole. In order to do maintenance work on an old version, create a new branch based on the tag for the released version in question. Name it -maintenance. Maintenance branches are permanent, and will never be deleted. Maintenance branches may be merged to the develop branch if this is desired, but the opposite will never happen. Releases may be made on a maintenance branch according to the regular release procedures, as if the maintenance branch was the develop branch, except there is no equivalent to the master branch. Names of maintenance releases must never clash with names of regular releases.
--------------------------------------------------------------------------------
/modules/NETN-ETR/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-ETR
2 |
3 | ### v1.1 - NETN-LBML. Developed by MSG-106 and MSG-134 for NETN FOM v2.0.
4 |
5 | The NETN-ETR FOM Module is based on the previously released NETN-LLBML FOM module developed by MSG-068, updated by MSG-106 and prepared for release by MSG-134.
6 |
7 | The version of LLBML used in AMSP-04 Ed. A. NATO Education and Training Network Federation Architecture and FOM Design (NETN FAFD) is:
8 | * NETN-LBML_v1.1.0.xml
9 |
10 |
11 | ### v2.0 - Renamed and updated by MSG-163 for NETN FOM v3.0
12 |
13 | * Added a new attribute to ETR_Task: CommunicationNetworkIdentifiers
14 | * Added new Task: DisruptCommunicaction
15 | * Added new Task: Observe
16 | * Added SetTransmitterStatus
17 | * Added MagicMove
18 | * Added MagicResource* Added QuerySupportedCapabilities interaction
19 | * Added CapabilitiesSupported interaction
20 | * Added EstablishCheckPoint
21 | * Added OperateCheckPoint
22 | * Added RemoveCheckPoint
23 | * Added StopAtSideOfRoad
24 | * Added CreateObstacle
25 | * Added CreateMinefield
26 | * Added ClearObstacle
27 | * Added AddPassage
28 | * Added RemovePassage
29 | * Added Patrol
30 | * Added PatrolRepeating
31 |
32 | * Removed FollowRoute
33 |
34 | * Renamed MoveToUnit to MoveToEntity
35 | * Renamed FollowUnit to FollowEntity
36 | * Renamed VehicleMount to Mount
37 | * Renamed VehicleDismount to Dismount
38 | * Renamed FireIndirectWM to FireAtLocationWM
39 | * Renamed FireAtUnit to FireAtEntity
40 | * Renamed FireDirectWM to FireAtEntityWM
41 | * Renamed ChangeOrderedSpeed to SetOrderedSpeed
42 | * Renamed ChangeOrderedAltitude to SetOrderedAltitude
43 | * Renamed Parameter SensorReport.SpottedEnities to SpottedEntities.
44 | * Renamed Parameter MOUNT.EntiityId to EntityId
45 |
46 |
47 | ### v3.0 - Updated by MSG-191 for NETN FOM v4.0
48 |
49 | * Added `BaseEntity` attribute `SupportedTasks`
50 | * Added `BaseEntity` attribute `TaskProgress`
51 | * Added `BaseEntity` attribute `CurrentTasks`
52 | * Added `BaseEntity` attribute `PlannedTasks`
53 | * Added `BaseEntity` attribute `PreviousTasks`
54 |
55 |
56 | * Added object Class `ETR_DelegatedTask`
57 |
58 | * Removed interaction class `ETR_Root`
59 | * Removed interaction class `ETR_SimCon`
60 | * Removed interaction class `ETR_TaskManagement`
61 | * Moved interaction class `ETR_Task` as subclass of `SMC_EntityControl` and renamed to `Task`
62 | * Moved interaction class `ETR_Report` as subclass of `HLAinteractionRoot`
63 |
64 | * Merged `CancelAllTasks` and `CancelSpecifiedTasks` to `RequestCancelTask`
65 | * Moved and renamed interaction class `TaskStatusReport` as `ETR_Report` subclass `TaskStatusUpdate`
66 | * Moved all `ETR_Task` subclasses to `Task` subclasses
67 | * Replaced all task interaction parameters with `TaskParameters` with different datatypes for each task type.
68 |
69 | * Removed `QueryCapabilitiesSupported` interaction class
70 | * Removed `CapabilitiesSupported` interaction class
71 |
72 | * Moved and renamed `MagicResource` interaction class to NETN-LOG `RequestTask` subclass `SetResourceStatus`
73 | * Moved `MagicMove` interaction class as `RequestTask` subclass
74 | * Changed `MagicMove` parameter `Heading` datatype to `DirectionDegreesFloat32`
75 | * Changed `MagicMove` parameter `Location` datatype to `LocationStruct`
76 | * Removed `MagicMove` parameter `LocationUuid`
77 |
78 | * Moved `AddPassage` interaction class to NETN-SE `CreateBreach`
79 | * Moved `ClearObstacle` interaction class to NETN-SE `ClearEngineering`
80 | * Moved `CreateObstacle` interaction class to NETN-SE `CreateObstacle`
81 | * Moved `CreateMinefield` interaction class to NETN-SE `LayMinefield`
82 | * Moved `EstablishCheckPoint` interaction class to NETN-SE `EstablishCheckpoint`
83 | * Moved `RemoveCheckPoint` interaction class to NETN-SE `ClearEngineering`
84 | * Moved `RemovePassage` interaction class to NETN-SE `ClearEngineering`
85 | * Moved `DisruptCommunication` interaction class to NETN-COM `DisruptCommunication`
86 | * Moved `SetTransmitterStatus` interaction class to NETN-COM `SetTransmitterStatus`
87 | * Removed `TurnToOrientation` interaction class
88 | * Merged `PatrolRepeating` and `Patrol` interaction classes to `Patrol`
89 | * Merged `FireAtEntity` and `FireAtEntityWM` interaction classes to `DirectFire`
90 | * Merged `FireAtLocation` and `FireAtLocationWM` interaction classes to `IndirectFire`
91 | * Renamed `Move` interaction class to `MoveInDirection`
92 | * Added `MoveByRoute` interaction class
93 | * Added `OperateObservationPost` interaction class
94 | * Renamed `OperateCheckPoint` interaction class to `OperateCheckpoint`
95 | * Removed `MoveToEntity` interaction class
96 | * Renamed `SetOrderedAltitude` interaction class to `ChangeAltitude`
97 | * Renamed `SetOrderedSpeed` interaction class to `ChangeSpeed`
98 | * Renamed `TurnToHeading` interaction class to `ChangeHeading`
99 |
100 | * Added `RequestTaskStatus` interaction class
101 | * Added `RequestTaskDelegation` interaction class
102 | * Added `RequestReport` interaction class
103 | * Added `Response` interaction class
104 |
105 | * Added `ETR_Report` parameter `ReportingEntity`
106 | * Changed `ETR_Report` parameter `ReportId` datatype to `UUID`
107 | * Replaced `ETR_Report` parameter `When` with NETN-BASE `HLAinteractionRoot` parameter `Time`
108 | * Moved `ETR_Report` parameter `CommunicationNetworkIds` to NETN-COM `ETR_Report
109 | * Replaced `InWeaponRange` parameter `Observer` with `ETR_Report` parameter `ReportingEntity`
110 | * Replaced `SpotReport` parameter `Observer` with `ETR_Report` parameter `ReportingEntity`
111 | * Added `SpotReport` parameter `SensorType`
112 | * Renamed `SensorReport` interaction class to `ETR_SensorEvent` and move as subclass to `HLAinteractionClass`
113 | * Replaced `StatusReport` parameter `EntityId` with `ETR_Report` parameter `ReportingEntity`
114 | * Added `EntitySensorUpdate` interaction class
115 | * Removed `StatusReport` interaction class
116 |
117 | * Changed `PositionStatusReport` parameter `Position` datatype to `LocationStruct`
118 | * Changed `PositionStatusReport` parameter `Heading` datatype to `DirectionDegreesFloat32`
119 | * Changed `ResourceStatusReport` parameter `Resource` datatype to `SupplyStruct`
120 | * Changed `UnderAttackStatusReport` parameter `FromDirection` datatype to `DirectionDegreesFloat32`
121 |
122 |
123 | * Changed `TaskStatusReport` parameter `TaskId` datatype to `UUID`
124 | * Renamed `TaskStatusReport` parameter `TaskId` to `Task`
125 | * Replaced `TaskStatusReport` parameter `When` with NETN-BASE `HLAinteractionRoot` parameter `Time`
126 |
127 |
128 | * Removed datatype `MineCountEnum32`
129 | * Removed datatype `Datetime18`
130 | * Removed datatype `ArrayOfTaskIds`
131 | * Removed datatype `ArrayOfNames`
132 | * Removed datatype `MineCountVariantStruct`
133 |
134 | * Added datatype `EntityControlActionEnum`
135 | * Added datatype `CaptureStatusEnum`
136 |
137 | * Added datatype `ArrayOfTaskTypes`
138 | * Added datatype `ArrayOfTaskDefinitions`
139 | * Added datatype `ArrayOfTaskProgress`
140 | * Added datatype `ArrayOfWaypoints`
141 |
142 | * Added struct datatypes for each task type with task parameters
143 | * Added struct datatypes for task progress (various)
144 |
145 | * Added datatype `RoundStruct`
146 | * Added datatype `TaskDefinition`
147 | * Added datatype `TaskProgress`
148 | * Added datatype `Waypoint`
149 |
150 | * Added datatype `TaskDefinitionVariantRecord`
151 | * Added datatype `TaskProgressVariantRecord`
152 |
153 | * Changed datatype `SpottedEntity` field `Orientation` to `Heading`
154 |
155 | * Renamed `Mount` interaction class to `Attach`
156 | * Renamed `Dismount` interaction class to `Detach`
157 |
158 |
--------------------------------------------------------------------------------
/modules/NETN-MRM/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-MRM
2 |
3 | ### v1.1 - Initial version of NETN-MRM FOM Module released as part of NETN FOM v2.0.
4 |
5 | NETN-MRM FOM Module v1.1.1 was developed by MSG-106 and released 2014-05-15.
6 |
7 |
8 | ### v2.0 - Updated version by MSG-163 to be part of NETN FOM v3.0.
9 |
10 | * Changed Filename to NETN-MRM.xml
11 | * Changed `modelIdentification` `securityClassification` from `unclassified` to `Not Classified`
12 | * Changed `modelIdentification` `other` to include license information
13 | * Changed `modelIdentification` `reference` to only refer to directly dependent FOM Modules
14 | * Added `modelIdentification` `useLimitation` to reflect Scope of FOM Module
15 | * Added `modelIdentification` `glyph`
16 | * Updated `modelIdentification` `purpose` to reflect Purpose of FOM Module
17 | * Updated `modelIdentification` `description` to reflect Introduction of FOM Module
18 | * Updated `modelIdentification` `name` to NATO Education and Training Network (NETN) Multi-Resolution Modelling (MRM) Module
19 | * Updated `modelIdentification` `poc` to include Release authority, Primary authors and Contributors
20 | * Updated `modelIdentification` `applicationDomain` to empty.
21 | * Removed NETN-MRM dependency on NETN-TMR.
22 | * Merged NETN-Aggregate to NETN-MRM.
23 | * Removed InteractionClass `MRM_Object`
24 | * Removed InteractionClass `MRM_TriggerResponse`
25 | * Removed InteractionClass `MRM_Trigger`
26 | * Renamed InteractionClass `MRM_DisaggregationRequest`
27 | * Renamed InteractionClass `MRM_AggregationRequest`
28 | * Removed InteractionClass `MRM_DisaggregationResponse`
29 | * Removed InteractionClass `MRM_AggregationResponse`
30 | * Removed InteractionClass `MRM_CancelRequest`
31 | * Removed InteractionClass `MRM_ActionComplete`
32 | * Added InteractionClass `MRM_Interaction`
33 | * Added InteractionClass `Request`
34 | * Added InteractionClass `Aggregate`
35 | * Added InteractionClass `Disaggregate`
36 | * Added InteractionClass `Divide`
37 | * Added InteractionClass `Merge`
38 | * Added InteractionClass `Inactivate`
39 | * Added InteractionClass `Activate`
40 | * Added InteractionClass `QuerySupportedCapabilities`
41 | * Added InteractionClass `CapabilitiesSupported`
42 | * Added InteractionClass `Response`
43 | * Removed datatype `AggregateStateEnum32`
44 | * Removed datatype `EntityListVariableLengthStruct`
45 | * Removed datatype `UpdateTypeEnum32`
46 | * Removed datatype `SupportRelationshipStruct`
47 | * Removed datatype `FacingDegreesFloat32`
48 | * Removed datatype `CoverStatusStruct`
49 | * Removed datatype `CoverEnum8`
50 | * Removed datatype `CombatValueFloat64`
51 | * Removed datatype `SupportRelationshipEnum8`
52 | * Removed datatype `EchelonEnum8`
53 | * Removed datatype `PercentageUint32`
54 | * Renamed datatype `NonComplianceReasonEnum` to `MRM_ResponseStatusEnumType`
55 | * Replaced datatype `PercentageUint32` with `PercentUnsignedInteger32`
56 | * Replaced datatype `FacingDegreesFloat32` with `DirectionDegreesFloat32`
57 | * Replaced datatype `TimeSecInt64` with `EpochTimeSecInt64`
58 | * Moved datatype `QuantityFloat64` to NETN-BASE
59 | * Changed datatype of `NETN_Aggregate.Mounted` to `PercentFloat64`
60 | * Changed datatype of `NETN_Aggregate.SourceUnit` to `UuidArrayOfHLAbyte16`
61 | * Changed datatype of `NETN_Aggregate.Symbol` to `SymbolIdentifier`
62 | * Changed datatype of `NETN_Aggregate.Footprint` to `GeocentricPolygon `
63 | * Added attribute `Route` for object class `NETN_Aggregate`
64 | * Added attribute `Destination` for object class `NETN_Aggregate`
65 | * Updated semantics of attribute `NETN_Aggregate.UniqueId`
66 | * Renamed attribute `NETN_Aggregate.UniqueID` to `NETN_Aggregate.UniqueId`
67 | * Renamed attribute `Symbol` of `NETN_Aggregate` to `SymbolId`
68 | * Renamed attribute `UnitEquipment` of `NETN_Aggregate` to `EquipmentStatus`
69 | * Renamed attribute `UnitPersonnel` of `NETN_Aggregate` to `PersonnelStatus`
70 | * Renamed attribute `UnitSupplies` of `NETN_Aggregate` to `Supplies`
71 | * Removed attribute `Footprint`of `NETN_Aggregate` object class
72 | * Removed attribute `SupportUnit` of `NETN_Aggregate` object class
73 | * Added field `ResourceType` to datatype `ResourceStatusNumberStruct`
74 | * Changed datatype of attribute `CoverStatus` of `NETN_Aggregate` to `PercentFloat64`
75 | * Changed datatype of attribute `CombatValue` of `NETN_Aggregate` to `PercentFloat64`
76 | * Changed datatype of attribute `EntityList` of `NETN_Aggregate` to `ArrayOfEntityStruct`
77 | * Changed datatype of attribute `Echelon` of `NETN_Aggregate` to `EchelonEnum32`
78 | * Added field `UnitAllocation` to datatype `EntityStruct`
79 |
80 |
81 | ### v3.0 - Updated version by MSG-191 to be part of NETN FOM v4.0
82 |
83 | * Removed `NETN_Aggregate` object class
84 | * Replaced `NETN_Aggregate` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
85 | * Replaced `NETN_Aggregate` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
86 | * Replaced `NETN_Aggregate` attribute `SubunitList` with NETN-MRM `AggregateEntity` attribute `DisaggregatedEntities`
87 | * Replaced `NETN_Aggregate` attribute `ParentUnit` with NETN-MRM `BaseEntity` attribute `ParentAggregate`
88 | * Replaced `NETN_Aggregate` attribute `DividedUnitList` with NETN-MRM `AggregateEntity` attribute `DividedEntities`
89 | * Replaced `NETN_Aggregate` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
90 | * Removed `NETN_Aggregate` attribute `EmbeddedUnitList`
91 | * Replaced `NETN_Aggregate` attribute `HigherHeadquarters` with NETN-ORG `Unit` attribute `HigherHeadquarters`
92 | * Replaced `NETN_Aggregate` attribute `Mounted` with NETN-ENTITY `BaseEntity` attribute `HostEntitiy` and NETN-Physical `AggregateEntity` attribute `MountProgress`
93 | * Replaced `NETN_Aggregate` attribute `SymbolId` with NETN-ENTITY `BaseEntity` attribute `Symbol`
94 | * Replaced `NETN_Aggregate` attribute `Callsign` with NETN-ENTITY `BaseEntity` attribute `Callsign`
95 | * Replaced `NETN_Aggregate` attribute `Echelon` with NETN-ENTITY `AggregateEntity` attribute `Echelon`
96 | * Removed `NETN_Aggregate` attribute `EntityList`
97 | * Replaced `NETN_Aggregate` attribute `SuppliesStatus` with NETN-LOG `AggregateEntity` attribute `SuppliesStatus`
98 | * Replaced `NETN_Aggregate` attribute `EquipmentStatus` with NETN-LOG `AggregateEntity` attribute `EquipmentStatus`
99 | * Replaced `NETN_Aggregate` attribute `PersonnelStatus` with NETN-LOG `AggregateEntity` attribute `PersonnelStatus`
100 | * Replaced `NETN_Aggregate` attribute `VisualSignature` with NETN-ENTITY `BaseEntity` attribute `Signatures`
101 | * Replaced `NETN_Aggregate` attribute `HUMINTSignature` with NETN-ENTITY `BaseEntity` attribute `Signatures`
102 | * Replaced `NETN_Aggregate` attribute `ElectronicSignature` with NETN-ENTITY `BaseEntity` attribute `Signatures` `ElectronicSignature`
103 | * Replaced `NETN_Aggregate` attribute `CombatValue` with NETN-ENTITY `AggregateEntity` attribute `CombatValue`
104 | * Replaced `NETN_Aggregate` attribute `CoverStatus` with NETN-ENTITY `BaseEntity` attribute `Protection`
105 | * Replaced `NETN_Aggregate` attribute `CaptureStatus` with NETN-ETR `BaseEntity` attribute `CaptureStatus`
106 | * Removed `NETN_Aggregate` attribute `Mission`
107 | * Replaced `NETN_Aggregate` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
108 | * Replaced `NETN_Aggregate` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
109 | * Replaced `NETN_Aggregate` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
110 | * Replaced `NETN_Aggregate` attribute `WeaponsControlOrder` with NETN-ENTITY `AggregateEntity` attribute `WeaponsControlOrder`
111 | * Removed `MRM_Interaction` interaction class
112 | * Replaced `MRM_Interaction` parameter `EventId` with NETN-BASE `HLAinteractionRoot` attribute `UniqueId`
113 | * Removed `CapabilitiesSupported` interaction class
114 | * Replaced `CapabilitiesSupported` parameter `CapabilityNames` with `AggregateEntity` attribute `SupportedAggregationActions`
115 | * Removed `Request` interaction class
116 | * Removed `Request` parameter `Federate`
117 | * Replaced `Request` parameter `AggregateUnit` with NETN-ETR `ETR_SimCon` parameter `SimulatedEntity`
118 | * Replaced `Response` interaction class with NETN-ETR `Response` interaction class
119 | * Removed `Activate` interaction class
120 | * Removed `Deactivate` interaction class
121 | * Removed `QuerySupportedCapabilities` interaction class
122 | * Removed `Aggregate` parameter `RemoveSubunits`
123 | * Renamed `Merge` parameter `Subunits` to `DividedEntities`
124 |
125 |
126 | * Removed datatype `MissionStruct`
127 | * Removed datatype `EntityStruct`
128 | * Removed datatype `ArrayOfEntityStruct`
129 | * Removed datatype `ConcealmentEnum32`
130 | * Removed datatype `EntityCategoryEnum32`
131 | * Moved all the rest of datatype to NETN-Physical
132 | * Added datatype `AggregationActionEnum`
133 | * Added datatype `AggregationActionArray`
134 |
135 | * Replaced all use of Array datatype `NETN_ArrayOfSupplyStruct` with `SupplyStructArray`
136 | * Replaced all use of `PercentUnsignedInteger32` with `PercentFloat32`
137 | * Replaced all use of `PercentFloat64` with `PercentFloat32`
138 |
139 |
--------------------------------------------------------------------------------
/modules/NETN-SMC/NETN-SMC.md:
--------------------------------------------------------------------------------
1 |
2 | # NETN-SMC
3 | |Version| Date| Dependencies|
4 | |---|---|---|
5 | |1.0|2023-11-20|NETN-BASE|
6 |
7 | The NATO Education and Training Service Management and Control (NETN-SMC) module provides a standard way to send control actions in a federated simulation. Control actions are interactions targeting the federation, an individual federate, or an individual simulated entity.
8 |
9 | In a federated distributed simulation, the participating systems (federates) provide services to model aspects of the synthetic environment. To simulate model change, these services use operator input, data published in the federation, and the passing of scenario time.
10 |
11 | The NETN-SMC module provides methods to interact with services using control actions and defines a Request-Response pattern. The control actions described in this module form the basis for subclassing more specific actions in other FOM modules.
12 |
13 | ## Overview
14 | The module defines three (3) basic control actions
15 |
16 | * Use the `SMC_FederationControl` for actions intended for all federates in the federation.
17 | * Use `SMC_FederateControl` for actions intended for a known federate
18 | * Use `SMC_EntityControl` for actions related to a specific simulation entity. The interaction is expected to be processed by the federate with the modelling responsibility for the entity.
19 |
20 | When sending a `SMC_FederateControl` or `SMC_EntityControl` action, the receiving federate shall respond to the action using a `SMC_Response` interaction to indicate success or failure to accept or achieve the action.
21 |
22 | ```mermaid
23 | sequenceDiagram
24 | autonumber
25 | TaskingFederate->>EntityFederate:SMC_EntityControl(entity)
26 | EntityFederate->>TaskingFederate:SMC_Response(true/false)
27 | ```
28 |
29 | ## Federate Control Action
30 |
31 | To send a control action to a specific federate, use the `SMC_FederateControl` interaction with a parameter identifying the federate by its name.
32 |
33 | If a federate control action is sent to a federate that is not compliant with NETN-SMC, there will be no response, and it will be hard to determine if or when the control action is successfully received.
34 |
35 | Federates publish support actions using the `SMC_Service` object attribute `SupportedActions`. If available, this information shall be used before sending a federate control action to check whether the action is supported.
36 |
37 | All NETN-SMC-compliant federates must also respond to all federate control actions using the `SMC_Response` interaction, regardless of whether the action is supported.
38 |
39 | ## Entity Control Action
40 |
41 | To send a control action to a specific simulation entity, use the `SMC_EntityControl` interaction with a parameter identifying the entity by its unique identifier. The federate with the referenced entity's primary modelling responsibility is the receiver and should perform the action.
42 |
43 | If the federate with the primary responsibility of the referenced entity is not compliant with NETN-SMC, there will be no response, and it will be hard to determine if or when the control action is successfully received. Therefore, supported actions are published using the `BaseEntity` object class attribute. Before sending a `SMC_EntityControl`, use the `BaseEntity` object attribute `SupportedActions` to determine if the referenced entity supports the action.
44 |
45 |
46 | ## Object Classes
47 |
48 | ```mermaid
49 | classDiagram
50 | direction LR
51 |
52 | HLAobjectRoot <|-- SMC_Service
53 | HLAobjectRoot <|-- BaseEntity
54 | HLAobjectRoot : UniqueId(NETN-BASE)
55 | SMC_Service : Federate
56 | SMC_Service : SupportedActions
57 | BaseEntity : SupportedActions
58 | ```
59 |
60 | ### SMC_Service
61 |
62 | Represents a service the referenced federate provides with additional information regarding supported control actions.
63 |
64 | |Attribute|Datatype|Semantics|
65 | |---|---|---|
66 | |Federate|FederateName|Required: The federate providing the service.|
67 | |SupportedActions|FederateControlActions|Required: Indicates which SMC control actions are supported by the referenced federate.|
68 | |UniqueId
(NETN-BASE)|UUID|Required. A unique identifier for the object. The Universally Unique Identifier (UUID) is generated or pre-defined.|
69 |
70 | ### BaseEntity
71 |
72 | A base class of aggregate and discrete scenario domain participants. The BaseEntity class is characterized by being located at a particular location in space and independently movable, if capable of movement at all. It specifically excludes elements normally considered to be a component of another element. The BaseEntity class is intended to be a container for common attributes for entities of this type. Since it lacks sufficient class specific attributes that are required for simulation purposes, federates cannot publish objects of this class. Certain simulation management federates, e.g. viewers, may subscribe to this class. Simulation federates will normally subscribe to one of the subclasses, to gain the extra information required to properly simulate the entity.
73 |
74 | |Attribute|Datatype|Semantics|
75 | |---|---|---|
76 | |SupportedActions|EntityControlActions|Optional: Indicates what control actions are supported by an individual simulated entity.|
77 | |UniqueId
(NETN-BASE)|UUID|Required. A unique identifier for the object. The Universally Unique Identifier (UUID) is generated or pre-defined.|
78 |
79 | ## Interaction Classes
80 |
81 | ```mermaid
82 | classDiagram
83 | direction LR
84 | HLAinteractionRoot <|-- SMC_FederationControl
85 | HLAinteractionRoot <|-- SMC_FederateControl
86 | HLAinteractionRoot <|-- SMC_EntityControl
87 | HLAinteractionRoot <|-- SMC_Response
88 | HLAinteractionRoot : UniqueId(NETN-BASE)
89 | SMC_FederateControl : Federate
90 | SMC_EntityControl : Entity
91 | SMC_Response : Action
92 | SMC_Response : Status
93 | ```
94 |
95 | ### SMC_FederationControl
96 |
97 | Base class for all control actions applicable to all federates in the federation. The inherited NETN-BASE `UniqueId` parameter is used to match this interaction with a corresponding `SMC_Response`.
98 |
99 |
100 | ### SMC_FederateControl
101 |
102 | Base class for all control actions directed to a specific federate. The inherited NETN-BASE `UniqueId` parameter matches this interaction with a corresponding `SMC_Response`. Before sending this interaction, use the `SMC_Service` object attribute `SupportedActions` to determine if the referenced federate supports the action.
103 |
104 | |Parameter|Datatype|Semantics|
105 | |---|---|---|
106 | |Federate|FederateName|Required: The federate intended as the receiver of this control action.|
107 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all SMC related interactions.|
108 |
109 | ### SMC_EntityControl
110 |
111 | Control action intended for a federate with primary modelling responsibility for the referenced entity. The inherited NETN-BASE `UniqueId` parameter matches this interaction with a corresponding `SMC_Response`. Before sending this interaction, use the NETN-SMC `BaseEntity` object attribute `SupportedActions` to determine if the referenced entity supports the action.
112 |
113 | |Parameter|Datatype|Semantics|
114 | |---|---|---|
115 | |Entity|UUID|Required: Reference to a simulation entity for which the control action is intended.|
116 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all SMC related interactions.|
117 |
118 | ### SMC_Response
119 |
120 | The response indicates whether the related action was accepted or rejected/failed by a federate. A single response per sent action is expected.
121 |
122 | |Parameter|Datatype|Semantics|
123 | |---|---|---|
124 | |Action|UUID|Required: Reference to the control action this is a response to. The reference corresponds to the NETN-BASE `UniqueId` parameter of the control action interaction.|
125 | |Status|HLAboolean|Required: Indicates success or failure of a corresponding control action.|
126 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all SMC related interactions.|
127 |
128 | ## Datatypes
129 |
130 | Note that only datatypes defined in this FOM Module are listed below. Please refer to FOM Modules on which this module depends for other referenced datatypes.
131 |
132 | ### Overview
133 | |Name|Semantics|
134 | |---|---|
135 | |EntityControlActionEnum|Enumeration of Entity Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
136 | |EntityControlActions|A set of control actions relevant to individual entities in the simulation.|
137 | |FederateControlActionEnum|Enumeration of Federate Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
138 | |FederateControlActions|A set of control actions for the federate implementing the service.|
139 |
140 | ### Enumerated Datatypes
141 | |Name|Representation|Semantics|
142 | |---|---|---|
143 | |EntityControlActionEnum|HLAinteger32BE|Enumeration of Entity Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
144 | |FederateControlActionEnum|HLAinteger32BE|Enumeration of Federate Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
145 |
146 | ### Array Datatypes
147 | |Name|Element Datatype|Semantics|
148 | |---|---|---|
149 | |EntityControlActions|EntityControlActionEnum|A set of control actions relevant to individual entities in the simulation.|
150 | |FederateControlActions|FederateControlActionEnum|A set of control actions for the federate implementing the service.|
151 |
--------------------------------------------------------------------------------
/modules/NETN-TMR/NETN-TMR.md:
--------------------------------------------------------------------------------
1 |
2 | # NETN-TMR
3 | |Version| Date| Dependencies|
4 | |---|---|---|
5 | |3.0|2024-03-10|NETN-BASE, NETN-ORG, NETN-SMC|
6 |
7 | The NATO Education and Training Network Transfer of Modelling Responsibilities (NETN-TMR) module provides a standard interface and pattern for transferring modelling responsibility between federates. It extends the HLA Ownership Management services by providing the means to trigger modelling responsibility transfer and publish the assigned modelling responsibilities of object instances.
8 |
9 | For example:
10 |
11 | * Transfer modelling responsibility between virtual and constructive simulation systems.
12 | * Transfer modelling responsibility between high- and low-fidelity models.
13 | * Transfer modelling responsibility to allow backup, maintenance or load-balancing.
14 |
15 | In a federated distributed simulation, the participating systems (federates) provide services that model the synthetic environment. Allocation of modelling responsibilities depends on individual federate capabilities, federation design agreements, and initial scenario conditions. The primary responsibility for modelling a simulated entity is allocated to, at most, one federate. However, during execution, the modelling responsibility and ownership of individual attributes may change.
16 |
17 | NETN-TMR covers the following cases:
18 | * Initialization with assigned modelling responsibilities for objects.
19 | * Explicit request to acquire modelling responsibility.
20 | * Triggering modelling responsibility transfer by updating the allocation of responsibility attribute.
21 |
22 | ## Overview
23 |
24 |
25 | NETN-TMR extends the HLA concept of object instance attribute ownership by associating primary modelling responsibility to objects in the federation. Only one federate has the primary modelling responsibility, but the responsibility can be transferred. Primary responsibility does not require ownership (HLA ownership) of all attributes of an object.
26 |
27 | The federate with a primary responsibility shall respond to all NETN-SMC `SMC_EntityControl` actions directed to the entity. This also implies that the same federate normally publishes the `BaseEntity` attribute `SupportedActions`.
28 |
29 | ## Modelling Responsibility
30 |
31 | The NETN-TMR modules extend the `HLAobjectRoot` object class with the attribute `AllocatedFederate`.
32 |
33 | ```mermaid
34 | classDiagram
35 | direction LR
36 |
37 | HLAobjectRoot : AllocatedFederate
38 | HLAobjectRoot : UniqueId(NETN-BASE)
39 | ```
40 |
41 | The owner (HLA ownership) of the `AllocatedFederate` attribute is the federate with primary modelling responsibility for the object. An update of this attribute triggers the referenced federate to initiate a transfer to acquire primary modelling responsibility.
42 |
43 | Sending an `AcquireModellingResponsibility` interaction triggers the referenced federate to initiate a transfer. If successful, the acquiring federate owns (HLA ownership) the `AllocatedFederate` attribute and updates its value to the federate name.
44 |
45 |
46 | ```mermaid
47 | classDiagram
48 | direction LR
49 |
50 | HLAinteractionRoot <|-- SMC_FederateControl
51 | HLAinteractionRoot : UniqueId(NETN-BASE)
52 | SMC_FederateControl <|-- AcquireModellingResponsibility
53 | SMC_FederateControl : Federate(NETN-SMC)
54 | AcquireModellingResponsibility : Entity
55 | ```
56 |
57 | Transfer of primary modelling responsibility is impossible if no owner of the `AllocatedFederate` attribute exists.
58 |
59 | ## Attribute triggered Transfer
60 |
61 | An update of the `AllocatedFederate` attribute triggers the referenced federate to acquire the primary modelling responsibility. E.g. during scenario initialization, a federate may register all objects and then update the `AllocatedFederate` attributes to trigger a change in modelling responsibility.
62 |
63 |
64 | ``` mermaid
65 |
66 | sequenceDiagram
67 | autonumber
68 | Federation->>Federate 1:Update entity.AllocatedFederate = federate 1
69 | Federate 1->>Federation:Attribute Ownership Acquisition(entity.attributes)
70 | Federation->>Federate 2:Request Attribute Ownership Release(entity.attributes)
71 | Federate 2->>Federation:Attribute Ownership Divestiture If Wanted(entity.attributes) or
Attribute Ownership Release Denied(entity.attributes)
72 | Federation->>Federate 1:Attribute Ownership Acquisition Notification(entity.attributes) or
Attribute Ownership Unavailable(entity.attributes)
73 |
74 | Federate 1-->>Federation:Attribute Ownership Acquisition(entity.AllocatedFederate)
75 | ```
76 |
77 | 1. The `AllocatedFederate` attribute update triggers the referenced federate (Federate 1) to start the acquisition of primary modelling responsibility.
78 | 2. Use the HLA service `Attribute Ownership Acquisition` to request ownership of relevant attributes.
79 | 3. The federate currently owning a requested attribute (Federate 2) receives a `Request Attribute Ownership Release` callback.
80 | 4. Release the attribute using the `Attribute Ownership Divestiture If Wanted` HLA service, or if unable to release, use the `HLA Attribute Ownership Release Denied`.
81 | 5. The HLA callback `Attribute Ownership Acquisition Notification` indicates a successful attribute ownership transfer, and the `Attribute Ownership Unavailable` callback indicates an unsuccessful transfer.
82 | 6. Acquire the ownership of the `AllocatedFederate` attribute to complete the transfer of modelling responsibility.
83 |
84 |
85 | ## Request Transfer
86 |
87 | Sending an `AcquireModellingResponsibility` requests the referenced federate to start acquiring modelling responsibility.
88 |
89 |
90 | ``` mermaid
91 |
92 | sequenceDiagram
93 | autonumber
94 |
95 | Federation ->>Federate 1:AcquireModellingResponsibility(requestId, entity, federate 1)
96 | Federate 1->>Federation:HLA Attribute Ownership Acquisition(entity.attributes)
97 | Federation->>Federate 2:HLA Request Attribute Ownership Release(entity.attributes)
98 | Federate 2->>Federation:HLA Ownership Release(entity.attributes)
99 | Federate 2->>Federation:HLA Attribute Ownership Divestiture If Wanted(entity.attributes)
100 | Federation->>Federate 1:HLA Attribute Ownership Acquisition Notification(entity.attributes)
101 | Federate 1->>Federation:Update entity.FederateApplication
102 | Federate 1->>Federation:SMC_Response(requestId, TRUE)
103 |
104 | ```
105 |
106 | 1. Send an `AcquireModellingResponsibility` interaction with references to the entity and the acquiring federate (Federate 1).
107 | 2. If required, use the HLA service `Attribute Ownership Acquisition` to request ownership of relevant attributes for the referenced entities.
108 | 3. The federate currently owning a requested attribute (Federate 2) receives a `Request Attribute Ownership Release` callback.
109 | 4. Release the attribute using the `Attribute Ownership Divestiture If Wanted` HLA service.
110 | 5. The HLA callback `Attribute Ownership Acquisition Notification` indicates a successful attribute ownership transfer.
111 | 6. After a successful transfer, update the `FederateApplication` attribute of the transferred entities to reference the new federate application that received the modelling responsibility.
112 | 7. Send an `SMC_Response` interaction indicating the successful completion of the entity action.
113 |
114 | ## Unsuccessful Transfer
115 |
116 | If an ownership release of a required attribute is denied, the transfer is cancelled, and the acquiring federate shall update the `AllocatedFederate` attribute to represent the federate with primary modelling responsibility.
117 |
118 | ``` mermaid
119 | sequenceDiagram
120 | autonumber
121 |
122 | participant Federation
123 | participant Federate 1
124 | participant Federate 2
125 |
126 | Federate 1->>Federation:HLA Attribute Ownership Acquisition(entity.attributes)
127 | Federation->>Federate 2:HLA Request Attribute Ownership Release(entity.attributes)
128 | Federate 2->>Federation:HLA Attribute Ownership Release Denied(entity.attributes)
129 | Federation->>Federate 1:HLA Attribute Ownership Unavailable(entity.attributes)
130 | Federate 1->>Federation:Update(entity.AllocatedFederate)
131 | Federate 1->>Federation:SMC_Response(False)
132 |
133 |
134 | ```
135 |
136 |
137 | 1. Use the HLA service `Attribute Ownership Acquisition` to request ownership of relevant attributes for the referenced entities.
138 | 3. The federate currently owning a requested attribute (Federate 2) receives a `Request Attribute Ownership Release` callback.
139 | 4. Deny the attribute release using the `Attribute Ownership Release Denied` HLA service.
140 | 5. The HLA callback `Attribute Ownership Release Denied` indicates an unsuccessful attribute ownership transfer.
141 | 6. Cancel the transfer and update the `AllocatedFederate` attribute.
142 | 7. Send an `SMC_Response` interaction indicating the unsuccessful completion of the entity action.
143 |
144 |
145 | ## Object Classes
146 |
147 | ```mermaid
148 | classDiagram
149 | direction LR
150 |
151 | HLAobjectRoot : AllocatedFederate
152 | HLAobjectRoot : UniqueId(NETN-BASE)
153 | ```
154 |
155 | ### HLAobjectRoot
156 |
157 |
158 |
159 | |Attribute|Datatype|Semantics|
160 | |---|---|---|
161 | |AllocatedFederate|FederateName|Optional. Reference to the federate application with the assigned primary responsibility for modelling the object behaviour.|
162 | |UniqueId
(NETN-BASE)|UUID|Required. A unique identifier for the object. The Universally Unique Identifier (UUID) is generated or pre-defined.|
163 |
164 | ## Interaction Classes
165 |
166 | ```mermaid
167 | classDiagram
168 | direction LR
169 | HLAinteractionRoot <|-- SMC_FederateControl
170 | HLAinteractionRoot : UniqueId(NETN-BASE)
171 | SMC_FederateControl <|-- AcquireModellingResponsibility
172 | SMC_FederateControl : Federate(NETN-SMC)
173 | AcquireModellingResponsibility : Entity
174 | ```
175 |
176 | ### AcquireModellingResponsibility
177 |
178 | Trigger the specified federate to initiate a transfer of modelling responsibility for the specified entity.
179 |
180 | |Parameter|Datatype|Semantics|
181 | |---|---|---|
182 | |Entity|UUID|Required: Reference to the object which is to be transferred.|
183 |
184 | ## Datatypes
185 |
186 | Note that only datatypes defined in this FOM Module are listed below. Please refer to FOM Modules on which this module depends for other referenced datatypes.
187 |
188 | ### Overview
189 | |Name|Semantics|
190 | |---|---|
191 | |FederateControlActionEnum|Enumeration of Federate Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
192 |
193 | ### Enumerated Datatypes
194 | |Name|Representation|Semantics|
195 | |---|---|---|
196 | |FederateControlActionEnum|HLAinteger32BE|Enumeration of Federate Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
197 |
--------------------------------------------------------------------------------
/modules/NETN-ENTITY/changelog.md:
--------------------------------------------------------------------------------
1 | ## Changelog NETN-ENTITY
2 |
3 | ### v1.2 - First version developed by MSG-134 for NETN FOM v2.0. Object classes and datatypes derived from deprecated NETN FOM v 1.0 module AggDeagg.
4 |
5 |
6 |
7 | ### v2.0 - Updated version developed by MSG-163 for NETN FOM v3.0 renamed NETN-Physical
8 |
9 | * Added attribute `SourceUnit` to all NETN-Physical platform and lifeform object classes.
10 | * Added attribute `Route` to all NETN-Physical platform, munition and lifeform object classes.
11 | * Added attribute `Destination` to all NETN-Physical platform, munition and lifeform object classes.
12 | * Renamed attribute `UniqueID` to `UniqueId` for compliance with naming convensions.
13 | * Added attribute `SymbolId` to all NETN-Physical platform, lifeform, cultural feature and munition object classes.
14 | * Renamed object class `SubmersibleVehicle` to `SubmersibleVessel`.
15 |
16 | ### Changes for v1.2.0
17 | NETN-MRM FOM Module v1.2.0 was developed by MSG-106 and MSG-134 and released as part of NETN FOM v2.0 in AMSP-04 Ed A.
18 |
19 | * Added object classes and datatypes from FOM modules in NETN FOM v1
20 | * Added object class `NETN_CulturalFeature`
21 | * Added object class `NETN_Munition`
22 |
23 | * Added attribute Symbol to all object classes
24 | * Changed from Reliable to BestEffort on some attributes to get a common transport type
25 |
26 |
27 | ### v3.0 - Updated version developed by MSG-191 for NETN FOM v4.0 renamed NETN-ENTITY
28 |
29 | * Renamed module NETN-ENTITY
30 |
31 | * Removed `NETN_Aircraft` object class
32 | * Replaced `NETN_Aircraft` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
33 | * Replaced `NETN_Aircraft` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
34 | * Replaced `NETN_Aircraft` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
35 | * Removed `NETN_Aircraft` attribute `EmbeddedUnitList`
36 | * Replaced `NETN_Aircraft` attribute `Callsign` with `BaseEntity` attribute `Callsign`
37 | * Replaced `NETN_Aircraft` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
38 | * Replaced `NETN_Aircraft` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
39 | * Replaced `NETN_Aircraft` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
40 | * Replaced `NETN_Aircraft` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
41 |
42 | * Removed `NETN_AmphibiousVehicle` object class
43 | * Replaced `NETN_AmphibiousVehicle` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
44 | * Replaced `NETN_AmphibiousVehicle` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
45 | * Replaced `NETN_AmphibiousVehicle` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
46 | * Replaced `NETN_AmphibiousVehicle` attribute `EmbeddedUnitList`
47 | * Replaced `NETN_AmphibiousVehicle` attribute `Callsign` with `BaseEntity` attribute `Callsign`
48 | * Replaced `NETN_AmphibiousVehicle` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
49 | * Replaced `NETN_AmphibiousVehicle` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
50 | * Replaced `NETN_AmphibiousVehicle` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
51 | * Replaced `NETN_AmphibiousVehicle` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
52 |
53 | * Removed `NETN_GroundVehicle` object class
54 | * Replaced `NETN_GroundVehicle` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
55 | * Replaced `NETN_GroundVehicle` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
56 | * Replaced `NETN_GroundVehicle` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
57 | * Replaced `NETN_GroundVehicle` attribute `EmbeddedUnitList`
58 | * Replaced `NETN_GroundVehicle` attribute `Callsign` with `BaseEntity` attribute `Callsign`
59 | * Replaced `NETN_GroundVehicle` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
60 | * Replaced `NETN_GroundVehicle` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
61 | * Replaced `NETN_GroundVehicle` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
62 | * Replaced `NETN_GroundVehicle` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
63 |
64 | * Removed `NETN_MultiDomainPlatform` object class
65 | * Replaced `NETN_MultiDomainPlatform` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
66 | * Replaced `NETN_MultiDomainPlatform` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
67 | * Replaced `NETN_MultiDomainPlatform` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
68 | * Replaced `NETN_MultiDomainPlatform` attribute `EmbeddedUnitList`
69 | * Replaced `NETN_MultiDomainPlatform` attribute `Callsign` with `BaseEntity` attribute `Callsign`
70 | * Replaced `NETN_MultiDomainPlatform` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
71 | * Replaced `NETN_MultiDomainPlatform` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
72 | * Replaced `NETN_MultiDomainPlatform` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
73 | * Replaced `NETN_MultiDomainPlatform` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
74 |
75 | * Removed `NETN_Spacecraft` object class
76 | * Replaced `NETN_Spacecraft` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
77 | * Replaced `NETN_Spacecraft` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
78 | * Replaced `NETN_Spacecraft` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
79 | * Replaced `NETN_Spacecraft` attribute `EmbeddedUnitList`
80 | * Replaced `NETN_Spacecraft` attribute `Callsign` with `BaseEntity` attribute `Callsign`
81 | * Replaced `NETN_Spacecraft` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
82 | * Replaced `NETN_Spacecraft` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
83 | * Replaced `NETN_Spacecraft` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
84 | * Replaced `NETN_Spacecraft` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
85 |
86 | * Removed `NETN_SubmersibleVessel` object class
87 | * Replaced `NETN_SubmersibleVessel` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
88 | * Replaced `NETN_SubmersibleVessel` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
89 | * Replaced `NETN_SubmersibleVessel` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
90 | * Replaced `NETN_SubmersibleVessel` attribute `EmbeddedUnitList`
91 | * Replaced `NETN_SubmersibleVessel` attribute `Callsign` with `BaseEntity` attribute `Callsign`
92 | * Replaced `NETN_SubmersibleVessel` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
93 | * Replaced `NETN_SubmersibleVessel` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
94 | * Replaced `NETN_SubmersibleVessel` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
95 | * Replaced `NETN_SubmersibleVessel` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
96 |
97 | * Removed `NETN_SurfaceVessel` object class
98 | * Replaced `NETN_SurfaceVessel` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
99 | * Replaced `NETN_SurfaceVessel` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
100 | * Replaced `NETN_SurfaceVessel` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
101 | * Replaced `NETN_SurfaceVessel` attribute `EmbeddedUnitList`
102 | * Replaced `NETN_SurfaceVessel` attribute `Callsign` with `BaseEntity` attribute `Callsign`
103 | * Replaced `NETN_SurfaceVessel` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
104 | * Replaced `NETN_SurfaceVessel` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
105 | * Replaced `NETN_SurfaceVessel` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
106 | * Replaced `NETN_SurfaceVessel` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
107 |
108 | * Removed `NETN_Human` object class
109 | * Replaced `NETN_Human` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
110 | * Replaced `NETN_Human` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
111 | * Replaced `NETN_Human` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
112 | * Replaced `NETN_Human` attribute `Callsign` with `BaseEntity` attribute `Callsign`
113 | * Replaced `NETN_Human` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
114 | * Replaced `NETN_Human` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
115 | * Replaced `NETN_Human` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
116 | * Replaced `NETN_Human` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
117 |
118 | * Removed `NETN_NonHuman` object class
119 | * Replaced `NETN_NonHuman` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
120 | * Replaced `NETN_NonHuman` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
121 | * Replaced `NETN_NonHuman` attribute `SourceUnit` with NETN-MRM `BaseEntity` attribute `SourceAggregate`
122 | * Replaced `NETN_NonHuman` attribute `Callsign` with `BaseEntity` attribute `Callsign`
123 | * Replaced `NETN_NonHuman` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
124 | * Replaced `NETN_NonHuman` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
125 | * Replaced `NETN_NonHuman` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
126 | * Replaced `NETN_NonHuman` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
127 |
128 | * Removed `NETN_CulturalFeature` object class
129 | * Replaced `NETN_CulturalFeature` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
130 | * Replaced `NETN_CulturalFeature` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
131 | * Replaced `NETN_CulturalFeature` attribute `EmbeddedUnitList`
132 | * Replaced `NETN_CulturalFeature` attribute `Callsign` with `BaseEntity` attribute `Callsign`
133 | * Replaced `NETN_CulturalFeature` attribute `Activity` with NETN-ETR `BaseEntity` attribute `Activity`
134 | * Replaced `NETN_CulturalFeature` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
135 |
136 | * Removed `NETN_Munition` object class
137 | * Replaced `NETN_Munition` attribute `UniqueId` with NETN-BASE `HLAobjectRoot` attribute `UniqueId`
138 | * Replaced `NETN_Munition` attribute `Status` with NETN-MRM `BaseEntity` attribute `Status`
139 | * Replaced `NETN_Munition` attribute `Route` with NETN-ETR `BaseEntity` attribute `Route`
140 | * Replaced `NETN_Munition` attribute `Destination` with NETN-ETR `BaseEntity` attribute `Destination`
141 | * Replaced `NETN_Munition` attribute `SymbolId` with `BaseEntity` attribute `SymbolId`
142 |
143 | * Added `AggregateEntity` object class (from NETN_Aggregate in NETN-MRM)
144 | * Added `BaseEntity` attribute `HostEntitiy`
145 | * Added `BaseEntity` attribute `Symbol`
146 | * Added `BaseEntity` attribute `Callsign`
147 | * Added `AggregateEntity` attribute `Echelon`
148 | * Added `BaseEntity` attribute `Signatures`
149 | * Added `AggregateEntity` attribute `CombatValue`
150 | * Added `BaseEntity` attribute `Cover`
151 | * Added `AggregateEntity` attribute `WeaponsControlOrder`
152 |
153 |
154 | * Added datatype `RangeFloat32`
155 | * Added datatype `WeaponControlOrderEnum8`
156 | * Added datatype `SensorStateEnum32`
157 | * Added datatype `ArrayOfSensorStruct`
158 | * Added datatype `VisualSignatureStruct`
159 | * Added datatype `HUMINTSignatureStruct`
160 | * Added datatype `ElectronicSignatureStruct`
161 | * Added datatype `SensorStateStruct`
162 |
163 | * Removed datatype `VisualSignatureStruct`
164 | * Removed datatype `HUMINTSignatureStruct`
165 | * Removed datatype `ElectronicSignatureStruct`
166 |
167 |
168 | * Changed datatype of FixedRecord SensorStruct field SensorID to UUID
169 |
170 |
--------------------------------------------------------------------------------
/modules/NETN-ORG/XmlSchema/extern/ModelID_v2006_FINAL.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 | specifies the role that the POC has with
80 | respect to the model
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 | specifies the name assigned to the object model
210 |
211 |
212 |
213 |
214 | specify the type of model that is represented
215 |
216 |
217 |
218 |
219 | specifies the version identification assigned to the object model
220 |
221 |
222 |
223 |
224 | specifies the latest date on which this version of the object model was created or modified. The modification date shall be specified in the format "YYYY-MM-DD"
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | specifies the security classification of the
237 | object model
238 |
239 |
240 |
241 |
242 | specifies any restrictions on the release of the object models to specific organizations or individuals
243 |
244 |
245 |
246 |
247 | specifies the purpose for which the federate or federation was developed
248 |
249 |
250 |
251 |
252 | specifies the type or class of application to which the federate or federation applies
253 |
254 |
255 |
256 |
257 |
258 | specifies any known applications for which this model has been found not to be appropriate
259 |
260 |
261 |
262 |
263 | specifies a description of where this model has been used
264 |
265 |
266 |
267 |
268 | specifies keywords that characterize the model
269 |
270 |
271 |
272 |
273 | specify an organization or a
274 | person who has a particular role with respect to the model
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 | specifies a pointer to additional sources of information
287 |
288 |
289 |
290 |
291 | specifies other data deemed relevant by the author of the object model
292 |
293 |
294 |
295 |
296 | specifies a glyph to visually represent the model
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
--------------------------------------------------------------------------------
/modules/NETN-ORG/XmlSchema/NETN-ORG-SimpleTypes.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
38 |
44 |
45 |
46 |
47 | A symbol identifier is represented as a string.
48 | The symbol standard used is indicated using an optional uri notation (uri:xxxxxxxxxx).
49 | The following uri should be used for common symbology standards app6b, app6b, app6c, app6c, 2525b, 2525c, 2525d.
50 | If not provided the default symbol standard used is the one specified in the ScenarioDataStandards element of the XML file.
51 |
52 |
53 |
54 |
55 |
56 |
57 | The 13 character NATO STOCK NUMBER. See http://www.nato.int/structur/ac/135/ncs_guide/english/e_1-6-5.htm
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | For HLA
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | The MSDL base type for boolean values.
75 |
76 |
77 |
78 |
79 |
80 | The double precision X component of the Geocentric coordinate.
81 |
82 |
83 |
84 |
85 |
86 | The unit is compass degrees measured relative to magnetic north 0 to 360 degrees clockwise. For reference trigonometric degrees = (90 - compass degrees).
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 | Altitude or height relative to ground level in meters.
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 | Decimal degrees of longitude/latitude.
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | The default spacing in meters between subordinate elements one echelon below.
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 | The field for unit or equipment speed in meters per second.
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 | The easting component of the UTM coordinate.
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 | The northing component of the UTM coordinate.
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 | The easting component of the MGRS coordinate.
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 | The northing component of the MGRS coordinate.
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 | The precision, 2 (km) to 5 (meters), used for each MGRS coordinate. For example a value of 2 defines kilometers as the unit of measure, a value of 3 defines 100 meters as the unit of measure, a value of 4 defines 10 meters as the unit of measure, and a value of 5 defines meters as the unit of measure.
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 | The Supporting Unit's priority to support another unit from 1 to 9 where 1 is the top priority.
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 | The text modifier of a symbol that identifies the number of items present.
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 | The sequence or order of elements.
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 | The MGRS one hundred thousand meter grid square designator, as defined by NIMA TM 8358.1.
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 | The ISO 8601:2000 DateTime Group format yyyy-mm-ddThh:mm:ssZ e.g. 1998-05-12T14:15:00Z.
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 | The ISO 8601:2000 time interval by duration format PnYnMnDTnHnMnS e.g. P00Y00M00DT00H00M00S relative to ScenarioTime when 'n' is a two digit number padded with 0.
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 | The UTM Grid Zone designator, to include the number and letter as defined by NIMA TM 8358.1.
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | The Universal Unique Identifier (UUID) of an object as defined in ISO/IEC 11578:1996 Information technology - Open Systems Interconnection - Remote Procedure Call (RPC).
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 | Reference to a Universal Unique Identifier (UUID) of an object as defined in ISO/IEC 11578:1996 Information technology - Open Systems Interconnection - Remote Procedure Call (RPC).
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 | General text of length 20 characters.
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 | General text of length 21 characters.
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 | The Datum used to calculate coordinates.
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 | The text modifier that indicates type of equipment.
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 | The general text identifier.
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 | Text modifier for identification friend or foe (IFF).
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 | A character string (i.e. a finite set of characters) generally in the form of words of a language.
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 | The name of the special C2 headquarters.
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
--------------------------------------------------------------------------------
/LICENCE.md:
--------------------------------------------------------------------------------
1 | Creative Commons Attribution-NoDerivatives 4.0 International Public
2 | License
3 |
4 | By exercising the Licensed Rights (defined below), You accept and agree
5 | to be bound by the terms and conditions of this Creative Commons
6 | Attribution-NoDerivatives 4.0 International Public License ("Public
7 | License"). To the extent this Public License may be interpreted as a
8 | contract, You are granted the Licensed Rights in consideration of Your
9 | acceptance of these terms and conditions, and the Licensor grants You
10 | such rights in consideration of benefits the Licensor receives from
11 | making the Licensed Material available under these terms and
12 | conditions.
13 |
14 |
15 | Section 1 -- Definitions.
16 |
17 | a. Adapted Material means material subject to Copyright and Similar
18 | Rights that is derived from or based upon the Licensed Material
19 | and in which the Licensed Material is translated, altered,
20 | arranged, transformed, or otherwise modified in a manner requiring
21 | permission under the Copyright and Similar Rights held by the
22 | Licensor. For purposes of this Public License, where the Licensed
23 | Material is a musical work, performance, or sound recording,
24 | Adapted Material is always produced where the Licensed Material is
25 | synched in timed relation with a moving image.
26 |
27 | b. Copyright and Similar Rights means copyright and/or similar rights
28 | closely related to copyright including, without limitation,
29 | performance, broadcast, sound recording, and Sui Generis Database
30 | Rights, without regard to how the rights are labeled or
31 | categorized. For purposes of this Public License, the rights
32 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
33 | Rights.
34 |
35 | c. Effective Technological Measures means those measures that, in the
36 | absence of proper authority, may not be circumvented under laws
37 | fulfilling obligations under Article 11 of the WIPO Copyright
38 | Treaty adopted on December 20, 1996, and/or similar international
39 | agreements.
40 |
41 | d. Exceptions and Limitations means fair use, fair dealing, and/or
42 | any other exception or limitation to Copyright and Similar Rights
43 | that applies to Your use of the Licensed Material.
44 |
45 | e. Licensed Material means the artistic or literary work, database,
46 | or other material to which the Licensor applied this Public
47 | License.
48 |
49 | f. Licensed Rights means the rights granted to You subject to the
50 | terms and conditions of this Public License, which are limited to
51 | all Copyright and Similar Rights that apply to Your use of the
52 | Licensed Material and that the Licensor has authority to license.
53 |
54 | g. Licensor means the individual(s) or entity(ies) granting rights
55 | under this Public License.
56 |
57 | h. Share means to provide material to the public by any means or
58 | process that requires permission under the Licensed Rights, such
59 | as reproduction, public display, public performance, distribution,
60 | dissemination, communication, or importation, and to make material
61 | available to the public including in ways that members of the
62 | public may access the material from a place and at a time
63 | individually chosen by them.
64 |
65 | i. Sui Generis Database Rights means rights other than copyright
66 | resulting from Directive 96/9/EC of the European Parliament and of
67 | the Council of 11 March 1996 on the legal protection of databases,
68 | as amended and/or succeeded, as well as other essentially
69 | equivalent rights anywhere in the world.
70 |
71 | j. You means the individual or entity exercising the Licensed Rights
72 | under this Public License. Your has a corresponding meaning.
73 |
74 |
75 | Section 2 -- Scope.
76 |
77 | a. License grant.
78 |
79 | 1. Subject to the terms and conditions of this Public License,
80 | the Licensor hereby grants You a worldwide, royalty-free,
81 | non-sublicensable, non-exclusive, irrevocable license to
82 | exercise the Licensed Rights in the Licensed Material to:
83 |
84 | a. reproduce and Share the Licensed Material, in whole or
85 | in part; and
86 |
87 | b. produce and reproduce, but not Share, Adapted Material.
88 |
89 | 2. Exceptions and Limitations. For the avoidance of doubt, where
90 | Exceptions and Limitations apply to Your use, this Public
91 | License does not apply, and You do not need to comply with
92 | its terms and conditions.
93 |
94 | 3. Term. The term of this Public License is specified in Section
95 | 6(a).
96 |
97 | 4. Media and formats; technical modifications allowed. The
98 | Licensor authorizes You to exercise the Licensed Rights in
99 | all media and formats whether now known or hereafter created,
100 | and to make technical modifications necessary to do so. The
101 | Licensor waives and/or agrees not to assert any right or
102 | authority to forbid You from making technical modifications
103 | necessary to exercise the Licensed Rights, including
104 | technical modifications necessary to circumvent Effective
105 | Technological Measures. For purposes of this Public License,
106 | simply making modifications authorized by this Section 2(a)
107 | (4) never produces Adapted Material.
108 |
109 | 5. Downstream recipients.
110 |
111 | a. Offer from the Licensor -- Licensed Material. Every
112 | recipient of the Licensed Material automatically
113 | receives an offer from the Licensor to exercise the
114 | Licensed Rights under the terms and conditions of this
115 | Public License.
116 |
117 | b. No downstream restrictions. You may not offer or impose
118 | any additional or different terms or conditions on, or
119 | apply any Effective Technological Measures to, the
120 | Licensed Material if doing so restricts exercise of the
121 | Licensed Rights by any recipient of the Licensed
122 | Material.
123 |
124 | 6. No endorsement. Nothing in this Public License constitutes or
125 | may be construed as permission to assert or imply that You
126 | are, or that Your use of the Licensed Material is, connected
127 | with, or sponsored, endorsed, or granted official status by,
128 | the Licensor or others designated to receive attribution as
129 | provided in Section 3(a)(1)(A)(i).
130 |
131 | b. Other rights.
132 |
133 | 1. Moral rights, such as the right of integrity, are not
134 | licensed under this Public License, nor are publicity,
135 | privacy, and/or other similar personality rights; however, to
136 | the extent possible, the Licensor waives and/or agrees not to
137 | assert any such rights held by the Licensor to the limited
138 | extent necessary to allow You to exercise the Licensed
139 | Rights, but not otherwise.
140 |
141 | 2. Patent and trademark rights are not licensed under this
142 | Public License.
143 |
144 | 3. To the extent possible, the Licensor waives any right to
145 | collect royalties from You for the exercise of the Licensed
146 | Rights, whether directly or through a collecting society
147 | under any voluntary or waivable statutory or compulsory
148 | licensing scheme. In all other cases the Licensor expressly
149 | reserves any right to collect such royalties.
150 |
151 |
152 | Section 3 -- License Conditions.
153 |
154 | Your exercise of the Licensed Rights is expressly made subject to the
155 | following conditions.
156 |
157 | a. Attribution.
158 |
159 | 1. If You Share the Licensed Material, You must:
160 |
161 | a. retain the following if it is supplied by the Licensor
162 | with the Licensed Material:
163 |
164 | i. identification of the creator(s) of the Licensed
165 | Material and any others designated to receive
166 | attribution, in any reasonable manner requested by
167 | the Licensor (including by pseudonym if
168 | designated);
169 |
170 | ii. a copyright notice;
171 |
172 | iii. a notice that refers to this Public License;
173 |
174 | iv. a notice that refers to the disclaimer of
175 | warranties;
176 |
177 | v. a URI or hyperlink to the Licensed Material to the
178 | extent reasonably practicable;
179 |
180 | b. indicate if You modified the Licensed Material and
181 | retain an indication of any previous modifications; and
182 |
183 | c. indicate the Licensed Material is licensed under this
184 | Public License, and include the text of, or the URI or
185 | hyperlink to, this Public License.
186 |
187 | For the avoidance of doubt, You do not have permission under
188 | this Public License to Share Adapted Material.
189 |
190 | 2. You may satisfy the conditions in Section 3(a)(1) in any
191 | reasonable manner based on the medium, means, and context in
192 | which You Share the Licensed Material. For example, it may be
193 | reasonable to satisfy the conditions by providing a URI or
194 | hyperlink to a resource that includes the required
195 | information.
196 |
197 | 3. If requested by the Licensor, You must remove any of the
198 | information required by Section 3(a)(1)(A) to the extent
199 | reasonably practicable.
200 |
201 |
202 | Section 4 -- Sui Generis Database Rights.
203 |
204 | Where the Licensed Rights include Sui Generis Database Rights that
205 | apply to Your use of the Licensed Material:
206 |
207 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
208 | to extract, reuse, reproduce, and Share all or a substantial
209 | portion of the contents of the database, provided You do not Share
210 | Adapted Material;
211 | b. if You include all or a substantial portion of the database
212 | contents in a database in which You have Sui Generis Database
213 | Rights, then the database in which You have Sui Generis Database
214 | Rights (but not its individual contents) is Adapted Material; and
215 | c. You must comply with the conditions in Section 3(a) if You Share
216 | all or a substantial portion of the contents of the database.
217 |
218 | For the avoidance of doubt, this Section 4 supplements and does not
219 | replace Your obligations under this Public License where the Licensed
220 | Rights include other Copyright and Similar Rights.
221 |
222 |
223 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
224 |
225 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
226 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
227 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
228 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
229 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
230 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
231 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
232 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
233 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
234 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
235 |
236 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
237 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
238 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
239 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
240 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
241 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
242 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
243 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
244 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
245 |
246 | c. The disclaimer of warranties and limitation of liability provided
247 | above shall be interpreted in a manner that, to the extent
248 | possible, most closely approximates an absolute disclaimer and
249 | waiver of all liability.
250 |
251 |
252 | Section 6 -- Term and Termination.
253 |
254 | a. This Public License applies for the term of the Copyright and
255 | Similar Rights licensed here. However, if You fail to comply with
256 | this Public License, then Your rights under this Public License
257 | terminate automatically.
258 |
259 | b. Where Your right to use the Licensed Material has terminated under
260 | Section 6(a), it reinstates:
261 |
262 | 1. automatically as of the date the violation is cured, provided
263 | it is cured within 30 days of Your discovery of the
264 | violation; or
265 |
266 | 2. upon express reinstatement by the Licensor.
267 |
268 | For the avoidance of doubt, this Section 6(b) does not affect any
269 | right the Licensor may have to seek remedies for Your violations
270 | of this Public License.
271 |
272 | c. For the avoidance of doubt, the Licensor may also offer the
273 | Licensed Material under separate terms or conditions or stop
274 | distributing the Licensed Material at any time; however, doing so
275 | will not terminate this Public License.
276 |
277 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
278 | License.
279 |
280 |
281 | Section 7 -- Other Terms and Conditions.
282 |
283 | a. The Licensor shall not be bound by any additional or different
284 | terms or conditions communicated by You unless expressly agreed.
285 |
286 | b. Any arrangements, understandings, or agreements regarding the
287 | Licensed Material not stated herein are separate from and
288 | independent of the terms and conditions of this Public License.
289 |
290 |
291 | Section 8 -- Interpretation.
292 |
293 | a. For the avoidance of doubt, this Public License does not, and
294 | shall not be interpreted to, reduce, limit, restrict, or impose
295 | conditions on any use of the Licensed Material that could lawfully
296 | be made without permission under this Public License.
297 |
298 | b. To the extent possible, if any provision of this Public License is
299 | deemed unenforceable, it shall be automatically reformed to the
300 | minimum extent necessary to make it enforceable. If the provision
301 | cannot be reformed, it shall be severed from this Public License
302 | without affecting the enforceability of the remaining terms and
303 | conditions.
304 |
305 | c. No term or condition of this Public License will be waived and no
306 | failure to comply consented to unless expressly agreed to by the
307 | Licensor.
308 |
309 | d. Nothing in this Public License constitutes or may be interpreted
310 | as a limitation upon, or waiver of, any privileges and immunities
311 | that apply to the Licensor or You, including from the legal
312 | processes of any jurisdiction or authority.
313 |
--------------------------------------------------------------------------------
/modules/NETN-BASE/NETN-BASE.md:
--------------------------------------------------------------------------------
1 |
2 | # NETN-BASE
3 | |Version| Date| Dependencies|
4 | |---|---|---|
5 | |3.0|2024-03-10|RPR-Base|
6 |
7 |
8 |
9 | The NATO Education and Training Network Base (NETN-BASE) Module provides standard definitions of datatypes used by NETN modules. It depends on the RPR-BASE Module.
10 |
11 |
12 |
13 | ## Overview
14 |
15 | NETN-BASE defines attributes and parameters for the HLA object and interaction root classes. These attributes and parameters are available for all object and interaction classes in all NETN-FOM modules.
16 |
17 | ```mermaid
18 | classDiagram
19 | direction TB
20 |
21 | HLAobjectRoot : CreateTime
22 | HLAobjectRoot : UniqueId
23 |
24 | HLAinteractionRoot : SendTime
25 | HLAinteractionRoot : UniqueId
26 | ```
27 |
28 |
29 |
30 |
31 | ## Identifiers
32 |
33 | The NETN-FOM uses Universally Unique Identifiers (UUID) as defined in ISO/IEC 9834-8:2014.
34 |
35 | An NETN-federate shall publish the `UniqueId` attribute for all objects it creates in the federation. The value of this attribute can either be predefined, e.g., based on scenario data or generated using standard methods for generating UUID. It is the responsibility of the federate to update the attributes to ensure uniqueness in the federation.
36 |
37 | A non-NETN federate does not publish the `UniqueId` attribute. Therefore, it becomes unowned and available for acquisition for objects registered by non-NETN federates. In a NETN federation, the ownership of all unowned required attributes, such as `UniqueId`, shall be acquired and published by a NETN federate.
38 |
39 | The NETN-FOM also uses UUID to reference objects and relies on federates to resolve references.
40 |
41 | Other unique identifiers may be required for compatibility with RPR-FOM, e.g., the `EntityIdentifier` attribute for the RPR-FOM `BaseEntity` object class.
42 |
43 | The NETN-BASE also defines an optional `UniqueId` parameter for the `HLAinteractionRoot` interaction class. This parameter's primary purpose is to allow subsequent interactions, e.g., acknowledgements, to reference a previously sent interaction.
44 |
45 | ## Time
46 |
47 | Logical time (or Simulation Time) coordinates and synchronizes data exchange in a distributed simulation. HLA time management services can control the advancement of logical time. To pace logical time, use wall-clock time to manage a real-time or scaled real-time simulation. The RPR-FOM handles synchronization by timestamping each update and relying on synchronized system clocks to advance time. Logical time representation and the methods for synchronizing the advancing of time in a distributed simulation can vary between different federations. The NETN-FOM does not specify or require any specific method for synchronizing logical time. Use federation agreements to clarify the synchronization method.
48 |
49 | Scenario time is displayed to simulation operators working with the actual scenario. Scenario time can be linked to the pace of logical time advancement but is an independent representation. For example, during simulation, the logical time is strictly increasing (much like wall-clock time) and can never move backwards. However, scenario time may move forward or backwards.
50 |
51 | In NETN, the scenario time is defined as seconds since Epoch, where Epoch is defined in federation agreements, e.g. January 1, 1970, 00:00:00 UTC.
52 |
53 | The NETN-BASE module defines the optional HLAobjectRoot attribute `CreateTime` for timestamping objects with the scenario time corresponding to the time the object was created in the federation. Similarly, the optional HLAinteractionRoot parameter `SendTime` represents the time in the scenario when the interaction was sent.
54 |
55 |
56 |
57 | ## Object Classes
58 |
59 | ```mermaid
60 | classDiagram
61 | direction LR
62 |
63 | HLAobjectRoot : CreateTime
64 | HLAobjectRoot : UniqueId
65 | ```
66 |
67 | ### HLAobjectRoot
68 |
69 |
70 |
71 | |Attribute|Datatype|Semantics|
72 | |---|---|---|
73 | |CreateTime|EpochTime|Optional: The time in the scenario when the object is created.|
74 | |UniqueId|UUID|Required. A unique identifier for the object. The Universally Unique Identifier (UUID) is generated or pre-defined.|
75 |
76 | ## Interaction Classes
77 |
78 | ```mermaid
79 | classDiagram
80 | direction LR
81 | HLAinteractionRoot : SendTime
82 | HLAinteractionRoot : UniqueId
83 | ```
84 |
85 | ### HLAinteractionRoot
86 |
87 |
88 |
89 | |Parameter|Datatype|Semantics|
90 | |---|---|---|
91 | |SendTime|EpochTime|Optional: Scenario time when the interaction was sent. Default is interpreted as the receivers scenario time when the interaction is received.|
92 | |UniqueId|UUID|Optional: A unique identifier for the interaction.|
93 |
94 | ## Datatypes
95 |
96 | Note that only datatypes defined in this FOM Module are listed below. Please refer to FOM Modules on which this module depends for other referenced datatypes.
97 |
98 | ### Overview
99 | |Name|Semantics|
100 | |---|---|
101 | |ActiveStatusEnum8|A state which indicates the status of an object concerning its participation in the simulation. An object in an inactive state is not simulated and does not interact with other objects.|
102 | |AggregateMissionEnum16|Represents the general class or nature of activity related to a simulated entity's mission.|
103 | |AggregateStateFormationEnum32|Aggregate State-Formation [UID 205]|
104 | |AltitudeMeterFloat64|Represents altitude relative to Mean Sea Level (MSL).|
105 | |ArrayOfResourceStatus|The array of health states for a named resource.|
106 | |ArrayOfSupplyStatus|A list of supply types and their quantity.|
107 | |ArrayOfUuid|An array of Unique Identifiers expressed as UUIDs.|
108 | |Callsign|An identifier for a simulated entity. Callsigns should be unique in the context in which they are used but are not required to be globally unique.|
109 | |DamageStatusEnhancedEnum32|The damage status of an object.|
110 | |DamageStatusEnum32|Damaged appearance|
111 | |DirectionDegreesFloat32|The direction is measured clockwise relative to the true north. Calculate values outside the range [0, 360) as modulo 360.|
112 | |EchelonEnum32|The echelon level of a unit.|
113 | |EpochTime|Scenario time is seconds since Epoch, where Epoch, e.g. is January 1, 1970, 00:00:00 UTC or otherwise defined in federation agreements.|
114 | |EquipmentSymbolAmplificationStruct|Text amplifiers for Equipment symbols.|
115 | |FederateName|The name of a federate participating in an HLA federation. The value of this attribute corresponds to the `HLAfederateName` attribute of the MIM object class `HLAfederate`.|
116 | |GeodeticCircle|A geodetic point and radius specifying a circle on the earth's surface (WGS84) where the radius is a great circle distance on the surface.|
117 | |GeodeticLocation|A geodetic point, specified by latitude and longitude, with unspecified altitude. WGS84|
118 | |GeodeticPath|A sequence of geodetic points defining a path.|
119 | |GeodeticPoint|A geodetic point is specified by latitude, longitude and altitude.|
120 | |GeodeticPolygon|A sequence of geodetic locations defines a geographical area bounded by a closed path where the first and last locations in the sequence are connected. Each point is a geodetic coordinate in WGS84 on the earth's surface, and each segment is a great circle between locations.|
121 | |GeodeticQuadrangle|A latitude-longitude quadrangle is a region bounded by two meridians and two parallels.|
122 | |HostilityStatusCodeEnum32|The value represents the perceived hostility status.|
123 | |InstallationSymbolAmplificationStruct|Text amplifiers for Installation symbols.|
124 | |LatitudeFloat64|An angular measurement that specifies the north–south position of a point on the surface. Latitude is an angle that ranges from –90 degrees at the south pole to 90 degrees at the north pole, with 0 at the Equator.|
125 | |LocationStruct|The location of a point in space. Unless specified otherwise for the attribute, parameter, or datatype field using this datatype, the location is in the world coordinate system, as specified in IEEE Std 1278.1-2012 section 1.6.3.|
126 | |LocationStructArray|Dynamic array of LocationStruct elements, may also contain no elements.|
127 | |LongitudeFloat64|An angular measurement that specifies the east–west position of a point on the surface. Longitude is an angle that ranges from –180 degrees to +180 degrees, with 0 at the prime meridian.|
128 | |MassConcentrationFloat32|The concentration of a substance.|
129 | |MassDensityFloat32|The density of a substance.|
130 | |QuantityFloat64|A generic floating-point quantity.|
131 | |QuantityInt32|A generic discrete quantity.|
132 | |ResourceStatusStruct|The name of a resource and the number of instances of that resource by health status.|
133 | |SupplyStatusStruct|Represents a single supply type and the quantity being offered or requested.|
134 | |SymbolAmplificationVariant|Different symbol amplification data for different types of symbols.|
135 | |SymbolIdentifier|A symbol identifier is represented as a string. The identifier uses a URI notation (uri:xxxxxxxxxx) where the URI moniker specifies the symbology standard, e.g. app6a, app6b, app6c, 2525b, 2525c, 2525d. If not provided, the federation agreement defines the default symbol standard.|
136 | |SymbolStruct|Symbol Id and additional symbol amplification data.|
137 | |SymbolTypeEnum|Type of symbol.|
138 | |TimeMillisecondInt64|A generic representation of milliseconds.|
139 | |TransmitterOperationalStatusEnum8|The current operational state of a radio transmitter.|
140 | |UUID|RFC 4122, section 4.1.2 using 16 bytes. Also referred to as Variant 1 or RFC 4122/DCE 1.1 UUIDs. For example, 00112233-4455-8877-6699-aabbccddeeff is encoded as the bytes 00 11 22 33 44 55 88 77 66 99 aa bb cc dd ee ff.|
141 | |UnitSymbolAmplificationStruct|Text amplifiers for Unit symbols.|
142 |
143 | ### Simple Datatypes
144 | |Name|Units|Semantics|
145 | |---|---|---|
146 | |AltitudeMeterFloat64|Meter|Represents altitude relative to Mean Sea Level (MSL).|
147 | |DirectionDegreesFloat32|Degree|The direction is measured clockwise relative to the true north. Calculate values outside the range [0, 360) as modulo 360.|
148 | |EpochTime|seconds|Scenario time is seconds since Epoch, where Epoch, e.g. is January 1, 1970, 00:00:00 UTC or otherwise defined in federation agreements.|
149 | |LatitudeFloat64|Degree|An angular measurement that specifies the north–south position of a point on the surface. Latitude is an angle that ranges from –90 degrees at the south pole to 90 degrees at the north pole, with 0 at the Equator.|
150 | |LongitudeFloat64|Degree|An angular measurement that specifies the east–west position of a point on the surface. Longitude is an angle that ranges from –180 degrees to +180 degrees, with 0 at the prime meridian.|
151 | |MassConcentrationFloat32|kg/m3|The concentration of a substance.|
152 | |MassDensityFloat32|kg/m3|The density of a substance.|
153 | |QuantityFloat64|NA|A generic floating-point quantity.|
154 | |QuantityInt32|NA|A generic discrete quantity.|
155 | |TimeMillisecondInt64|Millisecond (ms)|A generic representation of milliseconds.|
156 |
157 | ### Enumerated Datatypes
158 | |Name|Representation|Semantics|
159 | |---|---|---|
160 | |ActiveStatusEnum8|HLAoctet|A state which indicates the status of an object concerning its participation in the simulation. An object in an inactive state is not simulated and does not interact with other objects.|
161 | |AggregateMissionEnum16|HLAinteger16BE|Represents the general class or nature of activity related to a simulated entity's mission.|
162 | |AggregateStateFormationEnum32|RPRunsignedInteger32BE|Aggregate State-Formation [UID 205]|
163 | |DamageStatusEnhancedEnum32|HLAinteger32BE|The damage status of an object.|
164 | |DamageStatusEnum32|RPRunsignedInteger32BE|Damaged appearance|
165 | |EchelonEnum32|HLAinteger32BE|The echelon level of a unit.|
166 | |HostilityStatusCodeEnum32|HLAinteger32BE|The value represents the perceived hostility status.|
167 | |SymbolTypeEnum|HLAinteger32BE|Type of symbol.|
168 | |TransmitterOperationalStatusEnum8|HLAoctet|The current operational state of a radio transmitter.|
169 |
170 | ### Array Datatypes
171 | |Name|Element Datatype|Semantics|
172 | |---|---|---|
173 | |ArrayOfResourceStatus|ResourceStatusStruct|The array of health states for a named resource.|
174 | |ArrayOfSupplyStatus|SupplyStatusStruct|A list of supply types and their quantity.|
175 | |ArrayOfUuid|UUID|An array of Unique Identifiers expressed as UUIDs.|
176 | |Callsign|HLAunicodeChar|An identifier for a simulated entity. Callsigns should be unique in the context in which they are used but are not required to be globally unique.|
177 | |FederateName|HLAunicodeChar|The name of a federate participating in an HLA federation. The value of this attribute corresponds to the `HLAfederateName` attribute of the MIM object class `HLAfederate`.|
178 | |GeodeticPath|GeodeticPoint|A sequence of geodetic points defining a path.|
179 | |GeodeticPolygon|GeodeticLocation|A sequence of geodetic locations defines a geographical area bounded by a closed path where the first and last locations in the sequence are connected. Each point is a geodetic coordinate in WGS84 on the earth's surface, and each segment is a great circle between locations.|
180 | |LocationStructArray|LocationStruct|Dynamic array of LocationStruct elements, may also contain no elements.|
181 | |SymbolIdentifier|HLAunicodeChar|A symbol identifier is represented as a string. The identifier uses a URI notation (uri:xxxxxxxxxx) where the URI moniker specifies the symbology standard, e.g. app6a, app6b, app6c, 2525b, 2525c, 2525d. If not provided, the federation agreement defines the default symbol standard.|
182 | |UUID|HLAbyte|RFC 4122, section 4.1.2 using 16 bytes. Also referred to as Variant 1 or RFC 4122/DCE 1.1 UUIDs. For example, 00112233-4455-8877-6699-aabbccddeeff is encoded as the bytes 00 11 22 33 44 55 88 77 66 99 aa bb cc dd ee ff.|
183 |
184 | ### Fixed Record Datatypes
185 | |Name|Fields|Semantics|
186 | |---|---|---|
187 | |EquipmentSymbolAmplificationStruct|Quantity, StaffComments, AdditionalInformation, EvaluationRating, SignatureEquipment, Hostile, IFF_SIF_AIS, UniqueDesignation, EquipmentType, EngagementBarText|Text amplifiers for Equipment symbols.|
188 | |GeodeticCircle|CenterPoint, Radius|A geodetic point and radius specifying a circle on the earth's surface (WGS84) where the radius is a great circle distance on the surface.|
189 | |GeodeticLocation|Latitude, Longitude|A geodetic point, specified by latitude and longitude, with unspecified altitude. WGS84|
190 | |GeodeticPoint|Latitude, Longitude, Altitude|A geodetic point is specified by latitude, longitude and altitude.|
191 | |GeodeticQuadrangle|Point1, Point2|A latitude-longitude quadrangle is a region bounded by two meridians and two parallels.|
192 | |InstallationSymbolAmplificationStruct|StaffComments, AdditionalInformation, EvaluationRating, CombatEffectiveness, IFF_SIF_AIS, UniqueDesignation, EngagementBarText|Text amplifiers for Installation symbols.|
193 | |LocationStruct|X, Y, Z|The location of a point in space. Unless specified otherwise for the attribute, parameter, or datatype field using this datatype, the location is in the world coordinate system, as specified in IEEE Std 1278.1-2012 section 1.6.3.|
194 | |ResourceStatusStruct|NumberHealthyOrIntact, NumberSlightlyDamaged, NumberModeratelyDamaged, NumberSignificantlyDamaged, NumberDestroyed, ResourceName, ResourceType|The name of a resource and the number of instances of that resource by health status.|
195 | |SupplyStatusStruct|SupplyType, Quantity|Represents a single supply type and the quantity being offered or requested.|
196 | |SymbolStruct|Id, Amplification|Symbol Id and additional symbol amplification data.|
197 | |UnitSymbolAmplificationStruct|StaffComments, AdditionalInformation, EvaluationRating, CombatEffectiveness, HigherFormation, IFF_SIF_AIS, UniqueDesignation, SpecialHeadquarters, EngagementBarText|Text amplifiers for Unit symbols.|
198 |
199 | ### Variant Record Datatypes
200 | |Name|Discriminant (Datatype)|Alternatives|Semantics|
201 | |---|---|---|---|
202 | |SymbolAmplificationVariant|SymbolType (SymbolTypeEnum)|UnitSymbol, EquipmentSymbol, InstallationSymbol|Different symbol amplification data for different types of symbols.|
203 |
--------------------------------------------------------------------------------
/modules/NETN-SE/NETN-SE.md:
--------------------------------------------------------------------------------
1 |
2 | # NETN-SE
3 | |Version| Date| Dependencies|
4 | |---|---|---|
5 | |2.0|2024-03-10|RPR-SE, NETN-ETR, NETN-BASE|
6 |
7 |
8 |
9 | The NATO Education and Training Network Synthetic Environment module (NETN-SE) provides a standard way to exchange simulation data for objects in the synthetic environment other than simulated entities such as `Platform` or `AggregateEntity` objects.
10 |
11 |
12 |
13 | ## Overview
14 |
15 | The NETN-SE module extends the RPR-SE module by defining:
16 | * Checkpoints
17 | * Observation posts
18 | * Minefields
19 | * Generic Obstacles (OtherArealObject)
20 | * Areal Breaches
21 |
22 | The NETN-SE module also provides extended NETN-ETR tasks related to engineering activities.
23 |
24 |
25 |
26 | ## Object Classes
27 |
28 | ```mermaid
29 | classDiagram
30 | direction LR
31 |
32 | HLAobjectRoot <|-- EnvironmentObject
33 | HLAobjectRoot : UniqueId(NETN-BASE)
34 | EnvironmentObject <|-- PointObject
35 | EnvironmentObject <|-- LinearObject
36 | EnvironmentObject <|-- ArealObject
37 | EnvironmentObject : Comment
38 | EnvironmentObject : DamageState
39 | EnvironmentObject : HostObject
40 | EnvironmentObject : Name
41 | EnvironmentObject : Status
42 | EnvironmentObject : Symbol
43 | EnvironmentObject : ForceIdentifier(RPR-SE)
44 | EnvironmentObject : ObjectIdentifier(RPR-SE)
45 | EnvironmentObject : ObjectType(RPR-SE)
46 | PointObject <|-- Checkpoint
47 | PointObject <|-- ObservationPost
48 | PointObject : Radius
49 | PointObject : Location(RPR-SE)
50 | PointObject : Orientation(RPR-SE)
51 | Checkpoint : DelayTime
52 | ObservationPost : ObservationArea
53 | ObservationPost : Operator
54 | LinearObject : Points
55 | ArealObject <|-- ArealBreach
56 | ArealObject <|-- MinefieldObject
57 | ArealObject <|-- OtherArealObject
58 | ArealObject : PointsData(RPR-SE)
59 | ```
60 |
61 | ### EnvironmentObject
62 |
63 | A base class of environment point, linear, or areal object classes.
64 |
65 | |Attribute|Datatype|Semantics|
66 | |---|---|---|
67 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
68 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
69 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
70 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
71 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
72 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
73 | |ForceIdentifier
(RPR-SE)|ForceIdentifierEnum8|Identifies the force that created or modified this EnvironmentObject instance|
74 | |ObjectIdentifier
(RPR-SE)|EntityIdentifierStruct|Identifies this EnvironmentObject instance (point, linear or areal)|
75 | |ObjectType
(RPR-SE)|EnvironmentObjectTypeStruct|Identifies the type of this EnvironmentObject instance|
76 | |UniqueId
(NETN-BASE)|UUID|Required. A unique identifier for the object. The Universally Unique Identifier (UUID) is generated or pre-defined.|
77 |
78 | ### PointObject
79 |
80 | A synthetic environment object that is geometrically anchored to the terrain with a single point.
81 |
82 | |Attribute|Datatype|Semantics|
83 | |---|---|---|
84 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
85 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
86 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
87 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
88 | |Radius|MeterFloat64|Optional. The radius of the point object.|
89 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
90 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
91 | |ForceIdentifier
(RPR-SE)|ForceIdentifierEnum8|Identifies the force that created or modified this EnvironmentObject instance|
92 | |Location
(RPR-SE)|WorldLocationStruct|Specifies the location of the object based on x, y and z coordinates|
93 | |ObjectIdentifier
(RPR-SE)|EntityIdentifierStruct|Identifies this EnvironmentObject instance (point, linear or areal)|
94 | |ObjectType
(RPR-SE)|EnvironmentObjectTypeStruct|Identifies the type of this EnvironmentObject instance|
95 | |Orientation
(RPR-SE)|OrientationStruct|Specifies the angles of rotation around the coordinate axis between the object's attitude and the reference coordinate system axes ; these are calculated as the Tait-Bryan Euler angles, specifying the successive rotations needed to transform from the world coordinate system to the object coordinate system|
96 | |UniqueId
(NETN-BASE)|UUID|Required. A unique identifier for the object. The Universally Unique Identifier (UUID) is generated or pre-defined.|
97 |
98 | ### Checkpoint
99 |
100 | A CheckPoint defines a location where simulated entities' ground movement should stop and wait a specified time before continuing their route.
101 |
102 | |Attribute|Datatype|Semantics|
103 | |---|---|---|
104 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
105 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
106 | |DelayTime|TimeMillisecondInt64|Required. The time that an entity shall wait at the checkpoint before passing. The time is a nominal value; models can use this for modifying delay time for different types of entities, e.g. add or subtract a value or multiply with a factor dependent on the simulation entity type.|
107 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
108 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
109 | |Radius|MeterFloat64|Optional. The radius of the point object.|
110 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
111 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
112 |
113 | ### ObservationPost
114 |
115 | A ObservationPost defines a location where a simulated entity can observe an area.
116 |
117 | |Attribute|Datatype|Semantics|
118 | |---|---|---|
119 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
120 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
121 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
122 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
123 | |ObservationArea|WorldLocationStructLengthlessArray|Optional. The area to be observed.|
124 | |Operator|UUID|Required. Reference to the unit operating this observation post.|
125 | |Radius|MeterFloat64|Optional. The radius of the point object.|
126 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
127 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
128 |
129 | ### LinearObject
130 |
131 | A synthetic environment object that has size and an orientation and is geometrically anchored to the terrain with one point.
132 |
133 | |Attribute|Datatype|Semantics|
134 | |---|---|---|
135 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
136 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
137 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
138 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
139 | |Points|LocationStructArray|Required. A path with at least 2 locations.|
140 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
141 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
142 |
143 | ### ArealBreach
144 |
145 | A cleared area within an obstacle allows simulated entities to move through the obstacle.
146 |
147 | |Attribute|Datatype|Semantics|
148 | |---|---|---|
149 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
150 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
151 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
152 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
153 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
154 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
155 |
156 | ### MinefieldObject
157 |
158 | A mine, mine weapon, mine row, mine strip, mine lane, mine marker or minefield, defined as an areal environment object.
159 |
160 | |Attribute|Datatype|Semantics|
161 | |---|---|---|
162 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
163 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
164 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
165 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
166 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
167 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
168 |
169 | ### OtherArealObject
170 |
171 | Areal objects other than Minefield objects.
172 |
173 | |Attribute|Datatype|Semantics|
174 | |---|---|---|
175 | |Comment|HLAunicodeString|Optional. A descriptive text comment.|
176 | |DamageState|DamageStatusEnhancedEnum32|Optional. The damage state of an EnvironmentObject. The default value is 0 (NoDamage).|
177 | |HostObject|UUID|Optional. Reference to the host object. Required when using Breach/Burst objects.|
178 | |Name|HLAunicodeString|Optional. A name of the EnvironmentObject.|
179 | |Status|ActiveStatusEnum8|Optional. Specifies if the EnvironmentObject is considered active in the simulation. An inactive object should not affect other simulation models. The default value is 1 (Active).|
180 | |Symbol|SymbolStruct|Optional. A symbol identifier.|
181 |
182 | ## Interaction Classes
183 |
184 | ```mermaid
185 | classDiagram
186 | direction LR
187 | HLAinteractionRoot <|-- SMC_EntityControl
188 | HLAinteractionRoot : UniqueId(NETN-BASE)
189 | SMC_EntityControl <|-- Task
190 | SMC_EntityControl : Entity(NETN-SMC)
191 | Task <|-- CreateBreach
192 | Task <|-- EstablishCheckpoint
193 | Task <|-- LayMinefield
194 | Task <|-- CreateObstacle
195 | Task <|-- ClearEngineering
196 | Task <|-- EstablishObservationPost
197 | Task : TaskId(NETN-ETR)
198 | CreateBreach : TaskParameters
199 | EstablishCheckpoint : TaskParameters
200 | LayMinefield : TaskParameters
201 | CreateObstacle : TaskParameters
202 | ClearEngineering : TaskParameters
203 | EstablishObservationPost : TaskParameters
204 | ```
205 |
206 | ### CreateBreach
207 |
208 | Requests a simulated entity to create a breach or passage on a breachable engineering object.
209 |
210 | |Parameter|Datatype|Semantics|
211 | |---|---|---|
212 | |TaskParameters|CreateBreachTaskStruct|Required: Task parameters.|
213 | |Entity
(NETN-SMC)|UUID|Required: Reference to a simulation entity for which the control action is intended. Required for all ETR related interactions.|
214 | |TaskId
(NETN-ETR)|UUID|Required. Unique identifier for the task.|
215 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all ETR related interactions.|
216 |
217 | ### EstablishCheckpoint
218 |
219 | Requests a simulated entity to establish a checkpoint.
220 |
221 | |Parameter|Datatype|Semantics|
222 | |---|---|---|
223 | |TaskParameters|EstablishCheckpointTaskStruct|Required: Task parameters.|
224 | |Entity
(NETN-SMC)|UUID|Required: Reference to a simulation entity for which the control action is intended. Required for all ETR related interactions.|
225 | |TaskId
(NETN-ETR)|UUID|Required. Unique identifier for the task.|
226 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all ETR related interactions.|
227 |
228 | ### LayMinefield
229 |
230 | Requests a simulated entity to lay a minefield within a specified area and amount of mines.
231 |
232 | |Parameter|Datatype|Semantics|
233 | |---|---|---|
234 | |TaskParameters|LayMinefieldTaskStruct|Required: Task parameters.|
235 | |Entity
(NETN-SMC)|UUID|Required: Reference to a simulation entity for which the control action is intended. Required for all ETR related interactions.|
236 | |TaskId
(NETN-ETR)|UUID|Required. Unique identifier for the task.|
237 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all ETR related interactions.|
238 |
239 | ### CreateObstacle
240 |
241 | Requests a simulated entity to create an obstacle within the given area. The tasked entity should be within a certain distance (tolerance specified in the federation agreement) of one of the points of the geometry.
242 |
243 | |Parameter|Datatype|Semantics|
244 | |---|---|---|
245 | |TaskParameters|CreateObstacleTaskStruct|Required: Task parameters.|
246 | |Entity
(NETN-SMC)|UUID|Required: Reference to a simulation entity for which the control action is intended. Required for all ETR related interactions.|
247 | |TaskId
(NETN-ETR)|UUID|Required. Unique identifier for the task.|
248 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all ETR related interactions.|
249 |
250 | ### ClearEngineering
251 |
252 | Requests a simulated entity to clear/remove an engineering object. The clearing activity's duration may depend on the entity's model.
253 |
254 | |Parameter|Datatype|Semantics|
255 | |---|---|---|
256 | |TaskParameters|ClearEngineeringTaskStruct|Required: Task parameters.|
257 | |Entity
(NETN-SMC)|UUID|Required: Reference to a simulation entity for which the control action is intended. Required for all ETR related interactions.|
258 | |TaskId
(NETN-ETR)|UUID|Required. Unique identifier for the task.|
259 | |UniqueId
(NETN-BASE)|UUID|Optional: A unique identifier for the interaction. Required for all ETR related interactions.|
260 |
261 | ### EstablishObservationPost
262 |
263 | Requests a simulated entity to establish a observation post.
264 |
265 | |Parameter|Datatype|Semantics|
266 | |---|---|---|
267 | |TaskParameters|EstablishObservationPostTaskStruct|Required. Task parameters.|
268 |
269 | ## Datatypes
270 |
271 | Note that only datatypes defined in this FOM Module are listed below. Please refer to FOM Modules on which this module depends for other referenced datatypes.
272 |
273 | ### Overview
274 | |Name|Semantics|
275 | |---|---|
276 | |ClearEngineeringTaskStruct|Task parameters.|
277 | |CreateBreachTaskStruct|Task parameters.|
278 | |CreateObstacleTaskStruct|Task parameters.|
279 | |EngineeringTaskStruct|Task parameters.|
280 | |EntityControlActionEnum|Enumeration of Entity Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
281 | |EstablishCheckpointTaskStruct|Task parameters.|
282 | |EstablishObservationPostTaskStruct|Task parameters.|
283 | |LayMinefieldTaskStruct|Task parameters.|
284 | |TaskDefinitionVariantRecord|Variant record for task definition data.|
285 | |TaskProgressVariantRecord|Variant record for task progress data.|
286 |
287 | ### Enumerated Datatypes
288 | |Name|Representation|Semantics|
289 | |---|---|---|
290 | |EntityControlActionEnum|HLAinteger32BE|Enumeration of Entity Control Actions. The datatype is expected to be extended in specific modules defining additional actions.|
291 |
292 | ### Fixed Record Datatypes
293 | |Name|Fields|Semantics|
294 | |---|---|---|
295 | |ClearEngineeringTaskStruct|EngineeringObjectId, Duration|Task parameters.|
296 | |CreateBreachTaskStruct|EngineeringTask, EngineeringObject, Area|Task parameters.|
297 | |CreateObstacleTaskStruct|EngineeringTask, Area|Task parameters.|
298 | |EngineeringTaskStruct|EngineeringObjectId, Name, Duration|Task parameters.|
299 | |EstablishCheckpointTaskStruct|EngineeringTask, Location, Radius, DelayTime|Task parameters.|
300 | |EstablishObservationPostTaskStruct|EngineeringTask, Location|Task parameters.|
301 | |LayMinefieldTaskStruct|EngineeringTask, MineType, MineCount, Area|Task parameters.|
302 |
303 | ### Variant Record Datatypes
304 | |Name|Discriminant (Datatype)|Alternatives|Semantics|
305 | |---|---|---|---|
306 | |TaskDefinitionVariantRecord|TaskType (EntityControlActionEnum)|ClearEngineering, LayMinefield, CreateBreach, EstablishCheckpoint, CreateObstacle, EstablishObservationPost|Variant record for task definition data.|
307 | |TaskProgressVariantRecord|TaskType (EntityControlActionEnum)|ElapsedEngineeringTime|Variant record for task progress data.|
308 |
--------------------------------------------------------------------------------