EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  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  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: ASYN Communication through windows serial port (via USB)
From: Mark Rivers <[email protected]>
To: "S. Stein" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Sun, 4 Mar 2012 22:52:56 +0000
Josh,

If you look at the code in drvAsynSerialPortWin32::setOption you'll see that it first does GetCommConfig() to read the existing settings, modifies one parameter, and then calls SetCommConfig.

We need to figure out if the error is actually being returned in GetCommConfig or in SetCommConfig. There was previously a typo in the error messages in setOption, so it was printing "GetCommConfig" in either case. Please get the latest version from the SVN repository (committed today):

https://svn.aps.anl.gov/epics/asyn/trunk/asyn/drvAsynSerial

Or apply this patch from release R4-18:

Index: drvAsynSerialPortWin32.c
===================================================================
--- drvAsynSerialPortWin32.c    (revision 1900)
+++ drvAsynSerialPortWin32.c    (working copy)
@@ -302,7 +302,7 @@
     if (ret == 0) {
         error = GetLastError();
         epicsSnprintf(pasynUser->errorMessage,pasynUser->errorMessageSize,
-                            "%s error calling GetCommConfig %d", tty->serialDeviceName, error);
+                            "%s error calling SetCommConfig %d", tty->serialDeviceName, error);
         return asynError;
     }
     return asynSuccess;

Then we can know which function is actually returning the error.

Mark


________________________________________
From: S. Stein [[email protected]]
Sent: Sunday, March 04, 2012 3:35 PM
To: Mark Rivers
Cc: [email protected]
Subject: Re: ASYN Communication through windows serial port (via USB)

Any attempt to change a parameter does indeed result with the same error.

Is there some way to request a list of the parameters which the device understands?


----- Original Message -----
From: "Mark Rivers" <[email protected]>
To: "Josh Stein" <[email protected]>, [email protected]
Sent: Sunday, March 4, 2012 12:03:58 PM
Subject: RE: ASYN Communication through windows serial port (via USB)

Josh,

It is possible that the problem is not actually with the baud rate setting, but with some other parameter. The way that the Windows SetCommConfig function works is that a large structure that defines all of the serial port parameters is passed to SetCommConfig. It is possible that the default value of some other parameter is set incorrectly for this port, so when you change the baud rate it is actually the value of some other parameter that is causing the error.

What happens if you try to change the data bits, stop bits, parity, etc. first? Do you get the same error for them?

Mark

________________________________________
From: [email protected] [[email protected]] on behalf of Josh Stein [[email protected]]
Sent: Friday, March 02, 2012 4:03 PM
To: [email protected]
Subject: ASYN Communication through windows serial port (via USB)

Boy how I hate bringing this stuff up on a Friday...

I have a need to communicate to a serial based instrument off of a
windows laptop. I have the latest ASYN build, which supports COM port
mapping for windows. Like any 'modern' laptop, this machine does not
have any built in serial connections, so I have a USB adapter which maps
COM3 to a serial port. I can talk to the device via a terminal program
on machine.

I execute the following on a softIOC running on the windows box:

drvAsynSerialPortConfigure("L0","COM3",0,0,0,0)
asynSetOption("L0",0,"baud","115200")

setOption failed COM3 error calling GetCommConfig 87


Note the setOption failed error; this is (apparently) preventing me from
setting the baud rate to 115.2K (which, of course, is what the external
device needs). (As an aside, I contacted Mark Rivers and he pointed out
the typo in the error message - it should read: "...error calling
SetCommConfig...")

I know this adapter handles that baud rate, as I can set it via a
terminal program and communicate to my external device.

Any ideas?







Replies:
Re: ASYN Communication through windows serial port (via USB) Josh Stein
References:
RE: ASYN Communication through windows serial port (via USB) Mark Rivers
Re: ASYN Communication through windows serial port (via USB) S. Stein

Navigate by Date:
Prev: Re: ASYN Communication through windows serial port (via USB) S. Stein
Next: RE: asyn driver on Windows XP Pavel Masloff
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: ASYN Communication through windows serial port (via USB) S. Stein
Next: Re: ASYN Communication through windows serial port (via USB) Josh Stein
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·