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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Formatting StreamDevice input |
From: | Dirk Zimoch <[email protected]> |
To: | [email protected] |
Date: | Thu, 24 Jul 2014 11:42:14 +0200 |
Hello Elmer On 21.07.2014 20:36, Elmer Pensack wrote:
I have a timer device that provides data over a RS232 serial interface. I’m using StreamDevice to grab the data and publish as PVs. The data contains several times. All the times come in as an ASCII string containing days, hours, minutes and seconds and I'm writing them to stringin PVs. However, the data does not contain any separators, so the data coming in looks something like 000024015 (i.e. 000 days, 02 hours, 40 minutes, 15 seconds). I know the ‘in’ command needs to match the incoming data exactly or else it is discarded, but is there a way to add formatting to the PV that is NOT in the data? All I want to do is add a ‘:’ separator between each part, so the PV value will be like 000:02:40:15. Any suggestions? Thanks!
At the moment, it is not possible to insert additional characters while parsing a string. But this may be an interesting idea. You can use "%T(%j%H%M%S)" as suggested by Thomas to convert it to a double value (seconds) or to an EPICS time stamp with "%(.TIME)T(%j%H%M%S)", but not to a different string.
I suggest that you have a look at the scalcout record in SynApps. http://www.aps.anl.gov/bcda/synApps/calc/R2-4/sCalcoutRecord.html That can do string manipulation. Dirk