| | |
| | | #endif |
| | | |
| | | #if !HAVE_STDBOOL |
| | | typedef unsigned char bool; |
| | | typedef unsigned char bool; |
| | | #endif |
| | | |
| | | #ifndef FALSE |
| | | #define FALSE 0 |
| | | #define FALSE 0 |
| | | #endif |
| | | #ifndef TRUE |
| | | #define TRUE (!FALSE) |
| | | #define TRUE (!FALSE) |
| | | #endif |
| | | |
| | | /* basic data types */ |
| | |
| | | |
| | | typedef scpi_result_t(*scpi_command_callback_t)(scpi_t *); |
| | | |
| | | /* scpi error queue */ |
| | | typedef void * scpi_error_queue_t; |
| | | struct _scpi_fifo_t { |
| | | int16_t wr; |
| | | int16_t rd; |
| | | int16_t count; |
| | | int16_t size; |
| | | int16_t * data; |
| | | }; |
| | | typedef struct _scpi_fifo_t scpi_fifo_t; |
| | | |
| | | /* scpi units */ |
| | | enum _scpi_unit_t { |
| | |
| | | |
| | | struct _scpi_number_parameter_t { |
| | | scpi_bool_t special; |
| | | |
| | | union { |
| | | double value; |
| | | int32_t tag; |
| | |
| | | struct _scpi_command_t { |
| | | const char * pattern; |
| | | scpi_command_callback_t callback; |
| | | #if USE_COMMAND_TAGS |
| | | int32_t tag; |
| | | #endif /* USE_COMMAND_TAGS */ |
| | | }; |
| | | |
| | | struct _scpi_interface_t { |
| | |
| | | int_fast16_t output_count; |
| | | int_fast16_t input_count; |
| | | scpi_bool_t cmd_error; |
| | | scpi_error_queue_t error_queue; |
| | | scpi_reg_val_t * registers; |
| | | scpi_fifo_t error_queue; |
| | | scpi_reg_val_t registers[SCPI_REG_COUNT]; |
| | | const scpi_unit_def_t * units; |
| | | void * user_context; |
| | | scpi_parser_state_t parser_state; |
| | | const char * idn[4]; |
| | | size_t arbitrary_reminding; |
| | | }; |
| | | |
| | | enum _scpi_array_format_t { |
| | | SCPI_FORMAT_ASCII = 0, |
| | | SCPI_FORMAT_NORMAL = 1, |
| | | SCPI_FORMAT_SWAPPED = 2, |
| | | SCPI_FORMAT_BIGENDIAN = SCPI_FORMAT_NORMAL, |
| | | SCPI_FORMAT_LITTLEENDIAN = SCPI_FORMAT_SWAPPED, |
| | | }; |
| | | typedef enum _scpi_array_format_t scpi_array_format_t; |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | | #endif |