| | |
| | | #include "scpi/error.h" |
| | | #include "scpi/constants.h" |
| | | |
| | | #include <stdio.h> |
| | | |
| | | /** |
| | | * Update register value |
| | | * @param name - register name |
| | |
| | | scpi_reg_val_t SCPI_RegGet(scpi_t * context, scpi_reg_name_t name) { |
| | | if ((name < SCPI_REG_COUNT) && (context->registers != NULL)) { |
| | | return context->registers[name]; |
| | | } else { |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | static size_t writeControl(scpi_t * context, int ctrl, scpi_reg_val_t val) { |
| | | if (context && context->interface && context->interface->control) { |
| | | return context->interface->control(context, ctrl, val); |
| | | } else { |
| | | return 0; |
| | | } |
| | |
| | | // set updated register value |
| | | context->registers[name] = val; |
| | | |
| | | if (srq && context->interface && context->interface->srq) { |
| | | context->interface->srq(context); |
| | | if (srq) { |
| | | writeControl(context, SCPI_CTRL_SRQ, SCPI_RegGet(context, SCPI_REG_STB)); |
| | | } |
| | | } |
| | | |