Skip to content

Repository files navigation

SerialPortSense

Downloads Release License: MIT .NET Windows

Wieloportowy monitor portów szeregowych (COM) dla Windows. Aplikacja WPF / .NET 8, Windows 10 i 11. Uruchom SerialPortSense.exe z paczki Release lub dotnet run w katalogu repozytorium. Do zwykłej pracy z portami COM nie są wymagane uprawnienia administratora (chyba że dany port jest zablokowany systemowo przez inną aplikację).

Funkcje

  • Wiele portów jednocześnie — otwieraj i monitoruj kilka portów COM obok siebie w niezależnych panelach.
  • Układ dzielony — panele obok siebie (lewo/prawo) lub jeden pod drugim (góra/dół), z przesuwanym separatorem i przyciskiem zmiany orientacji.
  • Auto-skan — automatycznie wykrywa i otwiera nowe porty, które wykazują aktywność.
  • Tryb tekstowy i HEX — wysyłanie i odbiór danych w obu formatach.
  • Log ze znacznikami czasu — każdy wpis ma czas HH:mm:ss.fff i typ (Rx/Tx/Info/Error) z kolorowaniem.
  • Zaznaczanie i kopiowanie — wielokrotny wybór wpisów (Ctrl+klik / Shift+klik), Ctrl+C (kopiuj), Ctrl+A (zaznacz wszystko) oraz menu kontekstowe.
  • Przeciągnij, aby zmienić kolejność — reordynacja paneli przez przeciągnięcie nagłówka.

Ustawienia i funkcje

Port i parametry

  • Wybór portu: lista dostępnych portów COM z odświeżaniem.
  • Parametry transmisji: prędkość (baud), bity danych, parzystość, bity stopu, handshake.
    • Prędkości: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 250000.
    • Bity danych: 5, 6, 7, 8.
  • Edycja parametrów jest możliwa tylko przy zamkniętym porcie — po połączeniu sekcja ustawień jest zablokowana (i automatycznie zwijana).

Terminal (wysyłanie / odbiór)

  • Tryb tekstowy: dane buforowane do znaku nowej linii; obsługa końcówek \r\n.
  • Tryb HEX: odbiór w formacie AA BB CC; wysyłanie sparsowanego hexa (np. 0A FF).
  • Dodaj \r\n: opcjonalne doklejanie CR LF do wysyłanego tekstu.
  • Enter = wyślij w polu tekstowym.

Log

  • Kolorowanie wg typu: Rx — zielony, Tx — niebieski, Info — szary, Error — czerwony.
  • Auto-przewijanie do najnowszego wpisu (można wyłączyć).
  • Zapisz log do pliku .txt.
  • Wyczyść log.
  • Zaznaczanie i kopiowanie: wielokrotny wybór, Ctrl+C (kopiuj), Ctrl+A (zaznacz wszystko), przycisk Copy oraz menu kontekstowe (Kopiuj / Zaznacz wszystko / Wyczyść).

Auto-skan

  • Włączany przełącznikiem Auto Scan.
  • Skanowanie listy portów co 2 sekundy (SerialPort.GetPortNames()).
  • Wykryty port jest sondowany przy 115200 8N1 (timeout 1 s); port, który wykazuje aktywność, jest automatycznie otwierany w nowym panelu (z zachowaniem ustawień sondowania).
  • Porty już zarządzane przez aplikację są pomijane.

Techniczne

Komunikacja szeregowa (SerialPortManager)

  • Opakowanie System.IO.Ports.SerialPort (pakiet System.IO.Ports 8.0.0).
  • Odczyt w pętli w tle: próbkowanie BytesToRead co ~10 ms; ReadTimeout/WriteTimeout = 500 ms.
  • Zapis asynchroniczny przez BaseStream.WriteAsync + FlushAsync (tekst UTF-8 lub surowe bajty).
  • Obsługa błędów: rozłączenie (IOException), port zamknięty, odmowa dostępu, anulowanie. Przy błędzie odczytu port jest zamykany automatycznie.

Auto-skan (AutoScanService)

  • Iteracja po SerialPort.GetPortNames() co 2 s.
  • Sondowanie: otwarcie portu 115200 8N1, oczekiwanie do 1 s na dane (10 × 100 ms).
  • Przy wykryciu aktywności port jest przekazywany do panelu (nie jest zamykany).
  • Błędy sondowania są ignorowane.

Log (LogEntry)

  • Struktura wpisu: znacznik czasu, wiadomość, typ (Info/Error/Tx/Rx).
  • Format wyświetlania i kopiowania: [HH:mm:ss.fff] [Typ] Wiadomość.

Kompilacja i testy

Wymagania: Windows 10/11 oraz .NET 8 SDK.

dotnet restore
dotnet build
dotnet run

Publikacja (opcjonalnie, zależna od platformy):

dotnet publish -c Release -r win-x64

Build trafia do bin/ (Debug) i bin/Release (Release).

Dokumentacja Microsoft

Licencja

Projekt jest dostępny na zasadach otwartego oprogramowania na warunkach licencji MIT. Szczegóły znajdują się w dołączonym pliku LICENSE.

About

Multi-port serial (COM) monitor for Windows (WPF). · Monitor wielu portów szeregowych (COM) dla Windows (WPF).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages