EPICS V4 Telecon, 15-Apr-2014.




0. Preliminaries

1. N-types for units and error (greg).

2. Demo using pva and easyPva from within matlab (greg). [Not covered. See meeting 29-Apr-14]



Present: BD, GC, MK, MS, GW, NM

Scribe: GK

Chair: GW


NEW TOPIC: Proposal for normative types


GW: not try to match error and value type

MS: error could just be a double

GC: Why not have statistics type

GW: we do: NTAggregate

When creating a table, should we have a column of an NTAggregate, or multiple name column with average, stddev, …

GC: multiple column (I’d rather converge to a general purpose case)

GW: single column of aggregate type (I want to keep the semantic association)

GW: we’ll need to try

NM: we could use the archiver

GW: will try to use the proposal for data from an archiver

Normative Types


1. Units are already in N-Types, as I said before, they're in

display_t so they're already in all types.

2. Error


       a) Add error and N (number of observations) to NTScalar and


       b) The rule that a type must not be composed of any other types

       is removed. That way, we can define the higher types like

       NTTable in terms of NTScalar and NTScalarArray.



       structure NTScalar

                 scalar_t      value

                 scalar_t      error  :opt

                 scalar_t      n       :opt

                 .. other


       structure NTScalarArray

                 scalar_t []   value

                 scalar_t []   error   :opt    

                 scalar_t []   n       :opt    

                 .. other

       Error communicates the error bars of each element of value. That

       is, error SHOULD NOT be used to communicate the computed error

       of the set of values in the value field. Thereby, the length of

       error MUST be equal to the length of value. Call length of value "M".

       n MUST be length = 1 or M.

       If length 1, then the value of n should be taken to range for

       all elements of error. For instance, in a synchronous

       acquisition system, where 300 diagnostic devices are all sampled

       on a 100Hz signal, and we wish to encode the average reading and

       RMS of each device over (the same) 5 cycles in one

       NTScalarArray. Then length of value = 300, length of error =

       300, and length of n = 1 (and has value = 5). Incidentally, the

       100Hz nature of the acquisition would have to be encoded

       elsewhere, possibly in the display_t.description field.

So, using NTScalarArray for NTTable:


       structure NTTable

                 string [] labels

                 structure value

                           {NTScalarArray <colname>}0+










Conclusion: Maybe N-types should make a formal association between all value fields and their error, whereas V-types don’t, they’re oriented toward being general purpose.

So remains to be seen whether that makes sense or is just bullshit.

Matlab demo in 2 weeks.

Meeting ends.