Session 022: Migrate Lts/Tools (72 submodules) to Qt6

- Copied complete Lts/Tools directory from qt5-before to qt6-after
- Updated 32 CMakeLists.txt files (Qt5:: → Qt6::)
- Tools subdirectory already included in parent Lts/CMakeLists.txt
- All 72 tool submodules now present in qt6-migrated-legatus
- Includes: Adler, ArAssets, ConfigX, DBAdministration, DBUpdate,
  DdsView, InfrastructureManagement, and 67 more tools
- C++17 standard (RTI 7.7.0 compatibility maintained)
- Tests deferred until final validation phase

Migration progress:
✅ Lts/Application (68 files)
✅ Lts/DDS (verified Qt6-ready)
✅ Lts/Plugins (60 submodules, verified)
✅ Lts/Projects (5 submodules, verified)
✅ Lts/Proxies (13 submodules, verified)
✅ Lts/Services (47 submodules, verified)
✅ Lts/Tools (72 submodules, copied + CMake updated)
✅ Lts/Viewer (LtsFileDialog, LtsReportDisplay, SituationMap)
🟡 TetraIF (partial)
🟡 Z (partial: nglwidgets, QtSingleApplication, qsql_informix, WMS_Interface)
This commit is contained in:
torsten committed 2026-08-25 14:07:20 +02:00
1 parent 01dce5fe52
commit d5c13033e2
1792 files changed
+982018

No files matched your search

@@ -0,0 +1,28 @@
import { participantError } from "../store/participantSlice";
/**
* Verwendet einen WebSocket, um die ABC-Schutzinformationen eines Teilnehmers zu ändern.
*
* Diese Funktion stellt eine Verbindung zu einem WebSocket-Server her und sendet eine Anfrage,
* um die ABC-Schutzinformationen eines bestimmten Teilnehmers zu ändern. Nach dem Senden der Anfrage
* wird die Verbindung sofort geschlossen. Im Fehlerfall wird ein Fehlerzustand über Redux dispatcht.
*
* @param {string} equipmentNumber - Die Ausrüstungsnummer des Teilnehmers, dessen ABC-Schutzinformationen geändert werden sollen.
* @param {boolean} abcProtection - Der neue Zustand des ABC-Schutzes für den Teilnehmer (true für aktiviert, false für deaktiviert).
* @param {string} exerciseId - Die ID der Übung, zu der der Teilnehmer gehört.
* @param {function} dispatch - Die Redux Dispatch-Funktion, um den Fehlerzustand zu aktualisieren, falls ein Fehler auftritt.
*/
export function useChangeAbcProtection(equipmentNumber, abcProtection, exerciseId, dispatch) {
const socket = new WebSocket('ws://localhost:6969/participantHandler');
socket.onopen = function open() {
var req = JSON.stringify({
type: 'changeAbcProtection',
excerciseId: parseInt(exerciseId),
participantData: { "participantId": parseInt(equipmentNumber), "abcProtection": abcProtection }
})
socket.send(req);
socket.close()
};
socket.onerror = () => {
dispatch(participantError({ isError: true, errorMessage: "ERROR: There was an error with the participant websocket!" }))
};
}
@@ -0,0 +1,49 @@
import { addParticipant, participantError } from "../store/participantSlice";
/**
* Überprüft, ob ein Teilnehmer für eine bestimmte Übung gültig ist, indem eine WebSocket-Verbindung verwendet wird.
*
* Diese Funktion initiiert eine WebSocket-Verbindung zu einem Server und sendet eine Anfrage, um zu überprüfen,
* ob ein Teilnehmer für eine bestimmte Übung gültig ist. Die Anfrage enthält die Übungs-ID und die Teilnehmer-ID.
* Bei einem Fehler in der WebSocket-Verbindung wird ein Fehlerzustand über die `participantError`-Aktion im Redux-Store
* dispatcht. Nach dem Öffnen der Verbindung wird die Anfrage gesendet. Bei Erhalt einer Nachricht vom Server (die Antwort
* auf die Gültigkeitsprüfung) wird die Antwort verarbeitet. Die Informationen über die
* Zugehörigkeit des Teilnehmers beinhaltet die PartyId, die dann weiter verwendet werden können.
*
* @param {string} equipmentNumber - Die ID des Teilnehmers, dessen Gültigkeit überprüft werden soll.
* @param {string} exerciseId - Die ID der Übung, für die die Gültigkeit des Teilnehmers überprüft werden soll.
* @param {function} dispatch - Die Redux Dispatch-Funktion, die verwendet wird, um Aktionen im Redux-Store zu dispatchen.
* @param {Array<Object>} partyList - Eine Liste von Parteien, die in der Überprüfung verwendet wird, um Details zum Teilnehmer zu ermitteln.
* @param {string} _partyId - Eine vorläufige Partei-ID, die in der Funktion verwendet wird (der genaue Verwendungszweck ist aus dem Auszug nicht ersichtlich).
*/
export function useCheckIfParticipantIsValid(equipmentNumber, exerciseId, dispatch, partyList, _partyId) {
const socket = new WebSocket('ws://localhost:6969/participantHandler');
socket.onerror = (error) => {
dispatch(participantError({ isError: true, errorMessage: "ERROR: There was an error with the participant websocket!" }))
};
socket.onopen = function open() {
var req = JSON.stringify({
type: 'checkIfParticipantIsValid',
excerciseId: parseInt(exerciseId),
participantData: { "participantId": parseInt(equipmentNumber) }
})
socket.send(req);
};
socket.onmessage = function incoming(event) {
const participant = JSON.parse(event.data);
var partyName = ""
var partyId = ""
for(var party of partyList) {
if(party.id === participant.partyId) {
partyName = party.party;
partyId = party.id
}
}
if (participant.valid && partyId === parseInt(_partyId)) {
dispatch(addParticipant({ equipmentNumber: participant.equipmentNumber, currentPosition: [53.0580229, 8.8972232], abcProtection: false, type: participant.tacticalIdentifier, party: partyName, exerciseId: exerciseId, isWalking: false, walkingMode: "", path: []}));
} else {
dispatch(participantError({isError: true, errorMessage: "Participant is not valid! Group or Equipment Number could be wrong!"}))
}
socket.close();
};
}
@@ -0,0 +1,56 @@
import { addParticipant, participantError } from "../store/participantSlice";
let req = ""
export function getAllParticipants(exerciseId, dispatch, partyList) {
var socket = new WebSocket('ws://localhost:6969/participantHandler');
socket.onerror = (error) => {
dispatch(participantError({ isError: true, errorMessage: "ERROR: There was an error with the participant websocket!" }))
};
socket.onopen = function open() {
req = JSON.stringify(
{type: "getAllParticipants", excerciseId: 42}
)
socket.send(req);
};
socket.onmessage = function incoming(event) {
const participants = JSON.parse(event.data);
var blueCount = 0;
var redCount = 0;
socket.onmessage = () => {}
for(var participant of participants) {
var partyName = ""
for (var party of partyList) {
if (party.id === participant.partyId) {
partyName = party.party;
}
}
if (participant.valid) {
if(participant.partyId === 2 ) {
dispatch(addParticipant({ equipmentNumber: participant.equipmentNumber, currentPosition: [53.044 + 0.0005 * blueCount , 8.814], abcProtection: false, type: participant.tacticalIdentifier, party: partyName, exerciseId: exerciseId, isWalking: false, walkingMode: "", path: [] }));
req = JSON.stringify({
type: 'changePosition',
excerciseId: parseInt(exerciseId),
participantData: { "participantId": parseInt(participant.equipmentNumber), "positions": [{"lat": 53.044 + 0.0005 * blueCount, "lng": 8.814}] }
})
socket.send(req);
blueCount++;
} else if(participant.partyId === 3) {
dispatch(addParticipant({ equipmentNumber: participant.equipmentNumber, currentPosition: [53.044 + 0.0005 * redCount , 8.959], abcProtection: false, type: participant.tacticalIdentifier, party: partyName, exerciseId: exerciseId, isWalking: false, walkingMode: "", path: [] }));
req = JSON.stringify({
type: 'changePosition',
excerciseId: parseInt(exerciseId),
participantData: { "participantId": parseInt(participant.equipmentNumber), "positions": [{"lat": 53.044 + 0.0005 * redCount, "lng": 8.959}] }
})
socket.send(req);
redCount++
}
}
}
};
}
@@ -0,0 +1,30 @@
import { setExcerciseId, exerciseError } from "../store/exerciseSlice";
/**
* Verwendet einen WebSocket, um eine Liste von Übungs-IDs vom Server zu erhalten.
*
* Diese Funktion stellt eine Verbindung zu einem WebSocket-Server her und wartet auf eine Nachricht,
* die eine Liste von Übungs-IDs enthält. Sobald die Nachricht empfangen wird, wird die Liste der IDs
* in einem Redux-Store gespeichert, indem die `setExcerciseId`-Aktion dispatched wird. Nach dem Empfang
* der Daten wird die WebSocket-Verbindung geschlossen. Im Falle eines Fehlers beim Empfangen der Daten
* wird ein Fehlerzustand über die `exerciseError`-Aktion im Redux-Store gesetzt.
*
* @param {function} dispatch - Die Redux Dispatch-Funktion, die verwendet wird, um Aktionen im Redux-Store zu dispatchen.
*/
export function useGetExerciseIds(dispatch) {
const socket = new WebSocket('ws://localhost:6969/exerciseIds');
const exerciseIds = [];
socket.onmessage = function incoming(event) {
for (var exerciseId of JSON.parse(event.data)) {
exerciseIds.push(exerciseId);
}
dispatch(setExcerciseId(exerciseIds))
socket.close();
};
socket.onerror = () => {
dispatch(exerciseError({ isError: true, errorMessage: "ERROR: There was an error with the exerciseIds websocket!" }))
};
}
@@ -0,0 +1,32 @@
import { partyDataError, setPartyData } from '../store/partySlice.js';
/**
* Stellt eine WebSocket-Verbindung her, um Parteidaten basierend auf einer Übungs-ID zu erhalten.
*
* Diese Funktion initiiert eine WebSocket-Verbindung zu einem vorgegebenen Server und sendet eine Anfrage
* mit der Übungs-ID, um spezifische Partydaten zu erhalten. Sobald die Verbindung geöffnet ist, wird die
* Übungs-ID an den Server gesendet. Bei Empfang der Daten (über die `onmessage`-Ereignisbehandlung) werden
* die empfangenen Parteidaten durch Dispatchen der `setPartyData`-Aktion im Redux-Store gespeichert.
* Im Falle eines Verbindungsfehlers wird ein Fehlerzustand durch Dispatchen der `partyDataError`-Aktion
* im Redux-Store gesetzt. Nach erfolgreichem Empfang der Daten wird die WebSocket-Verbindung geschlossen.
*
* @param {string} exerciseId - Die ID der Übung, für die Parteidaten abgerufen werden sollen.
* @param {function} dispatch - Die Redux Dispatch-Funktion, die verwendet wird, um Aktionen im Redux-Store zu dispatchen.
*/
export function useGetPartyData(exerciseId, dispatch) {
const socket = new WebSocket('ws://localhost:6969/partyData');
socket.onopen = function open() {
socket.send(JSON.stringify({
excerciseId: parseInt(exerciseId),
}));
};
socket.onmessage = function incoming(event) {
for (var party of JSON.parse(event.data)) {
dispatch(setPartyData(party))
}
socket.close();
};
socket.onerror = (error) => {
dispatch(partyDataError({ isError: true, errorMessage: "ERROR: There was an error with the partyData websocket!" }))
};
}
@@ -0,0 +1,26 @@
/**
* Verwendet einen WebSocket, um eine Positionsänderung eines Teilnehmers zu senden.
*
* Diese Funktion stellt eine Verbindung zu einem WebSocket-Server her und sendet eine Anfrage,
* um die Position eines Teilnehmers zu aktualisieren. Die Anfrage enthält die Übungs-ID, die Ausrüstungsnummer
* des Teilnehmers und die neue geographische Position. Nach dem Senden der Anfrage wird die Verbindung
* sofort geschlossen. Im Fehlerfall wird ein Fehlerzustand über Redux dispatcht, um die Anwendung
* über das Problem zu informieren.
*
* @param {string} equipmentNumber - Die Ausrüstungsnummer des Teilnehmers, dessen Position geändert werden soll.
* @param {Array<number>} geoPosition - Ein Array mit zwei Elementen, wobei das erste Element die Breitengrad- und das zweite Element die Längengradkoordinate ist.
* @param {string} exerciseId - Die ID der Übung, zu der der Teilnehmer gehört.
* @param {function} dispatch - Die Redux Dispatch-Funktion, um den Fehlerzustand zu aktualisieren, falls ein Fehler auftritt.
*/
export function useSendPositionChange(equipmentNumber, geoPosition, exerciseId) {
const socket = new WebSocket('ws://localhost:6969/participantHandler');
socket.onopen = function open() {
var req = JSON.stringify({
type: 'changePosition',
excerciseId: parseInt(exerciseId),
participantData: { "participantId": parseInt(equipmentNumber), "positions": [{"lat" : geoPosition[0], "lng": geoPosition[1]}] }
})
socket.send(req);
socket.close()
};
}