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 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 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Creating an error counter |
From: | "Mooney, Tim M." <[email protected]> |
To: | "Flewellen-Gore, Andrew (US)" <[email protected]>, "[email protected]" <[email protected]> |
Date: | Thu, 20 Jul 2017 17:34:30 +0000 |
Hi Andrew,
That calc record does increment on my system. Does it increment for you if you process it manually? Can you verify that the forward link actually is causing the calc record to process, by setting
$(P):$(R):DEBUG:COUNTER.TPRO to 1, and watching the IOC console?
Tim Mooney ([email protected]) (630)252-5417
Beamline Controls Group (www.aps.anl.gov) Advanced Photon Source, Argonne National Lab From: [email protected] <[email protected]> on behalf of Flewellen-Gore, Andrew (US) <[email protected]>
Sent: Thursday, July 20, 2017 11:49:07 AM To: [email protected] Subject: Creating an error counter Hello, and thanks for reading, I’m having trouble keeping a counter for the number of errors coming in from an electron microscope (SEM). I’m using the Stream device driver to listen to incoming messages from the SEM, and when a message matches a certain format that
identifies it as an error message, the PV processes and stores the new error message, overwriting the last. When this happens I would like to have a second record process and increment a counter, so that I can keep track of the number of error messages coming
in. My current setup gets the most recent error message correctly, but does not correctly increment the counter (the counter stays at zero). Here is the relevant code from the record definition file. record(waveform,$(P):$(R):DEBUG:LISTEN) { field(DESC,"Holds last SEM error") field(DTYP,"stream") field(NELM,"1000") field(FTVL,"CHAR") field(SCAN,"I/O Intr") field(FLNK,"$(P):$(R):DEBUG:COUNTER") field(INP, "@devhardware.proto debugListen() L5 0") } record(calc,$(P):$(R):DEBUG:COUNTER) { field(DESC,"Counter of # of errors") field(SCAN,"Passive") field(INPA,"1") field(CALC,"VAL+A") } When the first record processes due to an interrupt on a received error message, it is supposed to forward-link the calc record to process, causing an increment to the counter. Any help or insight is appreciated. -Andrew |