1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Handling Ethernet-to-Serial Connection when vendor SDK expects tty device |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | Maren Purves <m.purves at eaobservatory.org> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 8 Apr 2021 12:10:44 +0000 |
Hi Maren, > but we have always treated devices at the ends of serial lines as devices on serial lines, no matter what they go through, at least that is my understanding. Your original message said you were using tnetDev. That is the code that makes the serial ports on the terminal server available to EPICS. I could not find actual documentation on tnetDev but I did find this in a tech-talk message
from 2002 (https://epics.anl.gov/tech-talk/2002/msg00826.php) The tnetDevCreate routine creates pseudo-terminal devices for the ports on
the terminal server. This routine must run before iocInit, i.e. before any
of the simulation mode or disabling tools of EPICS is available. When
tnetDevCreate runs the terminal server port must exist and be configured
correctly or really bad things happen. My startup code looks like:
# Start serial drivers for terminal server
hostAdd "harpts", "192.168.3.41"
tnetDevCreate "/pty/0.", "harpts", 3003
tnetDevCreate "/pty/1.", "harpts", 3004
Note that tnetDevCreate is creating a new object in EPICS called
"/pty/0.” that is connected to terminal server whose IP name is “harpts” on port 3003. That is very similar to what is done in the current asyn software with this command: drvAsynIPPortConfigure("serial1", "164.54.160.163:4001", 0, 0, 0) That creates an asyn port driver called “serial1” that is connected to port 4001 on the terminal server whose IP address is
164.54.160.163. Note that the asyn command to connect to a real serial port is similar: drvAsynSerialPortConfigure("serial1", "/dev/ttyS0", 0, 0, 0) Both of these commands create asyn drivers called “serial1” can be used in the same way with EPICS device support, such as stream. > what I will attempt first is to talk to and read out a Lakeshore device connected to a console switch > but I don't see Jakub's case as all that different. Jakub’s case is quite different. He wants the ability to execute a Linux command like this: cp LakeshoreCommands.txt /dev/ttyr00 He wants the port on the terminal server to appear just like a real Linux serial port.
I don’t believe you could execute a command like that with your current terminal server and the Lakeshore device. You need the tnetDev software to make it available in EPICS. Mark From: Maren Purves <m.purves at eaobservatory.org> Hi Mark, but we have always treated devices at the ends of serial lines as devices on serial lines, no matter what they go through, at least that is my understanding. I'm planning on getting back to upgrading EPICS here at some point - and what I will attempt first is to talk to and read out a Lakeshore device connected to a console switch because
that's what we have in the lab. Just like in high energy physics our computers at the telescope are not right where our equipment is. This is even more the case for Linux boxes than for VME crates. Maybe I'm misunderstanding something here, but I don't see Jakub's case as all that different. Thanks, Maren On Wed, Apr 7, 2021 at 2:00 AM Mark Rivers <rivers at cars.uchicago.edu> wrote:
|