-
Notifications
You must be signed in to change notification settings - Fork 0
07_01_ControlSystemStudio
César García edited this page Jun 19, 2020
·
5 revisions
This document is mostly an extract from [1][2], so we recommend reviewing the document.
| Method | Description |
|---|---|
| archiver.info | description |
| archiver.archives | description |
| archiver.names | Description |
| archiver.values | description |
A the fields
| Field (node) | Description |
|---|---|
| ver | Version number. The first released software uses ’1’. |
| desc | Cute description that one can print |
| how | Array of strings with a description of the request methods supported for ’how’ in the archiver.values() call. |
| stat | Array of strings with a description of the “status” part of the values returned by the archiver.values() call |
| sevr | Array of structures with a description of the “severity” part of the values returned by the archiver.values() call |
The XML-RPC archiver.info request
<?xml version="1.0"?>
<methodCall>
<methodName>archiver.info</methodName>
<params></params>
</methodCall>The XML-RPC archiver.info response
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<methodName>archiver.info</methodName>
<params>
<param><value><struct>
<member>
<name>ver</name>
<value><i4>1</i4></value>
</member>
<member>
<name>desc</name>
<value><string>Merlot IoTDB Connector</string></value>
</member>
<member>
<name>how</name>
<value><array><data>
<value><string>raw</string></value>
<value><string>spreadsheet</string></value>
<value><string>averaged</string></value>
<value><string>plot binning</string></value>
<value><string>linear</string></value>
</data></array></value>
</member>
<member>
<name>stat</name>
<value><array><data>
<value><string>NO ALARM</string></value>
<value><string>READ ALARM</string></value>
<value><string>WRITE ALARM</string></value>
<value><string>HIHI ALARM</string></value>
<value><string>LOLO ALARM</string></value>
<value><string>LOW ALARM</string></value>
<value><string>STATE ALARM</string></value>
<value><string>UDF ALARM</string></value>
</data></array></value>
</member>
<member>
<name>sevr</name>
<value><array><data>
<value><struct>
<member><name>num</name><value><i4>0</i4></value></member>
<member><name>sevr</name><value><string>NO ALARM</string></value></member>
<member><name>has_value</name><value><boolean>1</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>1</i4></value></member>
<member><name>sevr</name><value><string>MINOR</string></value></member>
<member><name>has_value</name><value><boolean>1</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>2</i4></value></member>
<member><name>sevr</name><value><string>MAJOR</string></value></member>
<member><name>has_value</name><value><boolean>1</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>3</i4></value></member>
<member><name>sevr</name><value><string>INVALID</string></value></member>
<member><name>has_value</name><value><boolean>1</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>3968</i4></value></member>
<member><name>sevr</name><value><string>EST_REPEAT</string></value></member>
<member><name>has_value</name><value><boolean>1</boolean></value></member>
<member><name>txt_stat</name><value><boolean>0</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>3856</i4></value></member>
<member><name>sevr</name><value><string>REPEAT</string></value></member>
<member><name>has_value</name><value><boolean>1</boolean></value></member>
<member><name>txt_stat</name><value><boolean>0</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>3904</i4></value></member>
<member><name>sevr</name><value><string>DISCONNECT</string></value></member>
<member><name>has_value</name><value><boolean>0</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>3872</i4></value></member>
<member><name>sevr</name><value><string>ARCHIVE_OFF</string></value></member>
<member><name>has_value</name><value><boolean>0</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
<value><struct>
<member><name>num</name><value><i4>3848</i4></value></member>
<member><name>sevr</name><value><string>ARCHIVE_DISABLE</string></value></member>
<member><name>has_value</name><value><boolean>0</boolean></value></member>
<member><name>txt_stat</name><value><boolean>1</boolean></value></member>
</struct></value>
</data></array></value>
</member>
</struct></value></param>
</params>
</methodResponse>| Field (node) | Description |
|---|---|
| key | A numeric key that is used by the following routines to select the archive |
| name | A description of the archive that one could e.g. use in a drop-down selector in a GUI application for allowing the user to select an archive. |
| path | The path to the index file, valid on the file system where the data server runs. It might be meaningful to a few users who want to know exactly where the data resides, but it is seldom essential for XML-RPC clients to look at this |
The XML-RPC archiver.archives request
<?xml version="1.0"?>
<methodCall>
<methodName>archiver.archives</methodName>
<params></params>
</methodCall>The XML-RPC archiver.archives reponse
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<methodName>archiver.info</methodName>
<params>
<param><value><array><data>
<value><struct>
<member><name>key</name><value><i4>1</i4></value></member>
<member><name>name</name><value><string>grupo 1</string></value></member>
<member><name>path</name><value><string>root.site</string></value></member>
</struct></value>
<value><struct>
<member><name>key</name><value><i4>2</i4></value></member>
<member><name>name</name><value><string>grupo 2</string></value></member>
<member><name>path</name><value><string>root.ln</string></value></member>
</struct></value>
<value><struct>
<member><name>key</name><value><i4>3</i4></value></member>
<member><name>name</name><value><string>grupo 3</string></value></member>
<member><name>path</name><value><string>root.sgcc</string></value></member>
</struct></value>
</data></array></value></param>
</params>
</methodResponse>Request
| Field (node) | Description |
|---|---|
| key | |
| pattern |
| Field (node) | Description |
|---|---|
| name | |
| start_sec | |
| start_nano | |
| end_sec | |
| end_nano |
The XML-RPC archiver.names request
<?xml version="1.0"?>
<methodCall>
<methodName>archiver.names</methodName>
<params>
<param>
<value><int>3</int></value>
</param>
<param>
<value>.*3.*</value>
</param>
</params>
</methodCall>| Field (node) | Type | Description |
|---|---|---|
| key | int32 | A numeric key that is used by the following routines to select the archive |
| how | int32 | The parameter ”how” determines how the raw values of the various channels get arranged to meet the requested time range and count |
| name | string | The channel name. Result[i].name should match name[i] of the request, so this is a waste of electrons, but it’s sure convenient to have the name in the result, and we’re talking XML-RPC, so forget about the electrons. |
| meta | structure | The meta information for the channel. |
| type | int32 | Describes the data type of this channel’s value |
| count | int32 | Describes the array size of this channel’s values, using 1 for scalar values. Note that even scalar values are returned as an array with one element! |
| values | structure | This is an array where each entry is a structure |
Meta information
| Field (node) | Type | Description |
|---|---|---|
| type | int32 | |
| states | string[] | |
| disp_high | double | |
| disp_low | double | |
| alarm_high | double | |
| alarm_low | double | |
| warn_high | double | |
| warn_low | double | |
| prec | int | |
| units | string |
Values structure
| Field (node) | Type | Description |
|---|---|---|
| stat | int32 | |
| sevr | int32 | |
| secs | int32 | |
| nano | int 32 | |
| value | type |
The type info
| Name | Value | Description |
|---|---|---|
| string | 0 | |
| enum | 1 | |
| int | 2 | |
| double | 3 |
| Name | Value | Description |
|---|---|---|
| raw | 0 | Get raw data from timeseries, starting w/ ’start’, up to either ’end’ time or max. ’count’ samples |
| spreadsheet | 1 | Get data that is filled or staircase-interpolated, starting w/ ’start’, up to either ’end’ time or max. ’count’ samples (see 2.7.3). For each channel, the same number of values is returned. The time stamps of the samples match accross channels, so that one can print the samples for each channel as columns in a spreadsheet. If a spreadsheet cell is empty because the channel does not have any useful value for that point in time, a status/severity of UDF/INVALID is returned (Tables 5.2 and 5.1). |
| averaged | 2 | Get averaged data from the archive, starting w/ ’start’, up to either ’end’ time or max. ’count’ samples (see 2.7.4). The data is averaged within bins whose size is determined by of (end-start)/count, so you should expect to get close to ’count’ values which cover ’start’ to ’end’. Again refer to section 2.7 |
| plot binning | 3 | Uses the plot-binning method based on ’count’ bins. |
| linear | 4 | Get linearly interpolated data from the archive, starting w/ ’start’, up to either ’end’ time or max. ’count’ samples (see 2.7.4). The data is interpolated onto time slots which are multiples of (end-start)/count, so you should expect to get close to ’count’ values which cover ’start’ to ’end’. Again refer to section 2.7. |
- Channel Archiver Manual. https://www.slac.stanford.edu/grp/cd/soft/epics/extensions/ChannelArchiver/
- EPICS Channel Archiver Manual. https://www.slac.stanford.edu/grp/cd/soft/epics/extensions/ChannelArchiver/manual.pdf
Footer
Sidebar