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  2016  2017  2018  <20192020  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  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Problems with StreamDevice
From: Mark Rivers via Tech-talk <[email protected]>
To: "'[email protected]'" <[email protected]>, 'Dirk Zimoch' <[email protected]>
Date: Fri, 15 Feb 2019 18:17:12 +0000

I am running StreamDevice 2.8.8.  I am having 3 issues.  I don’t know if these are bugs or features, because I cannot find the release notes for StreamDevice.  Where are they located?

 

1)      StreamDevice seems to set asynTraceMask to 0 for the port.

 

This is my startup script.

**************************

< envPaths

# Tell EPICS all about the record types, device-support modules, drivers,

# etc. in this build from CARS

dbLoadDatabase("../../dbd/CARSLinux.dbd")

CARSLinux_registerRecordDeviceDriver(pdbbase)

 

drvAsynIPPortConfigure("PORT","gse-tetramm2:10001",0,0,0)

asynOctetSetInputEos(PORT, 0, "\r\n")

asynOctetSetOutputEos(PORT, 0, "\r")

asynSetTraceIOMask(PORT, 0, 2)

asynSetTraceMask(PORT, 0, 9)

asynSetOption(PORT, 0, "disconnectOnReadTimeout", "Y")

 

dbLoadRecords("stream2.db", "P=13TEST:, R=R:, PORT=PORT")

dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=13TEST:, R=asyn1, PORT=PORT, ADDR=0, IMAX=80, OMAX=80")

 

iocInit

**************************

 

Note that it sets the trace mask to 9 with asynSetTraceMask.  However, when I boot and look at the trace mask with asynReport it is 0.  The TraceIOMask is 2 like I set it, but the traceMask is 0.

 

**************************

epics> asynReport 10

PORT multiDevice:No canBlock:Yes autoConnect:Yes

    enabled:Yes connected:Yes numberConnects 1

    nDevices 0 nQueued 0 blocked:No

    asynManagerLock:No synchronousLock:No

    exceptionActive:No exceptionUsers 5 exceptionNotifys 0

    traceMask:0x0 traceIOMask:0x2 traceInfoMask:0x1

    interposeInterfaceList

        asynOctet pinterface 0x1da89e0 drvPvt 0x3624870

    interfaceList

        asynCommon pinterface 0x1ce6770 drvPvt 0x3620c10

        asynOption pinterface 0x1ce6790 drvPvt 0x3620c10

        asynOctet pinterface 0x3620d30 drvPvt 0x3620c10

    Port gse-tetramm2:10001: Connected

                    fd: 5

    Characters written: 152

       Characters read: 208

**************************

 

If I uncomment the line that loads the StreamDevice records then asynTrace is set correctly when I boot.

#dbLoadRecords("stream2.db", "P=13TEST:, R=R:, PORT=PORT")

 

**************************

epics> asynReport 10

PORT multiDevice:No canBlock:Yes autoConnect:Yes

    enabled:Yes connected:Yes numberConnects 1

    nDevices 0 nQueued 0 blocked:No

    asynManagerLock:No synchronousLock:No

    exceptionActive:No exceptionUsers 2 exceptionNotifys 0

    traceMask:0x9 traceIOMask:0x2 traceInfoMask:0x1

    interposeInterfaceList

        asynOctet pinterface 0x1da89e0 drvPvt 0x2c6b830

    interfaceList

        asynCommon pinterface 0x1ce6770 drvPvt 0x2c67bd0

        asynOption pinterface 0x1ce6790 drvPvt 0x2c67bd0

        asynOctet pinterface 0x2c67cf0 drvPvt 0x2c67bd0

    Port gse-tetramm2:10001: Connected

                    fd: 6

    Characters written: 0

       Characters read: 0

**************************

 

If I put the asynSetTraceMask after iocInit it works.  Is this indeed something StreamDevice is doing?

 

2)      If I have an error in my protocol file I am not seeing any error messages.  I used to see them in previous versions.

 

This is what the protocol should be, command is CHN.

 

readChans {

   out "CHN:?";

   in "CHN:%d";

}

 

If I break the protocol by changing CHN to CHAN

readChans {

   out "CHAN:?";

   in "CHAN:%d";

}

 

then this is what I see with asynTrace on.  Note that the CHAN:? command returned NAK:00 which the protocol won’t parse.

 

2019/02/15 12:07:15.074 gse-tetramm2:10001 write 7

CHAN:?\r

2019/02/15 12:07:15.075 gse-tetramm2:10001 read 8

NAK:00\r\n

2019/02/15 12:07:15.077 gse-tetramm2:10001 write 6

HVV:?\r

2019/02/15 12:07:15.078 gse-tetramm2:10001 read 10

HVV:0.00\r\n

 

The record is indeed in invalid alarm but I don’t see any error messages from StreamDevice (STAT=CALC, SEVR=INVALID).  Is this new behavior to see no errors?

 

epics> dbpr 13TEST:R:Chans 3

ACKS: INVALID       ACKT: YES           ADEL: 0             AFTC: 0

AFVL: 0             ALST: 0             AOFF: 0             ASG :

ASLO: 1             BKPT: 00            DESC:               DISA: 0

DISP: 0             DISS: NO_ALARM      DISV: 1             DTYP: stream

EGU :               EGUF: 0             EGUL: 0             EOFF: 0

ESLO: 1             EVNT:               FLNK: CONSTANT      HHSV: NO_ALARM

HIGH: 0             HIHI: 0             HOPR: 0             HSV : NO_ALARM

HYST: 0             INIT: 0

INP : INST_IO @stream2.proto readChans PORT 0 0             LALM: 0

LBRK: 0             LCNT: 0             LINR: NO CONVERSION LLSV: NO_ALARM

LOLO: 0             LOPR: 0             LOW : 0             LSV : NO_ALARM

MDEL: 0             MLST: 0             NAME: 13TEST:R:Chans

NSEV: NO_ALARM      NSTA: NO_ALARM      ORAW: 0             PACT: 0

PHAS: 0             PINI: NO            PREC: 0             PRIO: LOW

PROC: 0             PUTF: 0             ROFF: 0             RPRO: 0

RVAL: 0             SCAN: 1 second      SDIS: CONSTANT      SDLY: -1

SEVR: INVALID       SIML: CONSTANT      SIMM: NO            SIMS: NO_ALARM

SIOL: CONSTANT      SMOO: 0             SSCN: <nil>         STAT: CALC

SVAL: 0             TIME: 2019-02-15 12:10:16.524791659     TPRO: 0

TSE : 0             TSEL: CONSTANT      UDF : 1             UDFS: INVALID

VAL : 0

 

 

3)      If I have a communications error I don’t see any error messages.  I used to see them in previous versions.  This is what I see when I disconnect the cable to my device.

 

2019/02/15 12:12:18.494 gse-tetramm2:10001 read 10

HVV:0.00\r\n

2019/02/15 12:12:19.488 gse-tetramm2:10001 write 7  CABLE DISCONNECTED

TEMP:?\r

2019/02/15 12:12:36.488 gse-tetramm2:10001 write 7

TEMP:?\r

2019/02/15 12:12:36.489 gse-tetramm2:10001 read 9

 

There are no error messages from StreamDevice.  This is with disconnectOnReadTimeout=Y, but there are no messages with that not set either.

 

Thanks,

Mark

 


Replies:
Re: Problems with StreamDevice Zimoch Dirk (PSI) via Tech-talk

Navigate by Date:
Prev: RE: How to detect AsynIPPort disconnect? Mark Rivers via Tech-talk
Next: Re: Problems with StreamDevice Zimoch Dirk (PSI) via Tech-talk
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  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: areaDetector training at the EPICS Collaboration Meeting Mark Rivers via Tech-talk
Next: Re: Problems with StreamDevice Zimoch Dirk (PSI) via Tech-talk
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  <20192020  2021  2022  2023  2024 
ANJ, 12 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·