Fórum Root.cz

Hlavní témata => Software => Téma založeno: BigSandy 07. 02. 2026, 17:06:38

Název: Virtuální port pomocí socat na RPi
Přispěvatel: BigSandy 07. 02. 2026, 17:06:38
Hojte hošani.
Jsem to zkoušel přes claude.ai a zjistil, že bez Vás to nepůjde.
Mam můj program a arduino ID, které používám bud jeden nebo druhý na ttyUSB0.
Tento USB port bych chtěl zachovat a vytvořit virtuální, aby také komunikoval v obou směrech.

AL toho vymyslel spoustu ale bud se sekal  ttyUSB0 nebo fungoval ale nevytvářel se ten virtualni.
Pomůže někdo?
Děkuji.

Kód: [Vybrat]
[Unit]
Description=Serial Port Spy
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/socat -d -d /dev/ttyUSB0,raw,echo=0,b9600,clocal,cread,cs8,-parenb,-cstopb,-crtscts PTY,link=/tmp/vserial,raw,echo=0,mode=666,b9600,clocal,cread,cs8,-parenb,-cstopb,-crtscts
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target


Název: Re:socat na raspi
Přispěvatel: BigSandy 07. 02. 2026, 17:20:47
Třeba toto.
Virtualni port vserial jede furt ale USB0 zachyti 10 dat a zamrzne.

Kód: [Vybrat]
[Unit]
Description=Serial Port Spy
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/socat /dev/ttyUSB0,b9600,raw,echo=0 PTY,link=/tmp/vserial,raw,echo=0,mode=666
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
Název: Re:Virtuální port pomocí socat na RPi
Přispěvatel: tecka 08. 02. 2026, 05:27:16
Myslím, že ty parametry chceš opačně: socat pty... tty.... A pak bych k pty přidal volbu wait-slave, aby se ten port neblokoval, když k němu není nikdo připojený.

Ale socat neumí vytvořit port. Dostaneš "rouru", přes kterou se budou přelévat data mezi pseudo-tty a serial-tty. To pty nebude mít některé vlastnosti specifické pro sériák, což většinou nevadí, ale celkově se změny nastavení pty neaplikují na tty, což často vadí. Záleží na tom, co konkrétní program potřebuje.

Zřejmě ti jde jen o logování přenášených dat a existuje projekt "interceptty". Je hodně starý, ale v některých distrech pořád je, tak asi funguje. Ale netuším, jestli i na RPi.
Název: Re:Virtuální port pomocí socat na RPi
Přispěvatel: tecka 08. 02. 2026, 05:41:42
Tak jsem koukl na zdroják toho interceptty a to je úplně k ničemu :) Koukni se přes strace na čem ti ten program failuje a to pak řeš.
Název: Re:Virtuální port pomocí socat na RPi
Přispěvatel: BigSandy 08. 02. 2026, 08:48:44
Zas tak dobrý nejsem ale vyzkoušel jsem spoustu možnosti a furt stejný problem.
USB0 funguje, dokud nespustim virtual port  cat /tmp/vserial
Když ho shodim, tak zas začne USB0 fungovat.

Jde vubec docilit toho co chci?
Děkuji.

Název: Re:Virtuální port pomocí socat na RPi
Přispěvatel: RDa 08. 02. 2026, 16:34:09
Jsem nepochopil co jako chcete udelat - snazite se o "rozdvojku" ? jeden smer duplikovany a druhy smer zmixovany?
Název: Re:Virtuální port pomocí socat na RPi
Přispěvatel: BigSandy 08. 02. 2026, 16:45:45
Na USB0 port je připojené arduino, které komunikuje oběma směry.
Tento port chci zachovat a vytvořit virtuální, který by také fungoval oběma směry.

Jsem zkoušel i ser2net. A stejný problém.
Když se tpc připojí na usb0, tak usb0 spadne.

Potřebuji aby na jednom fungovalo arduino a na druhem Node Red.

Název: Re:Virtuální port pomocí socat na RPi
Přispěvatel: RDa 08. 02. 2026, 18:55:32
U nekterych arduin se treba reset prenasi zmenou nastaveni baudrate na 1200 ... takze to pouziva seriovy port velice specialne.

Si radeji ty tooly nainstrumentujte aby bezel vzdy jenom jeden. Nejjednodussi cesta je, ze pri startu toolu to killne vsechny ostatni "konkurence".