├── .gitignore ├── FomFiles_HLA4 ├── NETN-AIS.xml ├── NETN-BASE.xml ├── NETN-CBRN.xml ├── NETN-COM.xml ├── NETN-DIM.xml ├── NETN-ENTITY.xml ├── NETN-ETR.xml ├── NETN-LOG.xml ├── NETN-METOC.xml ├── NETN-MRM.xml ├── NETN-ORG.xml ├── NETN-SE.xml ├── NETN-SMC.xml └── NETN-TMR.xml ├── FomFiles_Merged_HLA_Evolved ├── NETN-MIM.xml ├── NETN-Merged-With-RPR.xml └── README.md ├── LICENCE.md ├── NETN-FOM.md ├── NamingConventions.md ├── README.md ├── changelog.md ├── flow.md ├── images └── dependencies.png └── modules ├── NETN-AIS ├── NETN-AIS.md ├── NETN-AIS.xml ├── README.md ├── XmlSchema │ ├── NETN-AIS-example.xml │ └── NETN-AIS.xsd └── changelog.md ├── NETN-BASE ├── NETN-BASE.md ├── NETN-BASE.xml ├── README.md └── changelog.md ├── NETN-CBRN ├── NETN-CBRN.md ├── NETN-CBRN.xml ├── README.md └── changelog.md ├── NETN-COM ├── NETN-COM.md ├── NETN-COM.xml ├── README.md └── changelog.md ├── NETN-DIM ├── NETN-DIM.md ├── NETN-DIM.xml ├── README.md └── changelog.md ├── NETN-ENTITY ├── NETN-ENTITY.md ├── NETN-ENTITY.xml ├── README.md └── changelog.md ├── NETN-ETR ├── NETN-ETR.md ├── NETN-ETR.xml ├── README.md └── changelog.md ├── NETN-LOG ├── NETN-LOG.md ├── NETN-LOG.xml ├── README.md └── changelog.md ├── NETN-METOC ├── NETN-METOC.md ├── NETN-METOC.xml ├── README.md └── changelog.md ├── NETN-MRM ├── NETN-MRM.md ├── NETN-MRM.xml ├── README.md └── changelog.md ├── NETN-ORG ├── NETN-ORG.md ├── NETN-ORG.xml ├── README.md ├── XmlSchema │ ├── NETN-ORG-Codes.xsd │ ├── NETN-ORG-ComplexTypes.xsd │ ├── NETN-ORG-SimpleTypes.xsd │ ├── NETN-ORG.xsd │ └── extern │ │ ├── JC3IEDM-3.1-Codes-20061208.xsd │ │ ├── JC3IEDMMeteorological.xsd │ │ └── ModelID_v2006_FINAL.xsd └── changelog.md ├── NETN-SE ├── NETN-SE.md ├── NETN-SE.xml ├── README.md └── changelog.md ├── NETN-SMC ├── NETN-SMC.md ├── NETN-SMC.xml ├── README.md └── changelog.md └── NETN-TMR ├── NETN-TMR.md ├── NETN-TMR.xml ├── README.md └── changelog.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | *-DEP.xml -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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) -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /images/dependencies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AMSP-04/NETN-FOM/0d4f40cfe85bae401e33fe8b5084a3b2d738f95c/images/dependencies.png -------------------------------------------------------------------------------- /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-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/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-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-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-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-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-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-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-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-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-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-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 | -------------------------------------------------------------------------------- /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-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-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-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-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-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 | -------------------------------------------------------------------------------- /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-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 | -------------------------------------------------------------------------------- /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-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-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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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-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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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-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-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-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-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-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-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-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 | --------------------------------------------------------------------------------