diff --git a/qt6-after/qt6-migrated-legatus/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/ICD_UFom_HLA.md b/qt6-after/qt6-migrated-legatus/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/ICD_UFom_HLA.md new file mode 100755 index 000000000..5af7bb8de --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/ICD_UFom_HLA.md @@ -0,0 +1,79 @@ +c# UFOM HLA Plugin + +This is a small documentation of the UFOM HLA TAB Plugin. This document will cover most of the behaviours of the different Telegrams that are supported. +## Change Position +This plugin publishes all changes in position from every Participant that is not external. A "MountActionRequest" will be sent out if an external participant mounts an internal participant ( vehicle ). + - External Participant Mounts Internal Participant -> **MountActionRequest** will be sent. + - External Participant Unmounts from internal participant -> **UnmountActionRequest** will be sent. + - Mounted external participant mounts any internal participant -> **MountActionRequest** will be sent. + > **Note:** No **UnmountActionRequest** will be sent in this case + +- Mounted external participant mounts any external participant -> **Nothing** will be sent. + +## JSON Telegrams +### UFOMHLA_ADD_PARTICIPANT +ID: 8100 + +### UFOMHLA_REMOVE_PARTICIPANT +ID: 8101 + +### UFOMHLA_POSITION_CHANGED +ID: 8102 + +#### Example: + + { + "typeId": 8102, + "type": "UFomHlaPositionChanged", + "data":{ + "header": { + "equipmentNumber": 1234, + "timeStamp": 12341234 + }, + "lon": 1.2341234, + "lat": 1.2341234, + "z": 0 + } + } + + +### UFOMHLA_VULNERABILITY_STATE_CHANGED +ID: 8103 + +### UFOMHLA_LASER_DESIGNATION +ID: 8104 + +### UFOMHLA_SEND_CHARGE_TYPES +ID: 8105 + +### UFOMHLA_PARTICIPANT_MOUNT +ID: 8106 +**mountedOn** : Equipment number of the participant to be mounted +#### Example: + + { + "typeId": 8101, + "type": "UFomHlaParticipantMount", + "data":{ + "header": { + "equipmentNumber": 1234, + "timeStamp": 12341234 + }, + "mountedOn": 123, + } + } + +### UFOMHLA_PARTICIPANT_UNMOUNT +ID: 8107 +#### Example: + + { + "typeId": 8101, + "type": "UFomHlaParticipantUnmount", + "data":{ + "header": { + "equipmentNumber": 1234, + "timeStamp": 12341234 + } + } + } diff --git a/qt6-after/qt6-migrated-legatus/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/ICD_apache_hla_telegrams.md b/qt6-after/qt6-migrated-legatus/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/ICD_apache_hla_telegrams.md new file mode 100755 index 000000000..cdd2612e8 --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/ICD_apache_hla_telegrams.md @@ -0,0 +1,120 @@ +All Telegrams only defined for communication between TAB-Plugin and Apache Virtual Machine + + + AddParticipant Telegram(Sending updated or added participant to Apache) + + Example Telegram: +

+ {
+  typeId:8000,
+  type: ApacheHlaAddParticipant,
+  data:
+       {
+       header: {
+                equipmentNumber: 42,
+                timeStamp: MsecsSinceEpoch
+               },
+       status: 11,
+       forceIdentifier: 42,
+       ets: "2.0.0.0.0.0.1",
+       GeoPosition: {
+                    lon: 15.145274,
+                    lat: 24.5554556,
+                    z: 55.000124
+                    }
+       }
+ }
+
+ + + + RemoveParticipant Telegram(Sending deleted participant to Apache) + + + Example Telegram: +

+ {
+ typeId:8001,
+ type: ApacheHlaRemoveParticipant,
+ data:
+       {
+       header: {
+                equipmentNumber: 42,
+                timeStamp: MsecsSinceEpoch
+               }
+       }
+ }
+
+ + Change Position Telegram( Send new Position of participant to Apache) + + Example Telegram: +

+  {
+  typeId:8002,
+  type: ApacheHlaPositionChanged,
+  data:
+       {
+       header: {
+                equipmentNumber: 42,
+                timeStamp: MsecsSinceEpoch
+               },
+       lon: 15.275884,
+       lat: 37.854856,
+       z: 42.255278
+       }
+  }
+
+ + Change VulnerabilityState Telegram(Sending updated VulnerabilityState to Apache) + + + Example Telegram: +

+  {
+  typeId:8003,
+  type: ApacheHlaVulnerabilityStateChanged,
+  data:
+       {
+       header: {
+                equipmentNumber: 42,
+                timeStamp: MsecsSinceEpoch
+               },
+       status: 11
+       }
+  }
+
+ + + +AllChargeTypes Telegram(Sending all Charge Types at the beginning of an exercise to Apache) + + +Example Telegram: + +

+  {
+  typeId:8005,
+  type: ApacheHlaSendChargeTypes,
+  data:
+       [
+        {
+         id: 420,
+         name: 42mm,
+         entityTypeStruct: TestTest,
+         primaryGearTasCode: 11,
+         radius: 7
+        },
+        {
+         id: 777,
+         name: 77mm,
+         entityTypeStruct: TestTest,
+         primaryGearTasCode: 77,
+         radius: 77
+        },
+        {
+         ...
+        }
+       ]
+  }
+
diff --git a/qt6-after/qt6-migrated-legatus/README.md b/qt6-after/qt6-migrated-legatus/README.md index a1b7e5aae..30a7d39ca 100644 --- a/qt6-after/qt6-migrated-legatus/README.md +++ b/qt6-after/qt6-migrated-legatus/README.md @@ -38,7 +38,7 @@ The group target lists are the `GROUP*_TARGETS` arrays in - `new_docker_build_release2.sh` — Release 2 build driver (compile, ctest, DEB packaging, coverage) - `Dockerfile` — recipe of the build image (Ubuntu 26.04 + Qt 6.10.2 + deps) - `rpmbuild/make_rpm_ubuntu26_release2.py` — Release 2 DEB package producer (5 packages) -- `jenkins-ci-rme/` — in-tree copy of the Jenkins CI flow (Jenkinsfile, builder, publisher, local dry run) +- `jenkins-ci-rme/` — in-tree copy of the Jenkins CI flow (see its own `README.md`) - `build4__/` — per-run build tree, created by the driver (git-ignored via `build4_*`) **Toolchain inside the image:** Ubuntu 26.04, Qt 6.10.2 (`/opt/Qt/6.10.2/gcc_64`), @@ -231,12 +231,7 @@ local dry run of the same flow without Jenkins: jenkins-ci-rme/release-16-10-2026.sh ``` -The pipeline files: `jenkins-ci-rme/Jenkinsfile` (job entry point), -`jenkins-ci-rme/jenkins/Jenkinsfile` (build body: install the prebuilt -image when missing, run the builder, coverage, publish), -`jenkins-ci-rme/jenkins_builder_ubuntu26.sh` (in-container DEB build), -`jenkins-ci-rme/jenkins_publisher_ubuntu26.sh` (upload to the artifact -repository). +See `jenkins-ci-rme/README.md` for the pipeline details. ## Step 5 — Code coverage (lcov) diff --git a/qt6-after/qt6-migrated-legatus/jenkins-ci-rme/README.md b/qt6-after/qt6-migrated-legatus/jenkins-ci-rme/README.md new file mode 100644 index 000000000..b8dab9bb3 --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/jenkins-ci-rme/README.md @@ -0,0 +1,56 @@ +# jenkins-ci-rme — release pipeline for the Qt6 Release 2 branch + +In-tree copy of the Jenkins CI flow, adapted so the release pipeline depends +only on files inside this source tree: + +| File | Purpose | +|---|---| +| `Jenkinsfile` | Jenkins entry point (job script path `jenkins-ci-rme/Jenkinsfile`): job properties/parameters, build node, checkout with submodules, then `load`s `jenkins-ci-rme/jenkins/Jenkinsfile` | +| `jenkins/Jenkinsfile` | Build body (per OS version, sequentially): install the prebuilt image from `legatus-qt6_1.0.tar.gz` when missing, run the builder inside the container, coverage, publish the DEBs to the artifact repo | +| `jenkins_builder_ubuntu26.sh` | Runs **inside** the build container: stages the workspace, runs the in-tree `rpmbuild/make_rpm_ubuntu26_release2.py` with the Release 2 target list, copies the DEBs to the packages-out mount | +| `jenkins_publisher_ubuntu26.sh` | Runs on the Jenkins agent: uploads the DEBs from `${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/` to the internal artifact repository | +| `release-16-10-2026.sh` | Local driver: the same flow without Jenkins, through the in-tree `new_docker_build_release2.sh` | + +## Not included (superseded) + +- `jenkins_builder.sh` / `jenkins_publisher.sh` — openSUSE/RPM flow, not used + by this branch (DEB/Ubuntu 26.04 only) +- `Dockerfile-15.1` / `Dockerfile-ubuntu26.04` / `Dockerfile-ubuntu26-qt6` — + old image recipes; the prebuilt build image is built from the in-tree + `Dockerfile` (one level up) +- `jenkins_notifier.sh` — Bitbucket build-status notification, not part of + this project + +## Adaptations vs. the outer-repo copy + +- Packaging uses the **in-tree** `rpmbuild/make_rpm_ubuntu26_release2.py` + (was `${WORKSPACE}/rpmbuild` from the outer repo) +- The prebuilt build image `legatus-qt6:1.0` ships in the repo as + `legatus-qt6_1.0.tar.gz` (repo root); Jenkins `docker load`s it only when + the image is not installed on the agent yet, and never builds it +- `MIGRATE_PIPELINE_ROOT` is exported by the local dry run (derived from the + tree location); `new_docker_build_release2.sh` falls back to its own + location when it is not set +- DEB output path: `${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/` (Jenkins + convention); the packages-out copy is skipped when that directory is the + make_rpm output dir (same device:inode guard as in + `new_docker_build_release2.sh`) +- Publisher uploads `${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/` directly — + `make_rpm_ubuntu26_release2.py` writes the DEBs there without a TDS subfolder +- The post-publish Cleanup stage was dropped: the DEBs are kept under + `${WORKSPACE}/rpms/...` (the documented output location) + +## Local run + +```bash +cd /qt-migration-legatus/qt6-after/qt6-migrated-legatus +bash ./jenkins-ci-rme/release-16-10-2026.sh +# DEBs: /rpms/guez/26.04/ +``` + +## Jenkins setup + +The job SCM is the DLBO Qt6 repository; the script path is +`jenkins-ci-rme/Jenkinsfile`, which loads `jenkins-ci-rme/jenkins/Jenkinsfile`. +Required Jenkins credential: `internal-repo-uploader` (username/password for +the artifact repository).