support for alarm status, timeStamp.userTag, and alarm limits
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS pvDataCPP<br />
|
||||
2011.05.11</h1>
|
||||
2011.10.20</h1>
|
||||
|
||||
<p>TODO</p>
|
||||
<ul>
|
||||
@@ -23,9 +23,9 @@
|
||||
|
||||
<div class="toc">
|
||||
<ul>
|
||||
<li><a href="#L45">Preface</a>
|
||||
<li><a href="#L45">Preface</a>
|
||||
<ul>
|
||||
<li><a href="#L72">pvData</a>
|
||||
<li><a href="#L72">pvData</a>
|
||||
<ul>
|
||||
<li><a href="#L76">Introspection</a></li>
|
||||
<li><a href="#L144">Data</a></li>
|
||||
@@ -37,33 +37,33 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L307">Introduction</a></li>
|
||||
<li><a href="#L399">PVData Meta Language</a>
|
||||
<li><a href="#L399">PVData Meta Language</a>
|
||||
<ul>
|
||||
<li><a href="#L405">Definition</a></li>
|
||||
<li><a href="#L604">Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L616">PV - User Description</a>
|
||||
<li><a href="#L616">PV - User Description</a>
|
||||
<ul>
|
||||
<li><a href="#L620">Overview</a></li>
|
||||
<li><a href="#L661">pvType</a></li>
|
||||
<li><a href="#L697">Process Variable Reflection</a>
|
||||
<li><a href="#L697">Process Variable Reflection</a>
|
||||
<ul>
|
||||
<li><a href="#L705">Type Description</a></li>
|
||||
<li><a href="#L835">Reflection Description</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L1050">Standard Fields</a></li>
|
||||
<li><a href="#L1134">PVField - Data Interfaces</a>
|
||||
<li><a href="#L1134">PVField - Data Interfaces</a>
|
||||
<ul>
|
||||
<li><a href="#L1138">PVField</a></li>
|
||||
<li><a href="#L1248">PVAuxInfo</a></li>
|
||||
<li><a href="#L1282">PVScalar and extensions</a>
|
||||
<li><a href="#L1282">PVScalar and extensions</a>
|
||||
<ul>
|
||||
<li><a href="#L1286">Primitive PVField types</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L1292">PVArray and Extensions</a>
|
||||
<li><a href="#L1292">PVArray and Extensions</a>
|
||||
<ul>
|
||||
<li><a href="#L1331">PVArray Extensions</a></li>
|
||||
</ul>
|
||||
@@ -77,10 +77,10 @@
|
||||
<li><a href="#L1550">Convert</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L1620">Namespace and Memory Management</a>
|
||||
<li><a href="#L1620">Namespace and Memory Management</a>
|
||||
<ul>
|
||||
<li><a href="#L1624">Namespace</a></li>
|
||||
<li><a href="#L1675">Memory Managemment</a>
|
||||
<li><a href="#L1675">Memory Managemment</a>
|
||||
<ul>
|
||||
<li><a href="#L1677">NoDefaultMethods</a></li>
|
||||
</ul>
|
||||
@@ -90,36 +90,36 @@
|
||||
<li><a href="#L1693">Other code in this project</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L1701">Examples</a>
|
||||
<li><a href="#L1701">Examples</a>
|
||||
<ul>
|
||||
<li><a href="#L1705">Accessing PVData</a></li>
|
||||
<li><a href="#L1724">Creating PVData</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L1744">Property</a>
|
||||
<li><a href="#L1744">Property</a>
|
||||
<ul>
|
||||
<li><a href="#L1748">Definition of Property</a></li>
|
||||
<li><a href="#L1760">Standard Properties</a></li>
|
||||
<li><a href="#L1841">Overview of Property Support</a></li>
|
||||
<li><a href="#L1861">timeStamp</a>
|
||||
<li><a href="#L1861">timeStamp</a>
|
||||
<ul>
|
||||
<li><a href="#L1885">timeStamp.h</a></li>
|
||||
<li><a href="#L1989">pvTimeStamp.h</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L2029">alarm</a>
|
||||
<li><a href="#L2029">alarm</a>
|
||||
<ul>
|
||||
<li><a href="#L2056">alarm.h</a></li>
|
||||
<li><a href="#L2103">pvAlarm.h</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L2143">control</a>
|
||||
<li><a href="#L2143">control</a>
|
||||
<ul>
|
||||
<li><a href="#L2165">control.h</a></li>
|
||||
<li><a href="#L2197">pvControl.h</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L2237">display</a>
|
||||
<li><a href="#L2237">display</a>
|
||||
<ul>
|
||||
<li><a href="#L2259">display.h</a></li>
|
||||
<li><a href="#L2321">pvDisplay.h</a></li>
|
||||
@@ -129,7 +129,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L2437">PVData Factories</a></li>
|
||||
<li><a href="#L2470">Miscellanous Classes</a>
|
||||
<li><a href="#L2470">Miscellanous Classes</a>
|
||||
<ul>
|
||||
<li><a href="#L2474">Overview</a></li>
|
||||
<li><a href="#L2566">BitSet</a></li>
|
||||
@@ -139,7 +139,7 @@
|
||||
<li><a href="#L2735">Executor</a></li>
|
||||
<li><a href="#L2766">Linked List</a></li>
|
||||
<li><a href="#L2880">Lock and Mutex</a></li>
|
||||
<li><a href="#L2896">Message Queue</a>
|
||||
<li><a href="#L2896">Message Queue</a>
|
||||
<ul>
|
||||
<li><a href="#L2898">Definitions</a></li>
|
||||
<li><a href="#L2902">MessageQueue</a></li>
|
||||
@@ -151,7 +151,7 @@
|
||||
<li><a href="#L3052">CDRMonitor - Monitor and Report Construction and
|
||||
Destruction</a></li>
|
||||
<li><a href="#L3058">Status</a></li>
|
||||
<li><a href="#L3105">Thread</a>
|
||||
<li><a href="#L3105">Thread</a>
|
||||
<ul>
|
||||
<li><a href="#L3107">ThreadPriority</a></li>
|
||||
<li><a href="#L3111">Thread</a></li>
|
||||
@@ -162,7 +162,7 @@
|
||||
<li><a href="#L3251">Queue</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#L3314">pvMisc</a>
|
||||
<li><a href="#L3314">pvMisc</a>
|
||||
<ul>
|
||||
<li><a href="#L3318">BitSetUtil</a></li>
|
||||
<li><a href="#L3348">MultiChoice</a></li>
|
||||
@@ -2297,7 +2297,8 @@ stack. For example the following is permitted:</p>
|
||||
<p>A timeStamp is represented by the following structure</p>
|
||||
<pre>structure timeStamp
|
||||
int64 secondsPartEpoch
|
||||
int32 nanoSeconds</pre>
|
||||
int32 nanoSeconds
|
||||
int32 userTag</pre>
|
||||
|
||||
<p>The Epoch is the posix epoch, i.e. Jan 1, 1970 00:00:00 UTC. Both the
|
||||
seconds and nanoSeconds are signed integers and thus can be negative. Since the
|
||||
@@ -2338,6 +2339,8 @@ public:
|
||||
int64 getSecondsPastEpoch();
|
||||
int64 getEpicsSecondsPastEpoch() const;
|
||||
int32 getNanoSeconds() const;
|
||||
int32 getUserTag() const;
|
||||
void setUserTag(int userTag);
|
||||
void put(int64 secondsPastEpoch,int32 nanoSeconds = 0);
|
||||
void put(int64 milliseconds);
|
||||
void getCurrent();
|
||||
@@ -2377,6 +2380,12 @@ public:
|
||||
00:00:00 UTC as the epoch.</dd>
|
||||
<dt style="font-family: courier;">getNanoSeconds</dt>
|
||||
<dd>Get the number of nanoSeconds. This is always normalized.</dd>
|
||||
<dt><span
|
||||
style="font-family: Courier New,Courier,monospace">getUserTag</span></dt>
|
||||
<dd>Get the userTag.</dd>
|
||||
<dt><span
|
||||
style="font-family: Courier New,Courier,monospace">setUserTag</span></dt>
|
||||
<dd>Set the userTag.</dd>
|
||||
<dt style="font-family: courier;">put(int64 secondsPastEpoch,int32
|
||||
nanoSeconds = 0)</dt>
|
||||
<dd>Set the timeStamp value. If necessary it will be normalized.</dd>
|
||||
@@ -2464,13 +2473,14 @@ public:
|
||||
<p>An alarm structure is defined as follows:</p>
|
||||
<pre>structure alarm
|
||||
int32 severity
|
||||
int32 status
|
||||
String message</pre>
|
||||
|
||||
<p>Note that severity is NOT defined as an enumerated structure. The reason is
|
||||
performance, i. e. prevent passing the array of choice strings everywhere. The
|
||||
file <span style="font-family: courier;">alarm.h</span> provides the choice
|
||||
strings. Thus all code that needs to know about alarms share the exact same
|
||||
choice strings.</p>
|
||||
<p>Note that neither severity or status is defined as an enumerated structure.
|
||||
The reason is performance, i. e. prevent passing the array of choice strings
|
||||
everywhere. The file <span style="font-family: courier;">alarm.h</span>
|
||||
provides the choice strings. Thus all code that needs to know about alarms
|
||||
share the exact same choice strings.</p>
|
||||
|
||||
<p>Two header files are provided for manipulating alarms: <span
|
||||
style="font-family: courier;">alarm.h</span> and <span
|
||||
@@ -2483,15 +2493,27 @@ Alarm as defined by <span style="font-family: courier;">alarm.h</span></p>
|
||||
|
||||
<h4 id="L2056">alarm.h</h4>
|
||||
<pre>enum AlarmSeverity {
|
||||
noAlarm,minorAlarm,majorAlarm,invalidAlarm
|
||||
noAlarm,minorAlarm,majorAlarm,invalidAlarm,undefinedAlarm
|
||||
};
|
||||
|
||||
enum AlarmStatus {
|
||||
noStatus,deviceStatus,driverStatus,recordStatus,
|
||||
dbStatus,confStatus,undefinedStatus,clientStatus
|
||||
};
|
||||
|
||||
|
||||
class AlarmSeverityFunc {
|
||||
public:
|
||||
static AlarmSeverity getSeverity(int value);
|
||||
static StringArray getSeverityNames();
|
||||
};
|
||||
|
||||
|
||||
enum AlarmStatus {
|
||||
noStatus,deviceStatus,driverStatus,recordStatus,
|
||||
dbStatus,confStatus,undefinedStatus,clientStatus
|
||||
};
|
||||
|
||||
class Alarm {
|
||||
public:
|
||||
Alarm();
|
||||
@@ -2500,11 +2522,11 @@ public:
|
||||
void setMessage(String value);
|
||||
AlarmSeverity getSeverity() const;
|
||||
void setSeverity(AlarmSeverity value);
|
||||
AlarmStatus getStatus() const;
|
||||
void setStatus(AlarmStatus value);
|
||||
};</pre>
|
||||
|
||||
<p>Alarm Severity defines the possible alarm severities</p>
|
||||
|
||||
<p>AlarmSeverity has the methods:</p>
|
||||
<p>Alarm Severity defines the possible alarm severities:</p>
|
||||
<dl>
|
||||
<dt style="font-family: courier;">getSeverity</dt>
|
||||
<dd>Get the alarm severity corresponding to the integer value.</dd>
|
||||
@@ -2512,6 +2534,16 @@ public:
|
||||
<dd>Get the array of severity choices.</dd>
|
||||
</dl>
|
||||
|
||||
<p>Alarm Status defines the possible choices for alarm status:</p>
|
||||
<dl>
|
||||
<dt><span
|
||||
style="font-family: Courier New,Courier,monospace">getStatus</span></dt>
|
||||
<dd>Get the alarm status corresponding to the integer value.</dd>
|
||||
<dt><span
|
||||
style="font-family: Courier New,Courier,monospace">getStatusNames</span></dt>
|
||||
<dd>Get the array of status choices.</dd>
|
||||
</dl>
|
||||
|
||||
<p>Alarm has the methods:</p>
|
||||
<dl>
|
||||
<dt style="font-family: courier;">Alarm</dt>
|
||||
@@ -2525,6 +2557,12 @@ public:
|
||||
<dd>Get the severity.</dd>
|
||||
<dt style="font-family: courier;">setSeverity</dt>
|
||||
<dd>Set the severity.</dd>
|
||||
<dt><span
|
||||
style="font-family: Courier New,Courier,monospace">getStatus</span></dt>
|
||||
<dd>Get the status.</dd>
|
||||
<dt><span
|
||||
style="font-family: Courier New,Courier,monospace">setStatus</span></dt>
|
||||
<dd>Set the status.</dd>
|
||||
</dl>
|
||||
|
||||
<h4 id="L2103">pvAlarm.h</h4>
|
||||
|
||||
Reference in New Issue
Block a user