TIP: Click on subject to list as thread! ANSI
echo: rberrypi
to: ALL
from: =?UTF-8?Q?BJ=C3=B6RN_LUND
date: 2020-12-30 18:55:00
subject: Re: How to realize a `ser

Den 2020-12-30 kl. 16:19, skrev RobertoA:
> The Raspberry4 board has 6 native uart
> How to proceed?

with virtual ports you need commercial drivers.
I once did a mapping tcp-port  serail port in tcl
ran in a _very_ busy warehouse translating stacker crane protcol (3964rk512)
it ran 12 serial port on an XP at that time (now - new plcs with tcp/ip
are installed)

it basically looked like



proc accept {sock addr port} {
   dbg "[gettime] -> start accept from $addr"

   if { ! [string equal $addr $::client_ip]} {
     dbg "[gettime] -> wrong client, got '$addr' but accepts only from
'$::client_ip'"
     catch {close $::ss}
     catch {close $sock}
     set ::done 1        ;# signal to main loop to let go
     return
   }

   set ::my_sock $sock
   set ::my_com [open $::tty {RDWR}]

   # Read channels w/o buffering and in binary mode
   fconfigure $::my_sock               -buffering none -translation binary
   fconfigure $::my_com  -mode $::mode -buffering none -translation binary

   # Setup handler for communication on the channels
   fileevent $::my_sock readable [list pass_through $::my_sock $::my_com]
   fileevent $::my_com  readable [list pass_through $::my_com $::my_sock]

   # make sure noone else connects while a session in running
   catch {close $::ss}
   dbg "[gettime] -> stop accept"
}



  loop to reopen the listening socket when connection down
while {1} {
   dbg "[gettime] -> Start listening"
   set ss [socket -server accept $port]
   vwait done ; # wait until the connection is closed
   # clean up after session
   dbg "[gettime] -> Close this session"
   catch {close $::my_com}
   catch {close $::my_sock}
}

there where som config files and some whitelist involved as well, but
above is the essence of it



its usefull, if you connect the pi with your serial device, and the
conect the PC to the pi via a simple socket.

--
Björn

--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | FidoUsenet Gateway (3:770/3)

SOURCE: echomail via QWK@docsplace.org

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.