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  2012  2013  2014  2015  <20162017  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  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: stream Device I/O error
From: "Gofron, Kazimierz" <[email protected]>
To: "[email protected]" <[email protected]>
Date: Thu, 28 Apr 2016 01:40:00 +0000
Hi,

For  i404 device, the gains need to be read in. There are 9 values in the response string of which 8 last values are gains:

15,9.4377e-01,9.3736e-01,9.3128e-01,9.4361e-01,1.0179e+00,1.0184e+00,1.0195e+00

------------------
For method C, discussed here: http://epics.web.psi.ch/software/streamdevice/doc/tipsandtricks.html
only up to 4 PVs can be read with streamDevice, otherwise "Forgot the leading '@' or confused INP with OUT" somewhat misleading message appears.

http://www.aps.anl.gov/epics/tech-talk/2015/msg00689.php

 int items = sscanf(ioLink->value.instio.string, "%s%s%s%n%i%n",
        filename, protocol, busname, &n, addr, &n);
    if (items <= 0)
    {
        error("%s: Empty I/O link. "
            "Forgot the leading '@' or confused INP with OUT ?\n",
            name());
        return S_dev_badInitRet;
    }

So this can not be done with method C
.protocol file like this would not work:
getKs {out "CALIB:GAI?"; in "CALIB:GAI?\10\06%*d,%e,%(\$1\$2.VAL)e,%(\$1\$3.VAL)e,%(\$1\$4.VAL)e,%(\$1\$5.VAL)e,%(\$1\$6.VAL)e,%(\$1\$7.VAL)e,%(\$1\$8.VAL)e"; InTerminator = CR LF; }
====================

-------------
Using  method B for reading multiple values, the protocol, and database look as follows:

getGc1 {out "CALIB:GAI?"; in "CALIB:GAI?\10\06%*d,%e,%*e,%*e,%*e,%*e,%*e,%*e,%*e"; InTerminator = CR LF; }
getGc2 {in "CALIB:GAI?\10\06%*d,%*e,%e,%*e,%*e,%*e,%*e,%*e,%*e"; InTerminator = CR LF; }
getGc3 {in "CALIB:GAI?\10\06%*d,%*e,%*e,%e,%*e,%*e,%*e,%*e,%*e"; InTerminator = CR LF; }
getGc4 {in "CALIB:GAI?\10\06%*d,%*e,%*e,%*e,%e,%*e,%*e,%*e,%*e"; InTerminator = CR LF; }
getGc5 {in "CALIB:GAI?\10\06%*d,%*e,%*e,%*e,%*e,%e,%*e,%*e,%*e"; InTerminator = CR LF; }
getGc6 {in "CALIB:GAI?\10\06%*d,%*e,%*e,%*e,%*e,%*e,%e,%*e,%*e"; InTerminator = CR LF; }
getGc7 {in "CALIB:GAI?\10\06%*d,%*e,%*e,%*e,%*e,%*e,%*e,%e,%*e"; InTerminator = CR LF; }
getGc8 {in "CALIB:GAI?\10\06%*d,%*e,%*e,%*e,%*e,%*e,%*e,%*e,%e"; InTerminator = CR LF; }
getGst {in "CALIB:GAI?\10\06%d,%*e,%*e,%*e,%*e,%*e,%*e,%*e,%*e"; InTerminator = CR LF; }
#

record(ai, "$(Sys)$(Dev)Gain:1-RB") {
  field(DESC, "COMPENSATION FACTOR A IN")
  field(DTYP, "stream")
  field(INP, "@I404.protocol getGc1 $(PORT) 0")
  field(PINI, "YES")
  field(SCAN, "Passive")
}

record(ai, "$(Sys)$(Dev)Gain:2-RB") {
  field(DTYP, "stream")
  field(DESC, "COMPENSATION FACTOR B IN")
  field(INP, "@I404.protocol getGc2 $(PORT) 0")
  field(SCAN, "I/O Intr")
}

record(ai, "$(Sys)$(Dev)Gain:3-RB") {
  field(DTYP, "stream")
  field(DESC, "COMPENSATION FACTOR C IN")
  field(INP, "@I404.protocol getGc3 $(PORT) 0")
  field(SCAN, "I/O Intr")
}
....
record(ai, "$(Sys)$(Dev)Gain:8-RB") {
  field(DTYP, "stream")
  field(DESC, "COMPENSATION FACTOR 3300pF D IN")
  field(INP, "@I404.protocol getGc8 $(PORT) 0")
  field(SCAN, "I/O Intr")
}

However, when IOC exits, a message shows:

exit
2016/04/27 21:31:06.523109 COM1 XF:10IDC-BI{i404:2}Gain:2-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523155 COM1 XF:10IDC-BI{i404:2}Gain:2-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523191 COM1 XF:10IDC-BI{i404:2}Gain:2-RB: Protocol aborted
2016/04/27 21:31:06.523220 COM1 XF:10IDC-BI{i404:2}Gain:3-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523236 COM1 XF:10IDC-BI{i404:2}Gain:3-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523252 COM1 XF:10IDC-BI{i404:2}Gain:3-RB: Protocol aborted
2016/04/27 21:31:06.523268 COM1 XF:10IDC-BI{i404:2}Gain:4-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523293 COM1 XF:10IDC-BI{i404:2}Gain:4-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523308 COM1 XF:10IDC-BI{i404:2}Gain:4-RB: Protocol aborted
2016/04/27 21:31:06.523333 COM1 XF:10IDC-BI{i404:2}Gain:5-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523349 COM1 XF:10IDC-BI{i404:2}Gain:5-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523364 COM1 XF:10IDC-BI{i404:2}Gain:5-RB: Protocol aborted
2016/04/27 21:31:06.523379 COM1 XF:10IDC-BI{i404:2}Gain:6-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523395 COM1 XF:10IDC-BI{i404:2}Gain:6-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523410 COM1 XF:10IDC-BI{i404:2}Gain:6-RB: Protocol aborted
2016/04/27 21:31:06.523425 COM1 XF:10IDC-BI{i404:2}Gain:7-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523441 COM1 XF:10IDC-BI{i404:2}Gain:7-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523455 COM1 XF:10IDC-BI{i404:2}Gain:7-RB: Protocol aborted
2016/04/27 21:31:06.523471 COM1 XF:10IDC-BI{i404:2}Gain:8-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523487 COM1 XF:10IDC-BI{i404:2}Gain:8-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523501 COM1 XF:10IDC-BI{i404:2}Gain:8-RB: Protocol aborted
2016/04/27 21:31:06.523518 COM1 XF:10IDC-BI{i404:2}Gain:Sts-RB: asynError in read: 10.10.2.64:4003 disconnected:
2016/04/27 21:31:06.523533 COM1 XF:10IDC-BI{i404:2}Gain:Sts-RB: I/O error after reading 0 bytes: ""
2016/04/27 21:31:06.523548 COM1 XF:10IDC-BI{i404:2}Gain:Sts-RB: Protocol aborted

Not sure if anyone else sees same behavior?

Kaz





Replies:
Re: stream Device I/O error Zhang Yuliang
Re: stream Device I/O error Dirk Zimoch

Navigate by Date:
Prev: Fix parallel build dependency rule Henrique Almeida
Next: Re: EPICS 3.14.12.3 Build Problems with the new Ubuntu 16.04 LTS Torsten Bögershausen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Fix parallel build dependency rule Henrique Almeida
Next: Re: stream Device I/O error Zhang Yuliang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 15 Jul 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·