Serial to TCP: Porovnání verzí
Z Poznámkový blok
(→Jednorázové spusštění) |
(→Jednorázové spusštění) |
||
| Řádka 15: | Řádka 15: | ||
socat TCP-LISTEN:5000,reuseaddr,fork /dev/ttyACM0,b38400 | socat TCP-LISTEN:5000,reuseaddr,fork /dev/ttyACM0,b38400 | ||
* TCP-LISTEN:5000 – vytvoří TCP server na portu 5000. | * TCP-LISTEN:5000 – vytvoří TCP server na portu 5000. | ||
| + | * reuseaddr - umožní okamžité znovuotevření portu nezávislé na TIME_WAIT. | ||
* fork – umožní připojení více klientů nebo opakované připojení. | * fork – umožní připojení více klientů nebo opakované připojení. | ||
* /dev/ttyACM0 – cesta k vašemu sériovému portu (upravte podle sebe). | * /dev/ttyACM0 – cesta k vašemu sériovému portu (upravte podle sebe). | ||
Aktuální verze z 15. 8. 2026, 11:09
Úvod
Pro možnost připojení na sériový port přes TCP je vhodné použít socat. Následně pak bude port dostupný přes TCP na nastaveném portě.
Instalace
sudo apt update sudo apt install socat
Jednorázové spusštění
Prvně potřebujeme zjistit, kde se požadovaný port nachází:
- /dev/ttyACM0 (nebo /dev/ttyUSB0)
- UART / GPIO: /dev/serial0 (nebo /dev/ttyAMA0)
Zjistěte také přenosovou rychlost (baud rate), např. 9600 nebo 115200.
Poté můžeme provést spusštění
socat TCP-LISTEN:5000,reuseaddr,fork /dev/ttyACM0,b38400
- TCP-LISTEN:5000 – vytvoří TCP server na portu 5000.
- reuseaddr - umožní okamžité znovuotevření portu nezávislé na TIME_WAIT.
- fork – umožní připojení více klientů nebo opakované připojení.
- /dev/ttyACM0 – cesta k vašemu sériovému portu (upravte podle sebe).
- b38400 – rychlost sériové sběrnice (upravte podle vašeho modulu).
(používané přenosové rychlosti: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Systemd
Pokud chceme, aby se spouštěl propojení vždy, vytvoříme systemd.
sudo nano /etc/systemd/system/serial-socat.service
[Unit] Description=Serial TCP Bridge via socat After=network.target [Service] ExecStart=/usr/bin/socat TCP-LISTEN:5000,reuseaddr,fork /dev/ttyACM0,b115200 Restart=always [Install] WantedBy=multi-user.target
Poté službu povolíme
sudo systemctl daemon-reload sudo systemctl enable --now gps-socat.service