merge
This commit is contained in:
commit
86ee0c5295
10 files changed
+152
-85
No files matched your search
@@ -1 +1,6 @@
|
||||
b9a943e6828731a8a89e811818b2d91faff69d86 1.0-BETA
|
||||
aaa5f5840b7eea8afaafb4d13a49bf78975aac0f 4.0.0
|
||||
aaa5f5840b7eea8afaafb4d13a49bf78975aac0f 4.0.0
|
||||
df4c65e13c2cfaa92e42f84a7afc97c81b5f3888 4.0.0
|
||||
df4c65e13c2cfaa92e42f84a7afc97c81b5f3888 4.0.0
|
||||
ec29bda853f50fa501cbcf3ffd836a1ef2adcdd4 4.0.0
|
||||
+21
-1
@@ -1,2 +1,22 @@
|
||||
<h1>TODO</h1>
|
||||
<p>lots of code is a copy paste, consider inheritance and templates</p>
|
||||
<h2>NTScalarArray</h2>
|
||||
<p>NTScalarArrayBuilder::arrayValue</p>
|
||||
<p>Should this be:</p>
|
||||
<p>NTScalarArrayBuilder::value</p>
|
||||
<p>This makes NTScalarArray consistent with other NTTypes.</p>
|
||||
<h2>NTNameValue</h2>
|
||||
<p>This does not have a value field like all the other NTTypes.
|
||||
Perhaps instead of</p>
|
||||
<pre><code>NTNameValue
|
||||
string[] name
|
||||
string[] value
|
||||
</code></pre>
|
||||
<p>It should be</p>
|
||||
<pre><code>NTNameValue
|
||||
value
|
||||
string[] name
|
||||
string[] value
|
||||
</code></pre>
|
||||
<h2>NTTable</h2>
|
||||
<p>Should lables be label?
|
||||
Compare with name,value from NTNameValue.</p>
|
||||
+34
-1
@@ -1,4 +1,37 @@
|
||||
TODO
|
||||
===========
|
||||
|
||||
lots of code is a copy paste, consider inheritance and templates
|
||||
NTScalarArray
|
||||
------------
|
||||
|
||||
NTScalarArrayBuilder::arrayValue
|
||||
|
||||
Should this be:
|
||||
|
||||
NTScalarArrayBuilder::value
|
||||
|
||||
This makes NTScalarArray consistent with other NTTypes.
|
||||
|
||||
|
||||
NTNameValue
|
||||
------------
|
||||
|
||||
This does not have a value field like all the other NTTypes.
|
||||
Perhaps instead of
|
||||
|
||||
NTNameValue
|
||||
string[] name
|
||||
string[] value
|
||||
|
||||
It should be
|
||||
|
||||
NTNameValue
|
||||
value
|
||||
string[] name
|
||||
string[] value
|
||||
|
||||
NTTable
|
||||
----------
|
||||
|
||||
Should lables be label?
|
||||
Compare with name,value from NTNameValue.
|
||||
+83
-74
@@ -37,7 +37,7 @@
|
||||
<h1>EPICS ntCPP</h1>
|
||||
<!-- Maturity: Working Draft or Request for Comments, or Recommendation, and date. -->
|
||||
|
||||
<h2 class="nocount">EPICS v4 Working Group, Working Draft, 01-Oct-2014</h2>
|
||||
<h2 class="nocount">EPICS v4 Working Group, Working Draft, 09-Oct-2014</h2>
|
||||
|
||||
<dl>
|
||||
<dt>Latest version:</dt>
|
||||
@@ -80,7 +80,7 @@ V4 control system programming environment:<br />
|
||||
|
||||
<h2 class="nocount">Status of this Document</h2>
|
||||
|
||||
<p>This is the 01-Oct-2014 version of the C++ implementation of pvData.
|
||||
<p>This is the 09-Oct-2014 version of the C++ implementation of pvData.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -112,9 +112,9 @@ pvDataCPP.html
|
||||
<dt>NTScalarArray</dt>
|
||||
<dd>This has a value field that has type scalarArray</dd>
|
||||
<dt>NTNameValue</dt>
|
||||
<dd>This has a field names that is a string array
|
||||
and a field values that has type scalarArray.
|
||||
Each names[i] is associated with values[i].
|
||||
<dd>This has a field name that is a string array
|
||||
and a field value that has type scalarArray.
|
||||
Each name[i] is associated with value[i].
|
||||
</dd>
|
||||
<dt>NTTable</dt>
|
||||
<dd>This has a string array field named labels
|
||||
@@ -196,11 +196,11 @@ public:
|
||||
<dt>createEnumerated</dt>
|
||||
<dd>Create an introspection interface for an enumerated structure.</dd>
|
||||
<dt>createTimeStamp</dt>
|
||||
<dd>Create an interspection interface for a timeStamp structure.</dd>
|
||||
<dd>Create an introspection interface for a timeStamp structure.</dd>
|
||||
<dt>createAlarm</dt>
|
||||
<dd>Create an interspection interface for an alarm structure.</dd>
|
||||
<dd>Create an introspection interface for an alarm structure.</dd>
|
||||
<dt>createDisplay</dt>
|
||||
<dd>Create an introsepecion interface for a display structure.</dd>
|
||||
<dd>Create an introspection interface for a display structure.</dd>
|
||||
<dt>createControl</dt>
|
||||
<dd>Create an introspection interface for a control structure.</dd>
|
||||
<dt>createEnumeratedArray</dt>
|
||||
@@ -216,7 +216,7 @@ public:
|
||||
<h2>Property Field Definitions</h2>
|
||||
<h3>Definition: value</h3>
|
||||
<p>Often a property field is associated with another field.
|
||||
This other field is refered to as the value field.
|
||||
This other field is referred to as the value field.
|
||||
Usually the value field will have the field name "value".
|
||||
An example is:</p>
|
||||
<pre>
|
||||
@@ -233,9 +233,11 @@ to report problems to the client.
|
||||
An alarm attached to a substructure of the top level structure is normally
|
||||
associated with a value field.
|
||||
An alarm field attached to the top level structure can be used for either:
|
||||
</p>
|
||||
<ol>
|
||||
<li>If the top level structure has a value field then it is an alarm
|
||||
for that field.
|
||||
</li>
|
||||
<li>To report other problems to the client.</li>
|
||||
</ol>
|
||||
<p>If alarms do appear at multiple levels then an alarm is always
|
||||
@@ -269,7 +271,7 @@ structure alarm
|
||||
string message
|
||||
</pre>
|
||||
<p>Clients and Servers should use <b>alarm.h</b> and <b>pvAlarm.h</b> which are
|
||||
provided by pvDataCPP intead of directly using the alarm structure itself.
|
||||
provided by pvDataCPP instead of directly using the alarm structure itself.
|
||||
In particular severity and status are defined as:</p>
|
||||
<pre>
|
||||
enum AlarmSeverity {
|
||||
@@ -288,9 +290,11 @@ There can be multiple timeStamp fields.
|
||||
A timeStamp associated with a substructure is usually associated with
|
||||
a value field.
|
||||
An timeStamp field attached to the top level structure can be used for either:
|
||||
</p>
|
||||
<ol>
|
||||
<li>If the top level structure has a value field then it can be the
|
||||
timeStamp for that field.
|
||||
</li>
|
||||
<li>The time when the server executed.</li>
|
||||
</ol>
|
||||
<p>NTNDArray is an example that has two top level timeStamp field with different
|
||||
@@ -304,7 +308,7 @@ structure timeStamp
|
||||
int userTag
|
||||
</pre>
|
||||
<p>Clients and Servers should use <b>timeStamp.h</b> and <b>pvTimeStamp.h</b>
|
||||
which are provided by pvDataCPP intead of directly using the timeStamp structure itself.
|
||||
which are provided by pvDataCPP instead of directly using the timeStamp structure itself.
|
||||
Note that <b>timeStamp.h</b> provides many methods for manipulating time.
|
||||
</p>
|
||||
<p>The meaning of the fields is:</p>
|
||||
@@ -326,7 +330,7 @@ structure control
|
||||
double minStep
|
||||
</pre>
|
||||
<p>Servers should use <b>control.h</b> and <b>pvControl.h</b> which are
|
||||
provided by pvDataCPP intead of directly using the control structure itself.
|
||||
provided by pvDataCPP instead of directly using the control structure itself.
|
||||
Note that <b>control.h</b> provides many methods for manipulating time.
|
||||
</p>
|
||||
<h3>display</h3>
|
||||
@@ -369,7 +373,7 @@ structure
|
||||
</pre>
|
||||
<p><b>NOTE:</b> NTField, described above, has support for checking to see if
|
||||
a structure is an alarmLimit structure but no other support for alarmLimit.</p>
|
||||
|
||||
<p>
|
||||
PVData has support named <b>valueAlarm</b> instead of <b>alarmLimit</b>
|
||||
(alarmLimit is identical to valueAlarm for type double).
|
||||
For numeric types the field names are the same but the type
|
||||
@@ -394,8 +398,9 @@ PVData can be used to generate a valueAlarm field as an extra field.
|
||||
<dd>The introspection instance for the data structure associated with the type.</dd>
|
||||
<dt>PVStructure</dt>
|
||||
<dd>The data instance for the data structure associated with the type.</dd>
|
||||
<dt>NTXXX</dt>
|
||||
<dt>NTType</dt>
|
||||
<dd>The instance for the NT type.
|
||||
For example <b>NTScalar</b>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>Each bulder also has a number of additional methods for optional fields
|
||||
@@ -417,7 +422,7 @@ This has methods to do the following:</p>
|
||||
<h2>Normative Type NTScalar</h2>
|
||||
<p>This has the following fields:</p>
|
||||
<pre>
|
||||
ev4:nt/NTScalar:1.0
|
||||
epics:nt/NTScalar:1.0
|
||||
double value // mandatory and can be any numeric type
|
||||
string descriptor // optional
|
||||
alarm_t alarm // optional
|
||||
@@ -494,13 +499,13 @@ where
|
||||
a unique name that is not the name of any mandatory or possible optional field.</dd>
|
||||
</dl>
|
||||
<p>An NTScalaBuilder can be used to create multiple PVStructure and/or NTScalar instances.
|
||||
Each time createPVScalar is called it clears all interval data after the PVStructure
|
||||
Each time createPVScalar is called it clears all internal data after the PVStructure
|
||||
is created.</p>
|
||||
<h4>NTScalarBuilder Examples</h4>
|
||||
<p>An example of creating an NTScalar instance is:</p>
|
||||
<pre>
|
||||
NTScalarBuilderPtr builder = NTScalar::createBuilder();
|
||||
NTScalarPtr ntScalar = builder->
|
||||
NTScalarPtr ntScalar = builder->
|
||||
value(pvInt)->
|
||||
addDescriptor()->
|
||||
addAlarm()->
|
||||
@@ -525,7 +530,7 @@ NTScalarPtr ntScalar = builder->create();
|
||||
<p><b>ntscalar.h</b> defines the following:</p>
|
||||
<pre>
|
||||
class NTScalar;
|
||||
typedef std::tr1::shared_ptr<NTScalar> NTScalarPtr;
|
||||
typedef std::tr1::shared_ptr<NTScalar> NTScalarPtr;
|
||||
|
||||
class NTScalar
|
||||
{
|
||||
@@ -549,7 +554,7 @@ public:
|
||||
PVStructurePtr getControl() const;
|
||||
PVFieldPtr getValue() const;
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PV> getValue() const
|
||||
std::tr1::shared_ptr<PVT> getValue() const
|
||||
private:
|
||||
}
|
||||
</pre>
|
||||
@@ -557,12 +562,13 @@ where
|
||||
<dl>
|
||||
<dt>wrap</dt>
|
||||
<dd>Given a pvStructure this creates an NTScalar that warps it.
|
||||
It calls <b>isCompatible</b> returns a null PVScalar if <b>isCompatible</b> returns false.
|
||||
<br \>
|
||||
It calls <b>isCompatible</b>.
|
||||
It returns a null PVScalar if <b>isCompatible</b> returns false.
|
||||
<br />
|
||||
The primary use of wrap is by pvAccess client code.
|
||||
The server creates a pvStructure that is valid for an NTScalar
|
||||
and passes it to the client.
|
||||
The client can call wrap to create an NTScalar for it;s own use.
|
||||
The client can call wrap to create an NTScalar for it's own use.
|
||||
An example is:
|
||||
<pre>
|
||||
void myCallback(PVStructurePtr const & pvStructure)
|
||||
@@ -574,7 +580,7 @@ void myCallback(PVStructurePtr const & pvStructure)
|
||||
...
|
||||
}
|
||||
</pre>
|
||||
<dd>
|
||||
</dd>
|
||||
<dt>wrapUnsafe</dt>
|
||||
<dd>Given a pvStructure this creates an NTScalar that warps it.
|
||||
It does not check that the introspection interface is compatible.
|
||||
@@ -596,11 +602,11 @@ An example is:
|
||||
PVTimeStamp pvTimeStamp;
|
||||
TimeStamp timeStamp;
|
||||
|
||||
ntscalar-&attachTimeStamp(pvTimeStamp);
|
||||
ntscalar->attachTimeStamp(pvTimeStamp);
|
||||
pvTimeStamp.get(timeStamp);
|
||||
TimeStamp current;
|
||||
current.getCurrent();
|
||||
double diff = TimeStamp::diff(timeStamp,current); // timeStamp = current
|
||||
double diff = TimeStamp::diff(timeStamp,current); // timeStamp - current
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>attachAlarm</dt>
|
||||
@@ -613,7 +619,7 @@ An example is:
|
||||
PVAlarm pvAlarm;
|
||||
Alarm alarm;
|
||||
|
||||
ntscalar-&attachAlarm(pvAlarm);
|
||||
ntscalar->attachAlarm(pvAlarm);
|
||||
pvAlarm.get(alarm);
|
||||
int severity = alarm.getSeverity();
|
||||
int status = alarm.getStatus();
|
||||
@@ -656,11 +662,11 @@ string message = alarm.getMessage();
|
||||
<dd>Returns the value field.</dd>
|
||||
</dl>
|
||||
<h2>Normative Type NTScalarArray</h2>
|
||||
<p>This class is similar to <b>NTScalarArray</b> except that the value
|
||||
<p>This class is similar to <b>NTScalar</b> except that the value
|
||||
field is a scalar array field instead of just a scalar.</p>
|
||||
<p>This has the following fields:</p>
|
||||
<pre>
|
||||
ev4:nt/NTScalarArray:1.0
|
||||
epics:nt/NTScalarArray:1.0
|
||||
double[] value // mandatory and can be any numeric type
|
||||
string descriptor // optional
|
||||
alarm_t alarm // optional
|
||||
@@ -711,7 +717,7 @@ private:
|
||||
</pre>
|
||||
where
|
||||
<dl>
|
||||
<dt>value</dt>
|
||||
<dt>arrayValue</dt>
|
||||
<dd>This determines the element type for the value field.
|
||||
This must be specified or createStructure will throw an exception.</dd>
|
||||
<dt>addDescriptor</dt>
|
||||
@@ -738,7 +744,7 @@ where
|
||||
<p><b>ntscalarArray.h</b> defines the following:</p>
|
||||
<pre>
|
||||
class NTScalarArray;
|
||||
typedef std::tr1::shared_ptr<NTScalarArray> NTScalarArrayPtr;
|
||||
typedef std::tr1::shared_ptr<NTScalarArray> NTScalarArrayPtr;
|
||||
|
||||
class NTScalarArray
|
||||
{
|
||||
@@ -771,7 +777,7 @@ where
|
||||
<dt>wrap</dt>
|
||||
<dd>Given a pvStructure this creates an NTScalarArray that warps it.
|
||||
It calls <b>isCompatible</b> returns a null PVScalarArray if <b>isCompatible</b> returns false.
|
||||
<dd>
|
||||
</dd>
|
||||
<dt>wrapUnsafe</dt>
|
||||
<dd>Given a pvStructure this creates an NTScalarArray that warps it.
|
||||
It does not check that the introspection interface is compatible.
|
||||
@@ -832,9 +838,9 @@ where
|
||||
|
||||
<h2>Normative Type NTNameValue</h2>
|
||||
<pre>
|
||||
ev4:nt/NTNameValue:1.0
|
||||
string[] names // mandatory
|
||||
double[] values // madatory, can be any type, must be same length as names
|
||||
epics:nt/NTNameValue:1.0
|
||||
string[] name // mandatory
|
||||
double[] value // madatory, can be any type, must be same length as name
|
||||
string descriptor // optional
|
||||
alarm_t alarm // optional
|
||||
int severity
|
||||
@@ -896,7 +902,7 @@ where
|
||||
<h3>NTNameValue</h3>
|
||||
<pre>
|
||||
class NTNameValue;
|
||||
typedef std::tr1::shared_ptr<NTNameValue> NTNameValuePtr;
|
||||
typedef std::tr1::shared_ptr<NTNameValue> NTNameValuePtr;
|
||||
|
||||
class NTNameValue
|
||||
{
|
||||
@@ -911,11 +917,12 @@ public:
|
||||
|
||||
bool attachTimeStamp(PVTimeStamp &pvTimeStamp) const;
|
||||
bool attachAlarm(PVAlarm &pvAlarm) const;
|
||||
PVStringPtr getDescriptor() const;
|
||||
PVStructurePtr getPVStructure() const;
|
||||
PVStructurePtr getTimeStamp() const;
|
||||
PVStructurePtr getAlarm() const;
|
||||
PVStringArrayPtr getNames() const;
|
||||
PVFieldPtr getValues() const;
|
||||
PVStringArrayPtr getName() const;
|
||||
PVFieldPtr getValue() const;
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PV> getValue() const
|
||||
private:
|
||||
@@ -926,7 +933,7 @@ where
|
||||
<dt>wrap</dt>
|
||||
<dd>Given a pvStructure this creates an NTNameValue that warps it.
|
||||
It calls <b>isCompatible</b> returns a null NTNameValue if <b>isCompatible</b> returns false.
|
||||
<dd>
|
||||
</dd>
|
||||
<dt>wrapUnsafe</dt>
|
||||
<dd>Given a pvStructure this creates an NTNameValue that warps it.
|
||||
It does not check that the introspection interface is compatible.
|
||||
@@ -963,15 +970,15 @@ where
|
||||
If the alarm was not selected as an optional field
|
||||
a null pvStructure is returned.
|
||||
</dd>
|
||||
<dt>getNames</dt>
|
||||
<dd>Returns field names.</dd>
|
||||
<dt>getValues</dt>
|
||||
<dd>Returns field values.</dd>
|
||||
<dt>getName</dt>
|
||||
<dd>Returns field name.</dd>
|
||||
<dt>getValue</dt>
|
||||
<dd>Returns field value.</dd>
|
||||
</dl>
|
||||
|
||||
<h2>Normative Type NTTable</h2>
|
||||
<pre>
|
||||
ev4:nt/NTTable:1.0
|
||||
epics:nt/NTTable:1.0
|
||||
string[] labels [column0,column1,column2] // mandatory
|
||||
structure value // mandatory;
|
||||
double[] column0 [] // name=labels[0]; can be any scalar type
|
||||
@@ -1035,7 +1042,7 @@ where
|
||||
<h3>NTTable</h3>
|
||||
<pre>
|
||||
class NTTable;
|
||||
typedef std::tr1::shared_ptr<NTTable> NTTablePtr;
|
||||
typedef std::tr1::shared_ptr<NTTable> NTTablePtr;
|
||||
|
||||
class NTTable
|
||||
{
|
||||
@@ -1066,7 +1073,7 @@ where
|
||||
<dt>wrap</dt>
|
||||
<dd>Given a pvStructure this creates an NTTable that warps it.
|
||||
It calls <b>isCompatible</b> returns a null NTTable if <b>isCompatible</b> returns false.
|
||||
<dd>
|
||||
</dd>
|
||||
<dt>wrapUnsafe</dt>
|
||||
<dd>Given a pvStructure this creates an NTTable that warps it.
|
||||
It does not check that the introspection interface is compatible.
|
||||
@@ -1189,7 +1196,7 @@ where
|
||||
<h3>NTMultiChannel</h3>
|
||||
<pre>
|
||||
class NTMultiChannel;
|
||||
typedef std::tr1::shared_ptr<NTMultiChannel> NTMultiChannelPtr;
|
||||
typedef std::tr1::shared_ptr<NTMultiChannel> NTMultiChannelPtr;
|
||||
|
||||
class NTMultiChannel
|
||||
{
|
||||
@@ -1204,6 +1211,7 @@ public:
|
||||
|
||||
bool attachTimeStamp(PVTimeStamp &pvTimeStamp) const;
|
||||
bool attachAlarm(PVAlarm &pvAlarm) const;
|
||||
PVStringPtr getDescriptor() const;
|
||||
PVStructurePtr getPVStructure() const;
|
||||
PVStructurePtr getTimeStamp() const;
|
||||
PVStructurePtr getAlarm() const;
|
||||
@@ -1216,9 +1224,6 @@ public:
|
||||
PVLongArrayPtr getSecondsPastEpoch() const;
|
||||
PVIntArrayPtr getNanoseconds() const;
|
||||
PVIntArrayPtr getUserTag() const;
|
||||
PVStringPtr getDescriptor() const;
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PV> getValue() const
|
||||
private:
|
||||
}
|
||||
</pre>
|
||||
@@ -1227,7 +1232,7 @@ where
|
||||
<dt>wrap</dt>
|
||||
<dd>Given a pvStructure this creates an NTMultiChannel that warps it.
|
||||
It calls <b>isCompatible</b> returns a null NTMultiChannel if <b>isCompatible</b> returns false.
|
||||
<dd>
|
||||
</dd>
|
||||
<dt>wrapUnsafe</dt>
|
||||
<dd>Given a pvStructure this creates an NTMultiChannel that warps it.
|
||||
It does not check that the introspection interface is compatible.
|
||||
@@ -1286,13 +1291,13 @@ where
|
||||
|
||||
<h2>Normative Type NTNDArray</h2>
|
||||
<pre>
|
||||
ev4:nt/NTNDArray:1.0
|
||||
epics:nt/NTNDArray:1.0
|
||||
union value //mandatory
|
||||
long compressedSize //mandatory
|
||||
long uncompressedSize //mandatory
|
||||
codec_t codec //mandatory
|
||||
string name
|
||||
any parameters
|
||||
long compressedSize //mandatory
|
||||
long uncompressedSize //mandatory
|
||||
dimension_t[] dimension //mandatory
|
||||
dimension_t[]
|
||||
dimension_t
|
||||
@@ -1306,9 +1311,9 @@ ev4:nt/NTNDArray:1.0
|
||||
long secondsPastEpoch
|
||||
int nanoseconds
|
||||
int userTag
|
||||
ev4:nt/NTAttribute:1.0[] attribute //mandatory
|
||||
ev4:nt/NTAttribute:1.0[]
|
||||
ev4:nt/NTAttribute:1.0
|
||||
epics:nt/NTAttribute:1.0[] attribute //mandatory
|
||||
epics:nt/NTAttribute:1.0[]
|
||||
epics:nt/NTAttribute:1.0
|
||||
string name
|
||||
any value
|
||||
string description
|
||||
@@ -1377,7 +1382,7 @@ where
|
||||
<h3>NTNDArray</h3>
|
||||
<pre>
|
||||
class NTNDArray;
|
||||
typedef std::tr1::shared_ptr<NTNDArray> NTNDArrayPtr;
|
||||
typedef std::tr1::shared_ptr<NTNDArray> NTNDArrayPtr;
|
||||
|
||||
class NTNDArray
|
||||
{
|
||||
@@ -1390,20 +1395,21 @@ public:
|
||||
static bool isComparible(PVStructurePtr const &pvStructure);
|
||||
static NTNDArrayBuilderPtr createBuilder();
|
||||
|
||||
PVStringPtr getDescriptor() const;
|
||||
bool attachTimeStamp(PVTimeStamp &pvTimeStamp) const;
|
||||
bool attachDataTimeStamp(PVTimeStamp &pvTimeStamp) const;
|
||||
bool attachAlarm(PVAlarm &pvAlarm) const;
|
||||
PVStructurePtr getPVStructure() const;
|
||||
PVUnionPtr getValue() const;
|
||||
PVStructurePtr getCodec() const;
|
||||
PVLongPtr getCompressedDataSize() const;
|
||||
PVLongPtr getUncompressedDataSize() const;
|
||||
PVStructurePtr getCodec() const;
|
||||
PVStructureArrayPtr getAttribute() const;
|
||||
PVStructureArrayPtr getDimension() const;
|
||||
PVIntPtr getUniqueId() const;
|
||||
PVStructurePtr getTimeStamp() const;
|
||||
PVStructurePtr getDataTimeStamp() const;
|
||||
PVStringPtr getDescriptor() const;
|
||||
PVStructurePtr getTimeStamp() const;
|
||||
PVStructurePtr getAlarm() const;
|
||||
PVStructurePtr getDisplay() const;
|
||||
private:
|
||||
@@ -1414,7 +1420,7 @@ where
|
||||
<dt>wrap</dt>
|
||||
<dd>Given a pvStructure this creates an NTNDArray that warps it.
|
||||
It calls <b>isCompatible</b> returns a null NTNDArray if <b>isCompatible</b> returns false.
|
||||
<dd>
|
||||
</dd>
|
||||
<dt>wrapUnsafe</dt>
|
||||
<dd>Given a pvStructure this creates an NTNDArray that warps it.
|
||||
It does not check that the introspection interface is compatible.
|
||||
@@ -1442,6 +1448,23 @@ where
|
||||
</dd>
|
||||
<dt>getPVStructure</dt>
|
||||
<dd>Returns the pvStructure that NTNDArray wraps.</dd>
|
||||
<dt>getValue</dt>
|
||||
<dd>Returns the value field.</dd>
|
||||
<dt>getCodec</dt>
|
||||
<dd>Returns the severity of each channel.</dd>
|
||||
<dt>getCompressedDataSize</dt>
|
||||
<dd>Returns the name of each channel.</dd>
|
||||
<dt>getUncompressedDataSize</dt>
|
||||
<dd>Returns connection state of each channel.</dd>
|
||||
<dt>getAttribute</dt>
|
||||
<dd>Returns the status of each channel.</dd>
|
||||
<dt>getDimension</dt>
|
||||
<dd>Returns the message of each channel.</dd>
|
||||
<dt>getUniqueId</dt>
|
||||
<dd>Returns the secondsPastEpoch of each channel.</dd>
|
||||
<dt>getDataTimeStamp</dt>
|
||||
<dd>Returns the data timeStamp.
|
||||
</dd>
|
||||
<dt>getDescriptor</dt>
|
||||
<dd>Get the descriptor.</dd>
|
||||
<dt>getTimeStamp</dt>
|
||||
@@ -1459,20 +1482,6 @@ where
|
||||
If the display was not selected as an optional field
|
||||
a null pvStructure is returned.
|
||||
</dd>
|
||||
<dt>getValue</dt>
|
||||
<dd>Returns the value field.</dd>
|
||||
<dt>getCompressedDataSize</dt>
|
||||
<dd>Returns the name of each channel.</dd>
|
||||
<dt>getUncompressedDataSize</dt>
|
||||
<dd>Returns connection state of each channel.</dd>
|
||||
<dt>getCodec</dt>
|
||||
<dd>Returns the severity of each channel.</dd>
|
||||
<dt>getAttribute</dt>
|
||||
<dd>Returns the status of each channel.</dd>
|
||||
<dt>getDimension</dt>
|
||||
<dd>Returns the message of each channel.</dd>
|
||||
<dt>getUniqueId</dt>
|
||||
<dd>Returns the secondsPastEpoch of each channel.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
@@ -195,7 +195,7 @@ NTMultiChannelBuilder::shared_pointer NTMultiChannelBuilder::add(string const &
|
||||
|
||||
}
|
||||
|
||||
const std::string NTMultiChannel::URI("ev4:nt/NTMultiChannel:1.0");
|
||||
const std::string NTMultiChannel::URI("epics:nt/NTMultiChannel:1.0");
|
||||
|
||||
NTMultiChannel::shared_pointer NTMultiChannel::wrap(PVStructurePtr const & structure)
|
||||
{
|
||||
|
||||
@@ -108,7 +108,7 @@ NTNameValueBuilder::shared_pointer NTNameValueBuilder::add(string const & name,
|
||||
|
||||
}
|
||||
|
||||
const std::string NTNameValue::URI("ev4:nt/NTNameValue:1.0");
|
||||
const std::string NTNameValue::URI("epics:nt/NTNameValue:1.0");
|
||||
|
||||
NTNameValue::shared_pointer NTNameValue::wrap(PVStructurePtr const & structure)
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ static NTFieldPtr ntField = NTField::get();
|
||||
|
||||
namespace detail {
|
||||
|
||||
const std::string ntAttrStr("ev4:nt/NTAttribute:1.0");
|
||||
const std::string ntAttrStr("epics:nt/NTAttribute:1.0");
|
||||
|
||||
static FieldCreatePtr fieldCreate = getFieldCreate();
|
||||
static PVDataCreatePtr pvDataCreate = getPVDataCreate();
|
||||
@@ -198,8 +198,8 @@ NTNDArrayBuilder::shared_pointer NTNDArrayBuilder::add(string const & name, Fiel
|
||||
|
||||
}
|
||||
|
||||
const std::string NTNDArray::URI("ev4:nt/NTNDArray:1.0");
|
||||
const std::string ntAttrStr("ev4:nt/NTAttribute:1.0");
|
||||
const std::string NTNDArray::URI("epics:nt/NTNDArray:1.0");
|
||||
const std::string ntAttrStr("epics:nt/NTAttribute:1.0");
|
||||
|
||||
static FieldCreatePtr fieldCreate = getFieldCreate();
|
||||
static PVDataCreatePtr pvDataCreate = getPVDataCreate();
|
||||
@@ -245,7 +245,7 @@ bool NTNDArray::isCompatible(PVStructurePtr const & pvStructure)
|
||||
pvField = pvStructure->getSubField("dataTimeStamp");
|
||||
if(pvField && !ntField->isTimeStamp(pvField->getField())) return false;
|
||||
PVStructureArrayPtr pvAttribute = pvStructure->getSubField<PVStructureArray>("attribute");
|
||||
if(!pvAttribute->getStructureArray()->getStructure()->getID().compare("ntAttrStr")!=0) return false;
|
||||
if(pvAttribute->getStructureArray()->getStructure()->getID().compare(ntAttrStr)!=0) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -128,7 +128,7 @@ NTScalarBuilder::shared_pointer NTScalarBuilder::add(string const & name, FieldC
|
||||
|
||||
}
|
||||
|
||||
const std::string NTScalar::URI("ev4:nt/NTScalar:1.0");
|
||||
const std::string NTScalar::URI("epics:nt/NTScalar:1.0");
|
||||
|
||||
NTScalar::shared_pointer NTScalar::wrap(PVStructurePtr const & structure)
|
||||
{
|
||||
|
||||
@@ -125,7 +125,7 @@ NTScalarArrayBuilder::shared_pointer NTScalarArrayBuilder::add(string const & na
|
||||
|
||||
}
|
||||
|
||||
const std::string NTScalarArray::URI("ev4:nt/NTScalarArray:1.0");
|
||||
const std::string NTScalarArray::URI("epics:nt/NTScalarArray:1.0");
|
||||
|
||||
NTScalarArray::shared_pointer NTScalarArray::wrap(PVStructurePtr const & structure)
|
||||
{
|
||||
|
||||
+1
-1
@@ -123,7 +123,7 @@ NTTableBuilder::shared_pointer NTTableBuilder::add(string const & name, FieldCon
|
||||
|
||||
}
|
||||
|
||||
const std::string NTTable::URI("ev4:nt/NTTable:1.0");
|
||||
const std::string NTTable::URI("epics:nt/NTTable:1.0");
|
||||
|
||||
NTTable::shared_pointer NTTable::wrap(PVStructurePtr const & structure)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user