fenugrec
2025-02-21 c0d5572cf7b622df0a30972ceaabe183a2c50f76
README.md
@@ -1,19 +1,29 @@
SCPI parser library v2
===========
[Documentation](http://j123b567.github.io/scpi-parser)
![Build status](https://github.com/j123b567/scpi-parser/actions/workflows/main.yml/badge.svg) [![Coverage Status](https://coveralls.io/repos/j123b567/scpi-parser/badge.svg?branch=master&service=github)](https://coveralls.io/github/j123b567/scpi-parser?branch=master)
Documentation
--------
Documentation is available at [http://j123b567.github.io/scpi-parser](http://j123b567.github.io/scpi-parser).
Examples
--------
Library contains several [examples](https://github.com/j123b567/scpi-parser/tree/master/examples) of usage but please note, that this code is just for educational purpose and not production ready.
Examples are from several contributors and they are not tested and it is also not known, if they really work or can compile at all.
The core library itself is well tested and has more then 93% of the code covered by unit tests and integration tests and tries to be SCPI-99 compliant as much as possible.
About
--------
[SCPI](http://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments) Parser library aims to provide parsing ability of SCPI commands on **instrument side**. All commands are defined by its patterns eg: `"STATus:QUEStionable:EVENt?"`.
Source codes are published with open source Simplified BSD license.
Source codes are published with open source BSD 2-Clause License.
SCPI parser library is based on these standards
* [SCPI-99](http://www.ivifoundation.org/docs/scpi-99.pdf)
* [SCPI-99](https://www.ivifoundation.org/downloads/SCPI/scpi-99.pdf)
* [IEEE 488.2-2004](http://dx.doi.org/10.1109/IEEESTD.2004.95390)
@@ -26,27 +36,26 @@
**Supported command patterns**
<table>
<tr><th>Feature<th>Pattern example</tr>
<tr><td>Short and long form<td>`MEASure` means `MEAS` or `MEASURE` command</tr>
<tr><td>Common command<td>`*CLS`</td>
<tr><td>Compound command<td>`CONFigure:VOLTage`<tr>
<tr><td>Query command<td>`MEASure:VOLTage?`, `*IDN?`</tr>
<tr><td>Optional keywords<td>`MEASure:VOLTage[:DC]?`</tr>
<tr><td>Numeric keyword suffix<br>Multiple identical capabilities<td>`OUTput#:FREQunecy`</tr>
<tr><td>Short and long form<td><code>MEASure</code> means <code>MEAS</code> or <code>MEASURE</code> command</tr>
<tr><td>Common command<td><code>*CLS</code></td>
<tr><td>Compound command<td><code>CONFigure:VOLTage</code><tr>
<tr><td>Query command<td><code>MEASure:VOLTage?</code>, <code>*IDN?</code></tr>
<tr><td>Optional keywords<td><code>MEASure:VOLTage[:DC]?</code></tr>
<tr><td>Numeric keyword suffix<br>Multiple identical capabilities<td><code>OUTput#:FREQuency</code></tr>
</table>
**Supported parameter types**
<table>
<tr><th>Type<th>Example</tr>
<tr><td>Decimal<td>`10`, `10.5`</tr>
<tr><td>Decimal with suffix<td>`-5.5 V`, `1.5 KOHM`</tr>
<tr><td>Hexadecimal<td>`#HFF`</tr>
<tr><td>Octal<td>`#Q77`</tr>
<tr><td>Binary<td>`#B11`</tr>
<tr><td>String<td>`"text"`, `'text'`</tr>
<tr><td>Arbitrary block<td>`#12AB`</tr>
<tr><td>Program expression<td>`(1)`</tr>
<tr><td>Character data<td>`MINimum`, `DEFault`, `INFinity`</tr>
<tr><td>Decimal<td><code>10</code>, <code>10.5</code></tr>
<tr><td>Decimal with suffix<td><code>-5.5 V</code>, <code>1.5 KOHM</code></tr>
<tr><td>Hexadecimal<td><code>#HFF</code></tr>
<tr><td>Octal<td><code>#Q77</code></tr>
<tr><td>Binary<td><code>#B11</code></tr>
<tr><td>String<td><code>"text"</code>, <code>'text'</code></tr>
<tr><td>Arbitrary block<td><code>#12AB</code></tr>
<tr><td>Program expression<td><code>(1)</code></tr>
<tr><td>Numeric list<td><code>(1,2:50,80)</code></tr>
<tr><td>Channel list<td><code>(@1!2:3!4,5!6)</code></tr>
<tr><td>Character data<td><code>MINimum</code>, <code>DEFault</code>, <code>INFinity</code></tr>
</table>
[![travis build](https://travis-ci.org/j123b567/scpi-parser.svg?branch=master)](https://travis-ci.org/j123b567/scpi-parser)