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,18 @@
export function generateRandomPath(lowerRight, topLeft,currentPosition) {
const path = [
{
lat: currentPosition[0],
lng: currentPosition[1],
},
{
lat: Math.random() * (topLeft[0] - lowerRight[0]) + lowerRight[0],
lng: Math.random() * (topLeft[1] - lowerRight[1]) + lowerRight[1],
},
{
lat: Math.random() * (topLeft[0] - lowerRight[0]) + lowerRight[0],
lng: Math.random() * (topLeft[1] - lowerRight[1]) + lowerRight[1],
},
]
return path;
}
@@ -0,0 +1,13 @@
export function saveStateToLocalStorage(item, pathObject) {
localStorage.setItem(
item,
JSON.stringify(pathObject)
);
}
export function getStateFromLocalStorage(item) {
let data = localStorage.getItem(item);
if (data !== undefined) {
console.log(data);
}
};
@@ -0,0 +1,43 @@
import { useEffect } from 'react';
import { useMap } from 'react-leaflet';
import { useDispatch, useSelector } from 'react-redux';
import { useSetPosition as SetParticipantPosition, deselect } from '../store/participantSlice';
export default function MapEvents({ setPosition, mapPosition, setClickPosition }) {
const dispatch = useDispatch()
const map = useMap();
const currentParticipant = useSelector((state) => state.participants.currentParticipant)
// Set the positions
useEffect(() => {
if (map) {
const onMove = () => {
setPosition(map.getCenter());
};
const onClick = (e) => {
if (currentParticipant === "") {
return
}
setClickPosition(e.latlng);
dispatch(SetParticipantPosition({ equipmentNumber: currentParticipant.equipmentNumber, newPosition: [e.latlng.lat, e.latlng.lng], exerciseId: currentParticipant.exerciseId }))
dispatch(deselect({ currentParticipant: "" }))
};
map.on('move', onMove);
map.on('click', onClick);
return () => {
map.off('move', onMove);
map.off('click', onClick);
};
}
}, [dispatch, map, mapPosition, setClickPosition, setPosition, currentParticipant]);
return null;
}
@@ -0,0 +1,3 @@
export function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
@@ -0,0 +1,63 @@
import { useSetPosition as setPosition, walkingState } from "../store/participantSlice";
import { useDispatch } from "react-redux";
import { sleep } from "./sleep";
export function useCalculation() {
const dispatch = useDispatch();
return async function (latLngs, equipmentNumber, participant, walkMode) {
var speed = 0.00003;
var currentPosition = participant.currentPosition;
if (latLngs.length === 0) {
return;
}
while (localStorage.getItem(equipmentNumber.toString()) === "false") {
if (walkMode === "Patrouille") {
for (var i = 0; i < latLngs.length; i++) {
currentPosition = await moveToTarget(latLngs[i], currentPosition, speed, dispatch, equipmentNumber);
}
// Rückwärts durch den Pfad
for (i = latLngs.length - 1; i >= 0; i--) {
currentPosition = await moveToTarget(latLngs[i], currentPosition, speed, dispatch, equipmentNumber);
}
} else if (walkMode === "OTUP") {
for (i = 0; i < latLngs.length; i++) {
currentPosition = await moveToTarget(latLngs[i], currentPosition, speed, dispatch, equipmentNumber);
}
break;
} else if (walkMode === "Hold") {
break;
}
}
dispatch(walkingState({ equipmentNumber: equipmentNumber, isWalking: false, walkingMode: " " }))
}
}
async function moveToTarget(target, currentPosition, speed, dispatch, equipmentNumber) {
var targetLat = target.lat;
var targetLng = target.lng;
while (localStorage.getItem(equipmentNumber.toString()) === "false") {
var diffLat = targetLat - currentPosition[0];
var diffLng = targetLng - currentPosition[1];
var distance = Math.sqrt(diffLat * diffLat + diffLng * diffLng);
if (distance < speed) {
currentPosition = [targetLat, targetLng];
break;
}
// Berechne den Anteil der Bewegung in Richtung des Ziels
var ratio = speed / distance;
var moveLat = diffLat * ratio;
var moveLng = diffLng * ratio;
// Aktualisiere die aktuelle Position
currentPosition = [currentPosition[0] + moveLat, currentPosition[1] + moveLng];
dispatch(setPosition({ equipmentNumber: equipmentNumber, newPosition: currentPosition, exerciseId: 42 }));
// Warte eine Sekunde bevor die Position erneut aktualisiert wird
await sleep(300);
}
return currentPosition;
}