SCPI parser library v2
===========
 [](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 BSD 2-Clause License.
SCPI parser library is based on these standards
* [SCPI-99](http://www.ivifoundation.org/docs/scpi-99.pdf)
* [IEEE 488.2-2004](http://dx.doi.org/10.1109/IEEESTD.2004.95390)
**SCPI version compliance**
**Supported command patterns**
Feature | Pattern example |
Short and long form | MEASure means MEAS or MEASURE command |
Common command | *CLS |
Compound command | CONFigure:VOLTage |
Query command | MEASure:VOLTage? , *IDN? |
Optional keywords | MEASure:VOLTage[:DC]? |
Numeric keyword suffix Multiple identical capabilities | OUTput#:FREQuency |
**Supported parameter types**
Type | Example |
Decimal | 10 , 10.5 |
Decimal with suffix | -5.5 V , 1.5 KOHM |
Hexadecimal | #HFF |
Octal | #Q77 |
Binary | #B11 |
String | "text" , 'text' |
Arbitrary block | #12AB |
Program expression | (1) |
Numeric list | (1,2:50,80) |
Channel list | (@1!2:3!4,5!6) |
Character data | MINimum , DEFault , INFinity |