Keep the plugin ICD docs and jenkins-ci-rme/README.md

Revert part of the markdown cleanup: the two TrainingAreaBase plugin
ICD docs and jenkins-ci-rme/README.md stay in the tree; the root
migration/validation reports remain removed. README.md pointers to
jenkins-ci-rme/README.md are restored.
This commit is contained in:
berrux-dev committed 2026-11-14 01:16:27 +01:00
1 parent 4bc64639e4
commit a62b729577
4 files changed
+257 -7

No files matched your search

@@ -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
}
}
}
@@ -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:
<pre><code>
{
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
}
}
}
</pre></code>
RemoveParticipant Telegram(Sending deleted participant to Apache)
Example Telegram:
<pre><code>
{
typeId:8001,
type: ApacheHlaRemoveParticipant,
data:
{
header: {
equipmentNumber: 42,
timeStamp: MsecsSinceEpoch
}
}
}
</pre></code>
Change Position Telegram( Send new Position of participant to Apache)
Example Telegram:
<pre><code>
{
typeId:8002,
type: ApacheHlaPositionChanged,
data:
{
header: {
equipmentNumber: 42,
timeStamp: MsecsSinceEpoch
},
lon: 15.275884,
lat: 37.854856,
z: 42.255278
}
}
</pre></code>
Change VulnerabilityState Telegram(Sending updated VulnerabilityState to Apache)
Example Telegram:
<pre><code>
{
typeId:8003,
type: ApacheHlaVulnerabilityStateChanged,
data:
{
header: {
equipmentNumber: 42,
timeStamp: MsecsSinceEpoch
},
status: 11
}
}
</pre></code>
AllChargeTypes Telegram(Sending all Charge Types at the beginning of an exercise to Apache)
Example Telegram:
<pre><code>
{
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
},
{
...
}
]
}
</pre></code>
+2 -7
View File
@@ -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_<timestamp>_<pid>/` — 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)
@@ -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 <pipeline root>/qt-migration-legatus/qt6-after/qt6-migrated-legatus
bash ./jenkins-ci-rme/release-16-10-2026.sh
# DEBs: <pipeline root>/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).