parent
2e43307477
commit
a351127fbc
@ -0,0 +1,182 @@ |
|||||||
|
<?php |
||||||
|
$x = <<<FOO |
||||||
|
-100 Command error |
||||||
|
-101 Invalid character |
||||||
|
-102 Syntax error |
||||||
|
-103 Invalid separator |
||||||
|
-104 Data type error |
||||||
|
-105 GET not allowed |
||||||
|
-108 Parameter not allowed |
||||||
|
-109 Missing parameter |
||||||
|
|
||||||
|
-110 Command header error |
||||||
|
-111 Header separator error |
||||||
|
-112 Program mnemonic too long |
||||||
|
-113 Undefined header |
||||||
|
-114 Header suffix out of range |
||||||
|
-115 Unexpected number of parameters |
||||||
|
|
||||||
|
-120 Numeric data error |
||||||
|
-121 Invalid character in number |
||||||
|
-123 Exponent too large |
||||||
|
-124 Too many digits |
||||||
|
-128 Numeric data not allowed |
||||||
|
|
||||||
|
-130 Suffix error |
||||||
|
-131 Invalid suffix |
||||||
|
-134 Suffix too long |
||||||
|
-138 Suffix not allowed |
||||||
|
|
||||||
|
-140 Character data error |
||||||
|
-141 Invalid character data |
||||||
|
-144 Character data too long |
||||||
|
-148 Character data not allowed |
||||||
|
|
||||||
|
-150 String data error |
||||||
|
-151 Invalid string data |
||||||
|
-158 String data not allowed |
||||||
|
|
||||||
|
-160 Block data error |
||||||
|
-161 Invalid block data |
||||||
|
-168 Block data not allowed |
||||||
|
|
||||||
|
-170 Expression error |
||||||
|
-171 Invalid expression |
||||||
|
-178 Expression data not allowed |
||||||
|
|
||||||
|
-180 Macro error |
||||||
|
-181 Invalid outside macro definition |
||||||
|
-183 Invalid inside macro definition |
||||||
|
-184 Macro parameter error |
||||||
|
|
||||||
|
|
||||||
|
-200 Execution error |
||||||
|
-201 Invalid while in local |
||||||
|
-202 Settings lost due to rtl |
||||||
|
-203 Command protected |
||||||
|
|
||||||
|
-210 Trigger error |
||||||
|
-211 Trigger ignored |
||||||
|
-212 Arm ignored |
||||||
|
-213 Init ignored |
||||||
|
-214 Trigger deadlock |
||||||
|
-215 Arm deadlock |
||||||
|
|
||||||
|
-220 Parameter error |
||||||
|
-221 Settings conflict |
||||||
|
-222 Data out of range |
||||||
|
-223 Too much data |
||||||
|
-224 Illegal parameter value |
||||||
|
-225 Out of memory |
||||||
|
-226 Lists not same length |
||||||
|
|
||||||
|
-230 Data corrupt or stale |
||||||
|
-231 Data questionable |
||||||
|
-232 Invalid format |
||||||
|
-233 Invalid version |
||||||
|
|
||||||
|
-240 Hardware error |
||||||
|
-241 Hardware missing |
||||||
|
|
||||||
|
-250 Mass storage error |
||||||
|
-251 Missing mass storage |
||||||
|
-252 Missing media |
||||||
|
-253 Corrupt media |
||||||
|
-254 Media full |
||||||
|
-255 Directory full |
||||||
|
-256 File name not found |
||||||
|
-257 File name error |
||||||
|
-258 Media protected |
||||||
|
|
||||||
|
-260 Expression error |
||||||
|
-261 Math error in expression |
||||||
|
|
||||||
|
-270 Macro error |
||||||
|
-271 Macro syntax error |
||||||
|
-272 Macro execution error |
||||||
|
-273 Illegal macro label |
||||||
|
-274 Macro parameter error |
||||||
|
-275 Macro definition too long |
||||||
|
-276 Macro recursion error |
||||||
|
-277 Macro redefinition not allowed |
||||||
|
-278 Macro header not found |
||||||
|
|
||||||
|
-280 Program error |
||||||
|
-281 Cannot create program |
||||||
|
-282 Illegal program name |
||||||
|
-283 Illegal variable name |
||||||
|
-284 Program currently running |
||||||
|
-285 Program syntax error |
||||||
|
-286 Program runtime error |
||||||
|
|
||||||
|
-290 Memory use error |
||||||
|
-291 Out of memory |
||||||
|
-292 Referenced name does not exist |
||||||
|
-293 Referenced name already exists |
||||||
|
-294 Incompatible type |
||||||
|
|
||||||
|
|
||||||
|
-300 Device-specific error |
||||||
|
|
||||||
|
-310 System error |
||||||
|
-311 Memory error |
||||||
|
-312 PUD memory lost |
||||||
|
-313 Calibration memory lost |
||||||
|
-314 Save/recall memory lost |
||||||
|
-315 Configuration memory lost |
||||||
|
|
||||||
|
-320 Storage fault |
||||||
|
-321 Out of memory |
||||||
|
|
||||||
|
-330 Self-test failed |
||||||
|
|
||||||
|
-340 Calibration failed |
||||||
|
|
||||||
|
-350 Queue overflow |
||||||
|
|
||||||
|
-360 Communication error |
||||||
|
-361 Parity error in program message |
||||||
|
-362 Framing error in program message |
||||||
|
-363 Input buffer overrun |
||||||
|
-365 Time out error |
||||||
|
|
||||||
|
|
||||||
|
-400 Query error |
||||||
|
-410 Query INTERRUPTED |
||||||
|
-420 Query UNTERMINATED |
||||||
|
-430 Query DEADLOCKED |
||||||
|
-440 Query UNTERMINATED after indefinite response |
||||||
|
|
||||||
|
-500 Power on |
||||||
|
-600 User request |
||||||
|
-700 Request control |
||||||
|
-800 Operation complete |
||||||
|
FOO; |
||||||
|
|
||||||
|
$lines = explode("\n", $x); |
||||||
|
|
||||||
|
$prefixes = [ |
||||||
|
-100 => 'CMD', |
||||||
|
-200 => 'EXE', |
||||||
|
-300 => 'DEV', |
||||||
|
]; |
||||||
|
|
||||||
|
foreach($lines as $a) |
||||||
|
{ |
||||||
|
$a = trim($a); |
||||||
|
if($a == '') continue; |
||||||
|
|
||||||
|
list($num, $name) = explode("\t", $a); |
||||||
|
|
||||||
|
$pfx = ''; $ii=($num - $num%100); |
||||||
|
if (isset($prefixes[$ii]) && $num%100!=0) { |
||||||
|
$pfx = $prefixes[$ii].'_'; |
||||||
|
} |
||||||
|
|
||||||
|
$enum = str_replace(' ', '_', strtoupper($name)); |
||||||
|
$enum = 'E_' . $pfx . preg_replace("/[^A-Z0-9_]/", "_", $enum); |
||||||
|
|
||||||
|
//echo "\t$enum = $num,\n"; |
||||||
|
|
||||||
|
echo "\t{"."$num, \"$name\"},\n"; |
||||||
|
} |
@ -0,0 +1,187 @@ |
|||||||
|
#include <stdint.h> |
||||||
|
#include <stdbool.h> |
||||||
|
#include <stdlib.h> |
||||||
|
#include <stdio.h> |
||||||
|
#include <string.h> |
||||||
|
|
||||||
|
#include "scpi_errors.h" |
||||||
|
|
||||||
|
typedef struct { |
||||||
|
const int16_t errno; |
||||||
|
const char *msg; |
||||||
|
} SCPI_error_desc; |
||||||
|
|
||||||
|
static const SCPI_error_desc error_table[] = { |
||||||
|
{ -100, "Command error"}, |
||||||
|
{ -101, "Invalid character"}, |
||||||
|
{ -102, "Syntax error"}, |
||||||
|
{ -103, "Invalid separator"}, |
||||||
|
{ -104, "Data type error"}, |
||||||
|
{ -105, "GET not allowed"}, |
||||||
|
{ -108, "Parameter not allowed"}, |
||||||
|
{ -109, "Missing parameter"}, |
||||||
|
{ -110, "Command header error"}, |
||||||
|
{ -111, "Header separator error"}, |
||||||
|
{ -112, "Program mnemonic too long"}, |
||||||
|
{ -113, "Undefined header"}, |
||||||
|
{ -114, "Header suffix out of range"}, |
||||||
|
{ -115, "Unexpected number of parameters"}, |
||||||
|
{ -120, "Numeric data error"}, |
||||||
|
{ -121, "Invalid character in number"}, |
||||||
|
{ -123, "Exponent too large"}, |
||||||
|
{ -124, "Too many digits"}, |
||||||
|
{ -128, "Numeric data not allowed"}, |
||||||
|
{ -130, "Suffix error"}, |
||||||
|
{ -131, "Invalid suffix"}, |
||||||
|
{ -134, "Suffix too long"}, |
||||||
|
{ -138, "Suffix not allowed"}, |
||||||
|
{ -140, "Character data error"}, |
||||||
|
{ -141, "Invalid character data"}, |
||||||
|
{ -144, "Character data too long"}, |
||||||
|
{ -148, "Character data not allowed"}, |
||||||
|
{ -150, "String data error"}, |
||||||
|
{ -151, "Invalid string data"}, |
||||||
|
{ -158, "String data not allowed"}, |
||||||
|
{ -160, "Block data error"}, |
||||||
|
{ -161, "Invalid block data"}, |
||||||
|
{ -168, "Block data not allowed"}, |
||||||
|
{ -170, "Expression error"}, |
||||||
|
{ -171, "Invalid expression"}, |
||||||
|
{ -178, "Expression data not allowed"}, |
||||||
|
{ -180, "Macro error"}, |
||||||
|
{ -181, "Invalid outside macro definition"}, |
||||||
|
{ -183, "Invalid inside macro definition"}, |
||||||
|
{ -184, "Macro parameter error"}, |
||||||
|
{ -200, "Execution error"}, |
||||||
|
{ -201, "Invalid while in local"}, |
||||||
|
{ -202, "Settings lost due to rtl"}, |
||||||
|
{ -203, "Command protected"}, |
||||||
|
{ -210, "Trigger error"}, |
||||||
|
{ -211, "Trigger ignored"}, |
||||||
|
{ -212, "Arm ignored"}, |
||||||
|
{ -213, "Init ignored"}, |
||||||
|
{ -214, "Trigger deadlock"}, |
||||||
|
{ -215, "Arm deadlock"}, |
||||||
|
{ -220, "Parameter error"}, |
||||||
|
{ -221, "Settings conflict"}, |
||||||
|
{ -222, "Data out of range"}, |
||||||
|
{ -223, "Too much data"}, |
||||||
|
{ -224, "Illegal parameter value"}, |
||||||
|
{ -225, "Out of memory"}, |
||||||
|
{ -226, "Lists not same length"}, |
||||||
|
{ -230, "Data corrupt or stale"}, |
||||||
|
{ -231, "Data questionable"}, |
||||||
|
{ -232, "Invalid format"}, |
||||||
|
{ -233, "Invalid version"}, |
||||||
|
{ -240, "Hardware error"}, |
||||||
|
{ -241, "Hardware missing"}, |
||||||
|
{ -250, "Mass storage error"}, |
||||||
|
{ -251, "Missing mass storage"}, |
||||||
|
{ -252, "Missing media"}, |
||||||
|
{ -253, "Corrupt media"}, |
||||||
|
{ -254, "Media full"}, |
||||||
|
{ -255, "Directory full"}, |
||||||
|
{ -256, "File name not found"}, |
||||||
|
{ -257, "File name error"}, |
||||||
|
{ -258, "Media protected"}, |
||||||
|
{ -260, "Expression error"}, |
||||||
|
{ -261, "Math error in expression"}, |
||||||
|
{ -270, "Macro error"}, |
||||||
|
{ -271, "Macro syntax error"}, |
||||||
|
{ -272, "Macro execution error"}, |
||||||
|
{ -273, "Illegal macro label"}, |
||||||
|
{ -274, "Macro parameter error"}, |
||||||
|
{ -275, "Macro definition too long"}, |
||||||
|
{ -276, "Macro recursion error"}, |
||||||
|
{ -277, "Macro redefinition not allowed"}, |
||||||
|
{ -278, "Macro header not found"}, |
||||||
|
{ -280, "Program error"}, |
||||||
|
{ -281, "Cannot create program"}, |
||||||
|
{ -282, "Illegal program name"}, |
||||||
|
{ -283, "Illegal variable name"}, |
||||||
|
{ -284, "Program currently running"}, |
||||||
|
{ -285, "Program syntax error"}, |
||||||
|
{ -286, "Program runtime error"}, |
||||||
|
{ -290, "Memory use error"}, |
||||||
|
{ -291, "Out of memory"}, |
||||||
|
{ -292, "Referenced name does not exist"}, |
||||||
|
{ -293, "Referenced name already exists"}, |
||||||
|
{ -294, "Incompatible type"}, |
||||||
|
{ -300, "Device-specific error"}, |
||||||
|
{ -310, "System error"}, |
||||||
|
{ -311, "Memory error"}, |
||||||
|
{ -312, "PUD memory lost"}, |
||||||
|
{ -313, "Calibration memory lost"}, |
||||||
|
{ -314, "Save/recall memory lost"}, |
||||||
|
{ -315, "Configuration memory lost"}, |
||||||
|
{ -320, "Storage fault"}, |
||||||
|
{ -321, "Out of memory"}, |
||||||
|
{ -330, "Self-test failed"}, |
||||||
|
{ -340, "Calibration failed"}, |
||||||
|
{ -350, "Queue overflow"}, |
||||||
|
{ -360, "Communication error"}, |
||||||
|
{ -361, "Parity error in program message"}, |
||||||
|
{ -362, "Framing error in program message"}, |
||||||
|
{ -363, "Input buffer overrun"}, |
||||||
|
{ -365, "Time out error"}, |
||||||
|
{ -400, "Query error"}, |
||||||
|
{ -410, "Query INTERRUPTED"}, |
||||||
|
{ -420, "Query UNTERMINATED"}, |
||||||
|
{ -430, "Query DEADLOCKED"}, |
||||||
|
{ -440, "Query UNTERMINATED after indefinite response"}, |
||||||
|
{ -500, "Power on"}, |
||||||
|
{ -600, "User request"}, |
||||||
|
{ -700, "Request control"}, |
||||||
|
{ -800, "Operation complete"}, |
||||||
|
{0} |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
const char * scpi_error_message(SCPI_error_t errno) |
||||||
|
{ |
||||||
|
for (int i = 0; error_table[i].errno != 0; i++) { |
||||||
|
if (error_table[i].errno == errno) { |
||||||
|
return error_table[i].msg; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return NULL; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void scpi_error_string(char *buffer, SCPI_error_t errno, const char *extra) |
||||||
|
{ |
||||||
|
const char *msg = scpi_error_message(errno); |
||||||
|
|
||||||
|
// len - total length, offs - current segment length
|
||||||
|
int len, offs; |
||||||
|
|
||||||
|
len = offs = sprintf(buffer, "%d,\"", errno); // <code>,"
|
||||||
|
buffer += offs; |
||||||
|
|
||||||
|
if (msg == NULL) { |
||||||
|
msg = "Unknown error"; |
||||||
|
} |
||||||
|
|
||||||
|
offs = sprintf(buffer, "%s", msg); // Error message
|
||||||
|
len += offs; |
||||||
|
buffer += offs; |
||||||
|
|
||||||
|
if (extra != NULL) { |
||||||
|
// extra info
|
||||||
|
offs = sprintf(buffer, "; "); // ;_
|
||||||
|
len += offs; |
||||||
|
buffer += offs; |
||||||
|
|
||||||
|
// copy in the extra string
|
||||||
|
int ll = 250 - len - 2; |
||||||
|
int xlen = strlen(extra); |
||||||
|
if (ll > xlen) ll = xlen; |
||||||
|
strncpy(buffer, extra, ll); // Extra msg
|
||||||
|
|
||||||
|
len += ll; |
||||||
|
buffer += ll; |
||||||
|
} |
||||||
|
|
||||||
|
sprintf(buffer, "\""); // "
|
||||||
|
} |
@ -0,0 +1,140 @@ |
|||||||
|
#pragma once |
||||||
|
#include <stdint.h> |
||||||
|
#include <stdbool.h> |
||||||
|
|
||||||
|
// SCPI error constants
|
||||||
|
typedef enum { |
||||||
|
E_COMMAND_ERROR = -100, |
||||||
|
E_CMD_INVALID_CHARACTER = -101, |
||||||
|
E_CMD_SYNTAX_ERROR = -102, |
||||||
|
E_CMD_INVALID_SEPARATOR = -103, |
||||||
|
E_CMD_DATA_TYPE_ERROR = -104, |
||||||
|
E_CMD_GET_NOT_ALLOWED = -105, |
||||||
|
E_CMD_PARAMETER_NOT_ALLOWED = -108, |
||||||
|
E_CMD_MISSING_PARAMETER = -109, |
||||||
|
E_CMD_COMMAND_HEADER_ERROR = -110, |
||||||
|
E_CMD_HEADER_SEPARATOR_ERROR = -111, |
||||||
|
E_CMD_PROGRAM_MNEMONIC_TOO_LONG = -112, |
||||||
|
E_CMD_UNDEFINED_HEADER = -113, |
||||||
|
E_CMD_HEADER_SUFFIX_OUT_OF_RANGE = -114, |
||||||
|
E_CMD_UNEXPECTED_NUMBER_OF_PARAMETERS = -115, |
||||||
|
E_CMD_NUMERIC_DATA_ERROR = -120, |
||||||
|
E_CMD_INVALID_CHARACTER_IN_NUMBER = -121, |
||||||
|
E_CMD_EXPONENT_TOO_LARGE = -123, |
||||||
|
E_CMD_TOO_MANY_DIGITS = -124, |
||||||
|
E_CMD_NUMERIC_DATA_NOT_ALLOWED = -128, |
||||||
|
E_CMD_SUFFIX_ERROR = -130, |
||||||
|
E_CMD_INVALID_SUFFIX = -131, |
||||||
|
E_CMD_SUFFIX_TOO_LONG = -134, |
||||||
|
E_CMD_SUFFIX_NOT_ALLOWED = -138, |
||||||
|
E_CMD_CHARACTER_DATA_ERROR = -140, |
||||||
|
E_CMD_INVALID_CHARACTER_DATA = -141, |
||||||
|
E_CMD_CHARACTER_DATA_TOO_LONG = -144, |
||||||
|
E_CMD_CHARACTER_DATA_NOT_ALLOWED = -148, |
||||||
|
E_CMD_STRING_DATA_ERROR = -150, |
||||||
|
E_CMD_INVALID_STRING_DATA = -151, |
||||||
|
E_CMD_STRING_DATA_NOT_ALLOWED = -158, |
||||||
|
E_CMD_BLOCK_DATA_ERROR = -160, |
||||||
|
E_CMD_INVALID_BLOCK_DATA = -161, |
||||||
|
E_CMD_BLOCK_DATA_NOT_ALLOWED = -168, |
||||||
|
E_CMD_EXPRESSION_ERROR = -170, |
||||||
|
E_CMD_INVALID_EXPRESSION = -171, |
||||||
|
E_CMD_EXPRESSION_DATA_NOT_ALLOWED = -178, |
||||||
|
E_CMD_MACRO_ERROR = -180, |
||||||
|
E_CMD_INVALID_OUTSIDE_MACRO_DEFINITION = -181, |
||||||
|
E_CMD_INVALID_INSIDE_MACRO_DEFINITION = -183, |
||||||
|
E_CMD_MACRO_PARAMETER_ERROR = -184, |
||||||
|
E_EXECUTION_ERROR = -200, |
||||||
|
E_EXE_INVALID_WHILE_IN_LOCAL = -201, |
||||||
|
E_EXE_SETTINGS_LOST_DUE_TO_RTL = -202, |
||||||
|
E_EXE_COMMAND_PROTECTED = -203, |
||||||
|
E_EXE_TRIGGER_ERROR = -210, |
||||||
|
E_EXE_TRIGGER_IGNORED = -211, |
||||||
|
E_EXE_ARM_IGNORED = -212, |
||||||
|
E_EXE_INIT_IGNORED = -213, |
||||||
|
E_EXE_TRIGGER_DEADLOCK = -214, |
||||||
|
E_EXE_ARM_DEADLOCK = -215, |
||||||
|
E_EXE_PARAMETER_ERROR = -220, |
||||||
|
E_EXE_SETTINGS_CONFLICT = -221, |
||||||
|
E_EXE_DATA_OUT_OF_RANGE = -222, |
||||||
|
E_EXE_TOO_MUCH_DATA = -223, |
||||||
|
E_EXE_ILLEGAL_PARAMETER_VALUE = -224, |
||||||
|
E_EXE_OUT_OF_MEMORY = -225, |
||||||
|
E_EXE_LISTS_NOT_SAME_LENGTH = -226, |
||||||
|
E_EXE_DATA_CORRUPT_OR_STALE = -230, |
||||||
|
E_EXE_DATA_QUESTIONABLE = -231, |
||||||
|
E_EXE_INVALID_FORMAT = -232, |
||||||
|
E_EXE_INVALID_VERSION = -233, |
||||||
|
E_EXE_HARDWARE_ERROR = -240, |
||||||
|
E_EXE_HARDWARE_MISSING = -241, |
||||||
|
E_EXE_MASS_STORAGE_ERROR = -250, |
||||||
|
E_EXE_MISSING_MASS_STORAGE = -251, |
||||||
|
E_EXE_MISSING_MEDIA = -252, |
||||||
|
E_EXE_CORRUPT_MEDIA = -253, |
||||||
|
E_EXE_MEDIA_FULL = -254, |
||||||
|
E_EXE_DIRECTORY_FULL = -255, |
||||||
|
E_EXE_FILE_NAME_NOT_FOUND = -256, |
||||||
|
E_EXE_FILE_NAME_ERROR = -257, |
||||||
|
E_EXE_MEDIA_PROTECTED = -258, |
||||||
|
E_EXE_EXPRESSION_ERROR = -260, |
||||||
|
E_EXE_MATH_ERROR_IN_EXPRESSION = -261, |
||||||
|
E_EXE_MACRO_ERROR = -270, |
||||||
|
E_EXE_MACRO_SYNTAX_ERROR = -271, |
||||||
|
E_EXE_MACRO_EXECUTION_ERROR = -272, |
||||||
|
E_EXE_ILLEGAL_MACRO_LABEL = -273, |
||||||
|
E_EXE_MACRO_PARAMETER_ERROR = -274, |
||||||
|
E_EXE_MACRO_DEFINITION_TOO_LONG = -275, |
||||||
|
E_EXE_MACRO_RECURSION_ERROR = -276, |
||||||
|
E_EXE_MACRO_REDEFINITION_NOT_ALLOWED = -277, |
||||||
|
E_EXE_MACRO_HEADER_NOT_FOUND = -278, |
||||||
|
E_EXE_PROGRAM_ERROR = -280, |
||||||
|
E_EXE_CANNOT_CREATE_PROGRAM = -281, |
||||||
|
E_EXE_ILLEGAL_PROGRAM_NAME = -282, |
||||||
|
E_EXE_ILLEGAL_VARIABLE_NAME = -283, |
||||||
|
E_EXE_PROGRAM_CURRENTLY_RUNNING = -284, |
||||||
|
E_EXE_PROGRAM_SYNTAX_ERROR = -285, |
||||||
|
E_EXE_PROGRAM_RUNTIME_ERROR = -286, |
||||||
|
E_EXE_MEMORY_USE_ERROR = -290, |
||||||
|
E_EXE_OUT_OF_MEMORY_291 = -291, |
||||||
|
E_EXE_REFERENCED_NAME_DOES_NOT_EXIST = -292, |
||||||
|
E_EXE_REFERENCED_NAME_ALREADY_EXISTS = -293, |
||||||
|
E_EXE_INCOMPATIBLE_TYPE = -294, |
||||||
|
E_DEVICE_SPECIFIC_ERROR = -300, |
||||||
|
E_DEV_SYSTEM_ERROR = -310, |
||||||
|
E_DEV_MEMORY_ERROR = -311, |
||||||
|
E_DEV_PUD_MEMORY_LOST = -312, |
||||||
|
E_DEV_CALIBRATION_MEMORY_LOST = -313, |
||||||
|
E_DEV_SAVE_RECALL_MEMORY_LOST = -314, |
||||||
|
E_DEV_CONFIGURATION_MEMORY_LOST = -315, |
||||||
|
E_DEV_STORAGE_FAULT = -320, |
||||||
|
E_DEV_OUT_OF_MEMORY = -321, |
||||||
|
E_DEV_SELF_TEST_FAILED = -330, |
||||||
|
E_DEV_CALIBRATION_FAILED = -340, |
||||||
|
E_DEV_QUEUE_OVERFLOW = -350, |
||||||
|
E_DEV_COMMUNICATION_ERROR = -360, |
||||||
|
E_DEV_PARITY_ERROR_IN_PROGRAM_MESSAGE = -361, |
||||||
|
E_DEV_FRAMING_ERROR_IN_PROGRAM_MESSAGE = -362, |
||||||
|
E_DEV_INPUT_BUFFER_OVERRUN = -363, |
||||||
|
E_DEV_TIME_OUT_ERROR = -365, |
||||||
|
E_QUERY_ERROR = -400, |
||||||
|
E_QUERY_INTERRUPTED = -410, |
||||||
|
E_QUERY_UNTERMINATED = -420, |
||||||
|
E_QUERY_DEADLOCKED = -430, |
||||||
|
E_QUERY_UNTERMINATED_AFTER_INDEFINITE_RESPONSE = -440, |
||||||
|
E_POWER_ON = -500, |
||||||
|
E_USER_REQUEST = -600, |
||||||
|
E_REQUEST_CONTROL = -700, |
||||||
|
E_OPERATION_COMPLETE = -800, |
||||||
|
} SCPI_error_t; |
||||||
|
|
||||||
|
|
||||||
|
/** Get SCPI error message (alone) */ |
||||||
|
const char *scpi_error_message(SCPI_error_t errno); |
||||||
|
|
||||||
|
/**
|
||||||
|
* Get SCPI error string for reporting: |
||||||
|
* <code>,"<message>[; <extra>]" |
||||||
|
* |
||||||
|
* extra can be NULL to skip the optional part. |
||||||
|
*/ |
||||||
|
void scpi_error_string(char *buffer, SCPI_error_t errno, const char *extra); |
Loading…
Reference in new issue