Hi Joao,
On 2/14/19 11:35 AM, Joao Afonso via Tech-talk wrote:
> I have a string returned by a device, representing an array where each
> element is a pair <time, value>:
>
> - each pair is separated by "|": <timestamp>|<value>
> - each element of the array separated by ","
> - all values are floats
> - the timestamp increment may not be linear (that is why it needs to
> be recorded)
>
> Example
> 0.1000|0.1230000E+00,0.2000|0.4560000E+00,0.3000|0.7890000E+00, [...]
>
> Is it possible to parse this using stream device (into two waveform
> records)?
> Or do I have to use something more powerful such as asynDriver?
> I have seen several examples, but only with using simple type
> elements, not like this.
>
> As a followup, is it possible to do the inverse, merging two waveform
> records into a string?
Dirk has discussed parsing this directly using StreamDevice, but there
is another option which might be easier: Parse all of the elements into
a single waveform record, then use an aSub record to split that waveform
into two separate arrays. The aSub is a version of the subroutine record
type that has multiple input and output fields and links for which you
provide your own C function to perform any data processing that you need
to do.
You can pull in the array from the streamDevice waveform record with one
input link, split up the data inside your code and place it into a
couple of the output fields configured as double arrays. You could even
take the input as a string (char array) instead of having StreamDevice
parse it into doubles for you if performance is important.
This approach can also be used for your inverse requirement, merging
multiple input arrays into one output array, and in this case it might
be easier to generate a string (char array) directly.
HTH,
- Andrew
--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon
- Replies:
- RE: Stream device - parsing array of pairs of floats Joao Afonso via Tech-talk
- References:
- Stream device - parsing array of pairs of floats Joao Afonso via Tech-talk
- Navigate by Date:
- Prev:
areaDetector training at the EPICS Collaboration Meeting Mark Rivers via Tech-talk
- Next:
RE: How to detect AsynIPPort disconnect? Mark Rivers 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
2023
2024
- Navigate by Thread:
- Prev:
Re: Stream device - parsing array of pairs of floats Dirk Zimoch via Tech-talk
- Next:
RE: Stream device - parsing array of pairs of floats Joao Afonso 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
2023
2024
|