scpi_errs.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #ifndef SCPI_ERRS_H
  2. #define SCPI_ERRS_H
  3. //
  4. // 22/01/2021
  5. // Alexander Sychov
  6. // SCPI Error codes and classes
  7. //
  8. // References:
  9. // [1] SCPI Standard "1999 SCPI Syntax & Style, Standard Commands for Programmable Instruments" VERSION 1999.0 May, 1999
  10. // [2] IEEE 488.2 Standard, revision IEEE Std 488.2-1987 (1992)
  11. // "IEEE Standard Codes, Formats, Protocols, and Common Commands for Use With IEEE Std 488.1-1987, IEEE
  12. // Standard Digital Interface for Programmable Instrumentation"
  13. //
  14. #define SCPI_ERROR_STATE SCPI_ERROR_SUCCESS // Enter error state without generating message
  15. extern const int SCPI_ERROR_SUCCESS; // Success code
  16. extern const char SCPI_ERROR_NO[];
  17. // @SCPI_ERROR_COMMAND_ERROR - SCPI Common (Class) Error
  18. // "21.8.9 Command Error", [1]
  19. // "11.5.1.1.4 Bit 5 - Command ERROR (CME)", [2]
  20. extern const int SCPI_ERROR_COMMAND_ERROR;
  21. extern const char SCPI_ERROR_COMMAND_ERROR_MSG[];
  22. #define SCPI_ERROR_CLASS_COMMAND (-100l)
  23. extern const int SCPI_ERROR_INVALID_CHARACTER;
  24. extern const char SCPI_ERROR_INVALID_CHARACTER_MSG[];
  25. extern const int SCPI_ERROR_SYNTAX_ERROR;
  26. extern const char SCPI_ERROR_SYNTAX_ERROR_MSG[];
  27. extern const char SCPI_ERROR_SYNTAX_ERROR_PARAM_MSG[];
  28. extern const int SCPI_ERROR_INVSEP_ERROR;
  29. extern const char SCPI_ERROR_INVSEP_ERROR_MSG[];
  30. extern const int SCPI_ERROR_PARAMETER_NOTALLOWED;
  31. extern const char SCPI_ERROR_PARAMETER_NOTALLOWED_MSG[];
  32. extern const int SCPI_ERROR_MISSING_PARAMETER;
  33. extern const char SCPI_ERROR_MISSING_PARAMETER_MSG[];
  34. extern const int SCPI_ERROR_COMMAND_HEADER;
  35. extern const char SCPI_ERROR_COMMAND_HEADER_MSG[];
  36. extern const int SCPI_ERROR_COMMAND_HEADER_SEP;
  37. extern const char SCPI_ERROR_COMMAND_HEADER_SEP_MSG[];
  38. extern const int SCPI_ERROR_MNEMONIC_TOOLONG;
  39. extern const char SCPI_ERROR_MNEMONIC_TOOLONG_MSG[];
  40. extern const int SCPI_ERROR_UNDEFHEADER_ERROR;
  41. extern const char SCPI_ERROR_UNDEFHEADER_ERROR_MSG[];
  42. extern const int SCPI_ERROR_NUMERIC_DATAERROR;
  43. extern const char SCPI_ERROR_NUMERIC_DATAERROR_MSG[];
  44. extern const int SCPI_ERROR_INVALID_NUMERIC_CHAR;
  45. extern const char SCPI_ERROR_INVALID_NUMERIC_CHAR_MSG[];
  46. extern const int SCPI_ERROR_INVALID_STRINGDATA;
  47. extern const char SCPI_ERROR_INVALID_STRINGDATA_MSG[];
  48. extern const int SCPI_ERROR_INVALID_BLOCKDATA;
  49. extern const char SCPI_ERROR_INVALID_BLOCKDATA_MSG[];
  50. // @SCPI_ERROR_EXECUTION_ERROR - SCPI Common (Class) Error
  51. // "21.8.10 Execution Error", [1]
  52. // "11.5.1.1.5 Bit 4 - Execution ERROR (E)", [2]
  53. extern const int SCPI_ERROR_EXECUTION_ERROR;
  54. extern const char SCPI_ERROR_EXECUTION_ERROR_MSG[];
  55. #define SCPI_ERROR_CLASS_EXECUTION (-200l)
  56. extern const int SCPI_ERROR_DATA_RANGE;
  57. extern const char SCPI_ERROR_DATA_RANGE_MSG[];
  58. extern const int SCPI_ERROR_ILLEGAL_PARAM;
  59. extern const char SCPI_ERROR_ILLEGAL_PARAM_MSG[];
  60. extern const int SCPI_ERROR_PARAMETER_ERROR;
  61. extern const char SCPI_ERROR_PARAMETER_ERROR_MSG[];
  62. extern const int SCPI_ERROR_TRIGGER_IGNORED;
  63. extern const char SCPI_ERROR_TRIGGER_IGNORED_MSG[];
  64. // @SCPI_ERROR_DEVICE_SPECIFIC - SCPI Common (Class) Error
  65. // "21.8.11 Device-Specific Error", [1]
  66. // "11.5.1.1.6 Bit 3 - Device-Specific ERROR (DDE)", [2]
  67. extern const int SCPI_ERROR_DEVICE_SPECIFIC;
  68. extern const char SCPI_ERROR_DEVICE_SPECIFIC_MSG[];
  69. #define SCPI_ERROR_CLASS_DEVICE (-300l)
  70. extern const int SCPI_ERROR_QUEUE_OVERFLOW;
  71. extern const char SCPI_ERROR_QUEUE_OVERFLOW_MSG[];
  72. extern const int SCPI_ERROR_OUTOF_MEMORY;
  73. extern const char SCPI_ERROR_OUTOF_MEMORY_MSG[];
  74. extern const int SCPI_ERROR_INBUF_OVERFLOW;
  75. extern const char SCPI_ERROR_INBUF_OVERFLOW_MSG[];
  76. extern const int SCPI_ERROR_CHRZ_DATA_NOTFOUND;
  77. extern const char SCPI_ERROR_CHRZ_DATA_NOTFOUND_MSG[];
  78. extern const int SCPI_ERROR_THERM_DATA_NOTFOUND;
  79. extern const char SCPI_ERROR_THERM_DATA_NOTFOUND_MSG[];
  80. extern const int SCPI_ERROR_DATA_CORRUPTED;
  81. extern const char SCPI_ERROR_DATA_CORRUPTED_MSG[];
  82. extern const int SCPI_ERROR_TOO_MANY_REQUESTS;
  83. extern const char SCPI_ERROR_TOO_MANY_REQUESTS_MSG[];
  84. extern const int SCPI_ERROR_INTERNAL_DEVICE;
  85. extern const char SCPI_ERROR_INTERNAL_DEVICE_MSG[];
  86. extern const char SCPI_ERROR_INTERNAL_INT_SWITCH_MSG[];
  87. extern const char SCPI_MESSAGE_INTERNAL_INT_SWITCH_MSG[];
  88. // @SCPI_ERROR_QUERY_ERROR - SCPI Common (Class) Error
  89. // "21.8.12 Query Error", [1]
  90. // "11.5.1.1.7 Bit 2 - Query ERROR (QYE)", [2]
  91. extern const int SCPI_ERROR_QUERY_ERROR;
  92. extern const char SCPI_ERROR_QUERY_ERROR_MSG[];
  93. #define SCPI_ERROR_CLASS_QUERY (-400l)
  94. extern const int SCPI_ERROR_POWERON;
  95. extern const char SCPI_ERROR_POWERON_MSG[];
  96. // No error class recognized
  97. #define SCPI_ERROR_CLASS_UNDEFINED (0)
  98. // @SCPI_ERROR_CLASS
  99. // Macro returns the SCPI error class by error code:
  100. // - SCPI_ERROR_CLASS_UNDEFINED
  101. // - SCPI_ERROR_CLASS_COMMAND
  102. // - SCPI_ERROR_CLASS_EXECUTION
  103. // - SCPI_ERROR_CLASS_DEVICE
  104. // - SCPI_ERROR_CLASS_QUERY
  105. #define SCPI_ERROR_CLASS(errCode) scpi_error_class(errCode)
  106. int scpi_error_class( int errCode );
  107. #endif