SCPI parser and status register model implementation (device side) written in C
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
scpi_parser/README.md

34 lines
1.4 KiB

10 years ago
# SCPI parser
This library provides a simple ("KISS") SCPI implementation for embedded devices (instruments).
The implementation is not 100% complete, but it's sufficient for basic SCPI communication.
## What's supported
- The hierarchical header model (commands with colon)
10 years ago
- Long and short header variants (eg. `SYSTem?`)
- Easy configuration with one const array of structs and callback functions (see `main.c`)
10 years ago
- Semicolon for chaining commands on the same level
- String, Int, Float, Bool arguments
- Block data argument with callback each N received bytes (configurable)
- Status Register model
- Error queue including error messages from the SCPI spec
- All mandatory SCPI commands (headers) are implemented as built-ins
Built-in commands can be overriden in user command array.
See main.c for example of how to use the library.
## What is missing
- <s>Setting error type flags in the ESR when error is added to queue</s>
10 years ago
- <s>There may be some bugs in the status registers (not tested much)</s>
10 years ago
- <s>Character data argument ("string without quotes", enum-like)</s>
10 years ago
- Number units and metric suffixes (k,M,G,m,u,n)
- DEF, MIN, MAX, INF, NINF argument values for numbers
10 years ago
10 years ago
Support for units and "constants" (DEF etc) in numeric fields will need some larger changes to the numeric parser and `SCPI_argval_t`.
10 years ago
10 years ago
Feel free to propose a pull request implementing any missing features.