| | |
| | | * @param context - scpi context |
| | | */ |
| | | void SCPI_ErrorClear(scpi_context_t * context) { |
| | | (void)context; |
| | | (void) context; |
| | | scpi_err = 0; |
| | | } |
| | | |
| | |
| | | */ |
| | | void SCPI_ErrorPush(scpi_context_t * context, int16_t err) { |
| | | scpi_err = err; |
| | | |
| | | // Command error (e.g. syntax error) |
| | | |
| | | // Command error (e.g. syntax error) |
| | | if ((err < -101) && (err > -158)) { |
| | | SCPI_RegSetBits(SCPI_REG_ESR, ESR_CER); |
| | | } |
| | |
| | | // Device Dependent Error |
| | | if ((err < -501) && (err > -748)) { |
| | | SCPI_RegSetBits(SCPI_REG_ESR, ESR_DER); |
| | | } |
| | | |
| | | if (context && context->interface && context->interface->error) { |
| | | context->interface->error(context, err); |
| | | } |
| | | |
| | | if (context) { |
| | | if (context->interface && context->interface->error) { |
| | | context->interface->error(context, err); |
| | | } |
| | | |
| | | context->error = TRUE; |
| | | } |
| | | } |
| | | |
| | |
| | | * @return error number |
| | | */ |
| | | int16_t SCPI_ErrorPop(scpi_context_t * context) { |
| | | (void)context; |
| | | (void) context; |
| | | int16_t result = scpi_err; |
| | | scpi_err = 0; |
| | | return result; |
| | |
| | | * @return Error string representation |
| | | */ |
| | | const char * SCPI_ErrorTranslate(int16_t err) { |
| | | switch(err) { |
| | | switch (err) { |
| | | case 0: return "No error"; |
| | | case SCPI_ERROR_SYNTAX: return "Syntax error"; |
| | | case SCPI_ERROR_INVALID_SEPARATOR: return "Invalid separator"; |