From 21d622e0403706d675ce0f1dd39ccdfe6c274509 Mon Sep 17 00:00:00 2001 From: Dieter Lang Date: Fri, 21 Aug 2026 14:28:54 +0200 Subject: [PATCH] =?UTF-8?q?Windows-Testskripte=20f=C3=BCr=20Rotorverbindun?= =?UTF-8?q?g=20erg=C3=A4nzen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/client.json | 4 -- scripts/test-rotor-com10.bat | 12 +++++ scripts/test-rotor-com10.ps1 | 80 +++++++++++++++++++++++++++++++++ scripts/test-windows-client.bat | 18 ++++++++ 4 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 scripts/test-rotor-com10.bat create mode 100644 scripts/test-rotor-com10.ps1 create mode 100644 scripts/test-windows-client.bat diff --git a/configs/client.json b/configs/client.json index 0ab54c6..275238c 100644 --- a/configs/client.json +++ b/configs/client.json @@ -11,10 +11,6 @@ { "port": "COM100", "remote_device": "rotor" - }, - { - "port": "COM101", - "remote_device": "radio" } ] diff --git a/scripts/test-rotor-com10.bat b/scripts/test-rotor-com10.bat new file mode 100644 index 0000000..b65b670 --- /dev/null +++ b/scripts/test-rotor-com10.bat @@ -0,0 +1,12 @@ +@echo off +cd /d "%~dp0.." + +echo ========================================== +echo rs2322tcp COM10 Testsequenz +echo ========================================== +echo. + +powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\scripts\test-rotor-com10.ps1" + +echo. +pause \ No newline at end of file diff --git a/scripts/test-rotor-com10.ps1 b/scripts/test-rotor-com10.ps1 new file mode 100644 index 0000000..f1975d1 --- /dev/null +++ b/scripts/test-rotor-com10.ps1 @@ -0,0 +1,80 @@ +$port = New-Object System.IO.Ports.SerialPort COM10,600,None,8,one + +try { + $port.Open() + + [byte[]]$request = 0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20 + + $port.Write($request, 0, $request.Length) + + $response = New-Object System.Collections.Generic.List[byte] + + $timeout = [DateTime]::UtcNow.AddSeconds(2) + + while ([DateTime]::UtcNow -lt $timeout) { + + while ($port.BytesToRead -gt 0) { + $buffer = New-Object byte[] $port.BytesToRead + $count = $port.Read($buffer, 0, $buffer.Length) + + for ($i = 0; $i -lt $count; $i++) { + $response.Add($buffer[$i]) + } + } + + # Auf das Startbyte 57 synchronisieren. + $start = $response.IndexOf([byte]0x57) + + if ($start -ge 0 -and ($response.Count - $start) -ge 12) { + $response = [System.Collections.Generic.List[byte]]( + $response.GetRange($start, 12) + ) + break + } + + Start-Sleep -Milliseconds 20 + } + + if ($response.Count -eq 12) { + $actual = ($response | + ForEach-Object { "{0:X2}" -f $_ }) -join " " + + $expected = "57 07 01 06 00 01 03 06 02 00 01 20" + + Write-Host "Bytes empfangen: $($response.Count)" + Write-Host "Antwort: $actual" + + if ($actual -eq $expected) { + Write-Host "TEST ERFOLGREICH" + } + else { + Write-Host "TEST FEHLGESCHLAGEN" + Write-Host "Erwartet: $expected" + } + } + else { + Write-Host "Bytes empfangen: $($response.Count)" + + if ($response.Count -gt 0) { + $actual = ($response | + ForEach-Object { "{0:X2}" -f $_ }) -join " " + Write-Host "Antwort: $actual" + } + else { + Write-Host "Keine Antwort" + } + + Write-Host "TEST FEHLGESCHLAGEN - keine vollstaendige Antwort gefunden" + } +} +finally { + if ($port.IsOpen) { + $port.Close() + } + + $port.Dispose() + $port = $null + + [GC]::Collect() + [GC]::WaitForPendingFinalizers() +} diff --git a/scripts/test-windows-client.bat b/scripts/test-windows-client.bat new file mode 100644 index 0000000..4e76b80 --- /dev/null +++ b/scripts/test-windows-client.bat @@ -0,0 +1,18 @@ +@echo off +cd /d "%~dp0.." + +echo ========================================== +echo rs2322tcp Windows Client Test +echo ========================================== +echo. +echo Starte technischen Client... +echo COM100 wird vom Client verwendet. +echo COM10 wird fuer die Testsequenz verwendet. +echo. +echo Zum Beenden: Ctrl+C +echo. +go run .\cmd\rs2322tcp-client-test + +echo. +echo Client beendet. +pause