| | |
| | | |
| | | A command pattern is divided by colon ":" to show command hierarchy |
| | | |
| | | Pattern "SYSTem:VERsion?" mathes strings "SYST:version?", "system:ver?", "SYST:VER?", ... |
| | | Pattern "SYSTem:VERsion?" matches strings "SYST:version?", "system:ver?", "SYST:VER?", ... |
| | | |
| | | The SCPI standard also uses brackets "[]" to define optional parts of a command. |
| | | |
| | | Pattern "SYSTem:ERRor[:NEXT]?" mathes "SYST:ERR?", "system:err?" and also "system:error:next?", ... |
| | | Pattern "SYSTem:ERRor[:NEXT]?" matches "SYST:ERR?", "system:err?" and also "system:error:next?", ... |
| | | |
| | | Special character `#` represents number so it is possible to define pattern according to SCPI-99:6.2.5.2 Multiple Identical Capabilities |
| | | |
| | | Pattern "OUTput#:FREQuency" matches "OUT:FREQ" as well as "OUT3:FREQ" and "output10:frequency". |
| | | |
| | | Appropriate numbers are available using function `SCPI_CommandNumbers` |
| | | |
| | | Command callback |
| | | ----------- |
| | |
| | | |
| | | Source codes are divided into a few files to provide better portability to other systems. |
| | | |
| | | - *libscpi/parser.c* - provides the core parser library |
| | | - *libscpi/error.c* - provides basic error handling (error queue of the instrument) |
| | | - *libscpi/ieee488.c* - provides basic implementation of IEEE488.2 mandatory commands |
| | | - *libscpi/minimal.c* - provides basic implementation of SCPI mandatory commands |
| | | - *libscpi/utils.c* - provides string handling routines and conversion routines |
| | | - *libscpi/units.c* - provides handling of special numners (DEF, MIN, MAX, ...) and units |
| | | - *libscpi/fifo.c* - provides basic implementation of error queue FIFO |
| | | - *libscpi/debug.c* - provides debug functions |
| | | - *libscpi/src/parser.c* - provides the core parser library |
| | | - *libscpi/src/error.c* - provides basic error handling (error queue of the instrument) |
| | | - *libscpi/src/ieee488.c* - provides basic implementation of IEEE488.2 mandatory commands |
| | | - *libscpi/src/minimal.c* - provides basic implementation of SCPI mandatory commands |
| | | - *libscpi/src/utils.c* - provides string handling routines and conversion routines |
| | | - *libscpi/src/units.c* - provides handling of special numners (DEF, MIN, MAX, ...) and units |
| | | - *libscpi/src/fifo.c* - provides basic implementation of error queue FIFO |
| | | - *libscpi/src/debug.c* - provides debug functions |
| | | |
| | | - *examples/test-parser* - is the basic non-interactive demo of the parser |
| | | - *examples/test-interactive* - is the basic interactive demo of the parser |
| | |
| | | scpi_interface_t scpi_interface = { |
| | | .write = myWrite, |
| | | .error = NULL, |
| | | .reset = NULL, |
| | | .test = NULL, |
| | | .srq = NULL, |
| | | .reset = NULL, /* Called from SCPI_CoreRst */ |
| | | .test = NULL, /* Called from SCPI_CoreTstQ */ |
| | | .control = NULL, |
| | | }; |
| | | ``` |
| | | |
| | |
| | | A test implementation of function myWrite, which outputs everything to stdout, could be |
| | | |
| | | ```c |
| | | size_t myWrite(scpi_context_t * context, const char * data, size_t len) { |
| | | size_t myWrite(scpi_t * context, const char * data, size_t len) { |
| | | (void) context; |
| | | return fwrite(data, 1, len, stdout); |
| | | } |