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

Subject: Re: Problem with streamDevice and I/O Intr
From: Dirk Zimoch <[email protected]>
To: Florian Feldbauer <[email protected]>
Cc: [email protected]
Date: Thu, 12 Aug 2010 11:27:24 +0200
Hi Florian,

I have to set up a test system to find out what's wrong. That might take a while. I guess your USBCAN mapps to a /dev/tty... on your system (like a standard sreial device?).

At which rate do you get these messages?

Dirk

Florian Feldbauer wrote:
Dear Dirk,

The device is custom hardware. The CAN messages come from a AT90CAN64 microcontroller with a PCA82C250 CAN transceiver.
http://www.atmel.com/dyn/resources/prod_documents/doc7679.pdf


This mircocontroller send one message after another.
They all look like "t6804NODDDDCH\r" where NO is the channelnumber (0-63), DDDD the appropriate 14-bit conversion result from the ADC and CH
an 8-bit checksum. All coded in hexadecimal
The baudrate of the CAN bus is set to 1 Mbaud.


Florian

On Tue, 10 Aug 2010, Dirk Zimoch wrote:

Hi Florian,

Looks like a race condition. I have to look in the driver. I fear there is nothing you can do about it.

How does the communication work? You say you get 64 messages in series. What do they look like? All like "t68043F34AAA1\r" (only difference in $(no))? That is the timing of these messages? Do they all come in one burst? Do you have a link to the device documentation?

Dirk

Florian Feldbauer wrote:
Hello all,

I ran into a problem when reading from a serial device using I/O Intr
processing with streamDevice. I receive 64 messages in series and have
one record for each message.
Now and then  I get the error message from epics:

timerQueue INTERNAL ERROR (PANDA:FEMC:PROTO192:THMP:680:CHK:00): timerExpired() unexpected ioAction None

Any idea how to fix this problem?

This is the db:
record (scalcout, "THMP:$(ID):CHK:$(no)")
{
  field (DTYP, "stream")
  field (SCAN, "I/O Intr")
  field (CALC, "((K XOR L) XOR C)==E?(K<<8)+L:LL")
  field (OUT,  "@THMP.proto getMsg($(no)) USBCAN1")
  field (INPC, "$(no)")
  field (INLL, "INV CHK")
}

This is the protocol:
Terminator = CR;
getMsg{
  in "t6804\${2}%(K)2X%(L)2X%(E)2X";
}

This is an example string, which is sent from the device:
t68043F34AAA1\r

Best regards
Florian





Replies:
Re: Problem with streamDevice and I/O Intr Florian Feldbauer
References:
Problem with streamDevice and I/O Intr Florian Feldbauer
Re: Problem with streamDevice and I/O Intr Dirk Zimoch
Re: Problem with streamDevice and I/O Intr Florian Feldbauer

Navigate by Date:
Prev: Re: devIocStats 3.1.3 released Benjamin Franksen
Next: Re: Problem with streamDevice and I/O Intr Florian Feldbauer
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Problem with streamDevice and I/O Intr Florian Feldbauer
Next: Re: Problem with streamDevice and I/O Intr Florian Feldbauer
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·