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  2019  2020  2021  2022  <20232024  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  <20232024 
<== Date ==> <== Thread ==>

Subject: Issue with streamdevice and I/o Intr
From: Florian Feldbauer via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 4 Jul 2023 09:05:47 +0200
Hey all,

we have some devices controlled via CAN bus.
Since CAN bus is based on the transmission of 1-8 bytes, I wrote an AsynPortDriver with an asynOctet interface as lower level driver.

I wanted to use StreamDevice as higher level driver defining the actual payload data that is tranmitted between our PC and the devices.

Sending and receiving messages in principal works, but I have an issue with I/O Interrupts and I don't know why. Setting the streamDebug variable to 1, I see the following output from StreamDevice:

2023/07/04 08:54:44.301618 can1 AsynDriverInterface.cc:951: AsynDriverInterface::readHandler(CAN1:TEST:R): ioAction=AsyncRead read(63 bytes, timeout=0 sec) returned status asynSuccess: received=4 bytes, eomReason=NONE, buffer="<07><00><00><ea>" 2023/07/04 08:54:44.301765 can1 AsynDriverInterface.cc:977: AsynDriverInterface::readHandler(CAN1:TEST:R): AsyncRead poll: received 4 of 63 bytes "<07><00><00><ea>" eomReason=NONE [data ignored] 2023/07/04 08:54:44.301889 can1 AsynDriverInterface.cc:1123: AsynDriverInterface::readHandler(CAN1:TEST:R) readMore=-1 bytesToRead=63 2023/07/04 08:54:44.302015 can1 AsynDriverInterface.cc:951: AsynDriverInterface::readHandler(CAN1:TEST:R): ioAction=AsyncRead read(63 bytes, timeout=0.5 sec) returned status asynTimeout: received=0 bytes, eomReason=NONE, buffer="" 2023/07/04 08:54:44.302140 can1 AsynDriverInterface.cc:1051: AsynDriverInterface::readHandler(CAN1:TEST:R): ioAction=AsyncRead, timeout [0.5 sec] after 0 of 63 bytes "" 2023/07/04 08:54:44.302262 can1 StreamCore.cc:963: StreamCore::readCallback(CAN1:TEST:R, StreamIoTimeout input="", size=0) 2023/07/04 08:54:44.302378 can1 StreamCore.cc:1015: StreamCore::readCallback(CAN1:TEST:R) inputBuffer="", size 0 2023/07/04 08:54:44.302490 can1 StreamCore.cc:1067: StreamCore::readCallback(CAN1:TEST:R) end flag received 2023/07/04 08:54:44.302605 can1 StreamCore.cc:1127: StreamCore::readCallback(CAN1:TEST:R) input line: "" 2023/07/04 08:54:44.302726 can1 StreamCore.cc:1151: StreamCore::readCallback(CAN1:TEST:R) async match failure: just restart 2023/07/04 08:54:44.302847 can1 AsynDriverInterface.cc:806: AsynDriverInterface::readRequest(CAN1:TEST:R, 500 msec reply, 500 msec read, expect 0 bytes, async=yes) 2023/07/04 08:54:44.302964 can1 AsynDriverInterface.cc:831: AsynDriverInterface::readRequest CAN1:TEST:R: queueRequest(..., priority=0, queueTimeout=-1 sec) = asynSuccess [async=true]

The readHandler reads the message from the bus but ignores it. According to the comments in the code it is ignored because the asyncReadHandler should also receive this message and handle the I/O interrupt, but it seems the Interrupt callback is not executed.
Any idea why the callbacks don't work?

I'm using
base 7.0.6.1
stream 2.8.24
asyn (current HEAD on master branch)

Cheers,
Florian


--
Ruhr-Universität Bochum
AG der Experimentalphysik I
Dr. Florian Feldbauer
NB 2/131 / Fach 125
Universitätsstr. 150
D-44801 Bochum

Office: NB 2/134
Phone:  (+49)234 / 32-23563
Fax:    (+49)234 / 32-14170
https://paluma.ruhr-uni-bochum.de


Replies:
Re: Issue with streamdevice and I/o Intr Zimoch Dirk via Tech-talk

Navigate by Date:
Prev: Re: Adding EPICS modules to conda-forge Simon Rose via Tech-talk
Next: Re: Issue with streamdevice and I/o Intr Zimoch Dirk 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  2019  2020  2021  2022  <20232024 
Navigate by Thread:
Prev: Attn: All @helmholz-berlin.de subscribers Andrew Johnson via Tech-talk
Next: Re: Issue with streamdevice and I/o Intr Zimoch Dirk 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  2019  2020  2021  2022  <20232024 
ANJ, 04 Jul 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·