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

Subject: Re: 3.14 v.s. 3.15 vs. v4
From: Andrew Johnson <[email protected]>
To: "Boyes, Matthew" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Wed, 7 Nov 2012 10:53:32 -0500
Hi Matt,

On 2012-11-06 Boyes, Matthew wrote:
> Thank you for posting your demo db from your EPICS 3.15 talk. Is there more
> documentation regarding the Server-side per channel filtering? I haven't
> been able to find much documentation about it in the 3.15 Release Notes.

That's one of the reasons the 3.15.0.x releases are not meant for operational 
use, because we haven't had the chance to write the documentation for the new 
features yet.  I have started writing some words for the channel filters which 
are attached to this email, but beyond this you'd have to email Ralph Lange 
who wrote the filters, or start looking at their source code (which can be 
found in src/std/filters) to work out what they can do.

- Andrew
-- 
READ CAREFULLY. By reading this email, you agree, on behalf of your
employer, to release me from all obligations and waivers arising from
any and all NON-NEGOTIATED agreements, licenses, terms-of-service,
shrink-wrap, click-wrap, browse-wrap, confidentiality, non-disclosure,
non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I
have entered into with your employer, its partners, licensors, agents
and assigns, in perpetuity, without prejudice to my ongoing rights
and privileges. You further represent that you have the authority to
release me from any BOGUS AGREEMENTS on behalf of your employer.
Title: Channel Filters

Channel Filters

Channel Filters can be applied to Channel Access channels by a client, using a JSON Field Modifier to select the filter and any parameters. The following filters are available in this release:

Using Filters

Channel filters can be added to any Channel Access channel name. There can be more than one filter applied to the same channel, in which case the order that they are specified will control the order in which they are applied to the resulting data-stream. The filter specification must appear after the field name, or if the default (VAL) field is used after a dot . appended to the record name. With the exception of the array short-hand which is described below, all filters must appear inside a pair of braces {} after the dot expressed as a JSON (_javascript_ Object Notation) object, which allows filter parameters to be included as needed.

Each filter is given as a name/value pair. The filter name (given in parentheses in the titles below) is a string, and must be enclosed inside double-quotes " characters as per the JSON specification. Parameters to that filter are provided as the value part of the name/value pair, and will normally appear as a child JSON object consisting of name/value pairs inside a nested pair of braces {} .

Example Filter

Given a record called test:channel the following would apply a filter f to the VAL field of that record, giving the filter two numeric parameters named lo and hi:

 test:channel.{"f":{"lo":0,"hi":10}}

Note that due to the required presence of the double-quote characters in the JSON strings in the name string, it will usually be necessary to enclose a filtered name within single-quotes ' E<hellip> ' when typing it as an argument to a Unix shell command.

Filter Reference

TimeStamp Filter "ts"

This filter is used to set the timestamp of the (first) value fetched through the channel to the connection time, rather than the time the record last processed which could have been days or even weeks ago for some records, or set to the EPICS epoch if the record has never processed.

Parameters

None, use an empty pair of braces.

Example

 Hal$ caget -a 'test:channel.{"ts":{}}'
 test:channel.{"ts":{}}   2012-08-28 22:10:31.192547 0 UDF INVALID
 Hal$ caget -a 'test:channel'
 test:channel             <undefined> 0 UDF INVALID

Deadband Filter "dbnd"

This filter implements a channel-specific monitor deadband, which is applied after any deadbands implemented by the record itself (it can only drop updates that the unfiltered channel generates, never add additional updates).

The deadband can be specified as an absolute value change, or as a relative percentage.

Parameters

Deadband "d"

The size of the deadband to use. Relative deadband values are given as a numeric percentage, but without any trailing percent character.

Mode "m" (optional)

A string (enclosed in double-quotes "), which should contain either abs or rel. The default mode is absolute if no mode parameter is included.

Example

 Hal$ camonitor 'test:channel'
 test:channel                    2012-09-01 22:10:19.600595 1 LOLO MAJOR
 test:channel                    2012-09-01 22:10:20.600661 2 LOLO MAJOR
 test:channel                    2012-09-01 22:10:21.600819 3 LOW MINOR
 test:channel                    2012-09-01 22:10:22.600905 4 LOW MINOR
 test:channel                    2012-09-01 22:10:23.601023 5  
 test:channel                    2012-09-01 22:10:24.601136 6 HIGH MINOR
 ^C
 Hal$ camonitor 'test:channel.{"dbnd":{"d":1.5}}'
 test:channel.{"dbnd":{"d":1.5}} 2012-09-01 22:11:49.613341 1 LOLO MAJOR
 test:channel.{"dbnd":{"d":1.5}} 2012-09-01 22:11:51.613615 3 LOW MINOR
 test:channel.{"dbnd":{"d":1.5}} 2012-09-01 22:11:53.613804 5  
 test:channel.{"dbnd":{"d":1.5}} 2012-09-01 22:11:55.614074 7 HIGH MINOR
 test:channel.{"dbnd":{"d":1.5}} 2012-09-01 22:11:57.614305 9 HIHI MAJOR
 ^C

Array Filter "arr"

...

Synchronize Filter "sync"

...


References:
3.14 v.s. 3.15 vs. v4 Jack Smith
Re: 3.14 v.s. 3.15 vs. v4 Andrew Johnson
RE: 3.14 v.s. 3.15 vs. v4 Boyes, Matthew

Navigate by Date:
Prev: NSLSII log file, ... Re: using CSS data browser Kasemir, Kay
Next: Profinet John William Sinclair
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: 3.14 v.s. 3.15 vs. v4 Boyes, Matthew
Next: Re: 3.14 v.s. 3.15 vs. v4 Jack Smith
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·