Commit 3d761ade authored by Vincent Michel's avatar Vincent Michel
Browse files

Add sources

parent ad001eae
"""Error handling."""
import functools
0: ('SUCCESS', None),
1: ('OPEN_FILE', None),
2: ('FILEERR', None),
3: ('NOSECTION', None),
4: ('FORMAT_ERROR', None),
5: ('ILLEGAL_OPERATION', 'Attempted to configure options in an illegal order'),
6: ('FILE_RA', 'File random access unable to find name-value pair'),
7: ('SET_POS', 'Error getting file position.'),
'The decimation read from the hardware does not match a known value'),
202: ('SLOWLEN_OOR', 'Calculated SLOWLEN value is out-of-range'),
203: ('SLOWGAP_OOR', 'Calculated SLOWGAP value is out-of-range'),
204: ('SLOWFILTER_OOR', 'Attempt to set the Peaking or Gap time s.t. P+G>31'),
205: ('FASTLEN_OOR', 'Calculated FASTLEN value is out-of-range'),
206: ('FASTGAP_OOR', 'Calculated FASTGAP value is out-of-range'),
207: ('FASTFILTER_OOR', 'Attempt to set the Peaking or Gap time s.t. P+G>31'),
208: ('BASELINE_OOR', 'Baseline filter length is out-of-range'),
301: ('INITIALIZE', None),
302: ('NO_ALIAS', None),
303: ('ALIAS_EXISTS', None),
304: ('BAD_VALUE', None),
305: ('INFINITE_LOOP', None),
306: ('BAD_NAME', 'Specified name is not valid'),
307: ('BAD_PTRR', 'Specified PTRR is not valid for this alias'),
308: ('ALIAS_SIZE', 'Alias name has too many characters'),
309: ('NO_MODULE', 'Must define at least one module before'),
310: ('BAD_INTERFACE', 'The specified interface does not exist'),
'An interface must defined before more information is specified'),
"Specified information doesn't apply to this interface"),
313: ('NO_CHANNELS', 'Number of channels for this module is set to 0'),
314: ('BAD_CHANNEL', 'Specified channel index is invalid or out-of-range'),
315: ('NO_MODIFY', 'Specified name cannot be modified once set'),
316: ('INVALID_DETCHAN', 'Specified detChan value is invalid'),
317: ('BAD_TYPE', 'The DetChanElement type specified is invalid'),
318: ('WRONG_TYPE', 'This routine only operates on detChans that are sets'),
319: ('UNKNOWN_BOARD', 'Board type is unknown'),
320: ('NO_DETCHANS', 'No detChans are currently defined'),
321: ('NOT_FOUND', 'Unable to locate the Acquisition value requested'),
322: ('PTR_CHECK', 'Pointer is out of synch when it should be valid'),
'FirmwareSet has a FDD file defined and this only works with PTRRs'),
324: ('NO_FILENAME', 'Requested filename information is set to NULL'),
325: ('BAD_INDEX', "User specified an alias index that doesn't exist"),
326: ('NULL_ALIAS', 'Null alias passed into function'),
327: ('NULL_NAME', 'Null name passed into function'),
328: ('NULL_VALUE', 'Null value passed into function'),
329: ('NEEDS_BOARD_TYPE', 'Module needs board_type'),
330: ('UNKNOWN_ITEM', 'Unknown item'),
331: ('TYPE_REDIRECT', 'Module type can not be redefined once set'),
332: ('NO_TMP_PATH', 'No FDD temporary path defined for this firmware.'),
333: ('NULL_PATH', 'Specified path was NULL.'),
350: ('FIRM_BOTH',
'A FirmwareSet may not contain both an FDD and seperate Firmware '
351: ('PTR_OVERLAP',
'Peaking time ranges in the Firmware definitions may not overlap'),
'Either the FiPPI or DSP file is missing from a Firmware element'),
353: ('MISSING_POL', 'A polarity value is missing from a Detector element'),
354: ('MISSING_GAIN', 'A gain value is missing from a Detector element'),
355: ('MISSING_INTERFACE', 'The interface this channel requires is missing'),
'The epp_address information is missing for this channel'),
'The wrong number of channels are assigned to this module'),
358: ('INCOMPLETE_DEFAULTS', 'Some of the required defaults are missing'),
359: ('BINS_OOR', 'There are too many or too few bins for this module type'),
'The type for the current detector is not specified properly'),
361: ('NO_MMU', 'No MMU defined and/or required for this module'),
362: ('NULL_FIRMWARE', 'No firmware set defined'),
363: ('NO_FDD', 'No FDD defined in the firmware set'),
'The detector type is wrong for the requested operation'),
401: ('NOMEM', 'Unable to allocate memory'),
402: ('XERXES', 'XerXes returned an error'),
403: ('MD', 'MD layer returned an error'),
404: ('EOF', 'EOF encountered'),
405: ('XERXES_NORMAL_RUN_ACTIVE', 'XerXes says a normal run is still active'),
'The hardware says a control run is still active'),
501: ('UNKNOWN', None),
507: ('FILE_TYPE', 'Improper file type specified'),
508: ('END',
'There are no more instances of the name specified. Pos set to end'),
509: ('INVALID_STR', 'Invalid string format'),
510: ('UNIMPLEMENTED', 'The routine is unimplemented in this version'),
'A parameter mismatch was found with XIA_PARAM_DEBUG enabled.'),
'The specified firmware is not supported by this board type'),
602: ('UNKNOWN_FIRM', 'The specified firmware type is unknown'),
603: ('NOSUPPORT_VALUE', 'The specified acquisition value is not supported'),
604: ('UNKNOWN_VALUE', 'The specified acquisition value is unknown'),
'The specified peaking time is out-of-range for this product'),
'The specified peaking time does not have a PTRR associated with it'),
607: ('THRESH_OOR', 'The specified treshold is out-of-range'),
608: ('ERROR_CACHE', 'The data in the values cache is out-of-sync'),
609: ('GAIN_OOR', 'The specified gain is out-of-range for this produce'),
610: ('TIMEOUT', 'Timeout waiting for BUSY'),
611: ('BAD_SPECIAL',
'The specified special run is not supported for this module'),
612: ('TRACE_OOR', 'The specified value of tracewait (in ns) is out-of-range'),
613: ('DEFAULTS',
'The PSL layer encountered an error creating a Defaults element'),
614: ('BAD_FILTER',
'Error loading filter info from either a FDD file or the Firmware '
615: ('NO_REMOVE',
"Specified acquisition value is required for this product and can't be "
616: ('NO_GAIN_FOUND', 'Handel was unable to converge on a stable gain value'),
617: ('UNDEFINED_RUN_TYPE', 'Handel does not recognize this run type'),
'Handel attempted to overrun an internal buffer boundry'),
'Handel attempted to overrun the event buffer boundry'),
'Handel was asked to set a Data length to zero for readout'),
621: ('NO_LINEAR_FIT',
'Handel was unable to perform a linear fit to some data'),
622: ('MISSING_PTRR', 'Required PTRR is missing'),
623: ('PARSE_DSP', 'Error parsing DSP'),
624: ('UDXPS', None),
625: ('BIN_WIDTH', 'Specified bin width is out-of-range'),
626: ('NO_VGA',
"An attempt was made to set the gaindac on a board that doesn't have a "
627: ('TYPEVAL_OOR', 'Specified detector type value is out-of-range'),
628: ('LOW_LIMIT_OOR', 'Specified low MCA limit is out-of-range'),
629: ('BPB_OOR', 'bytes_per_bin is out-of-range'),
630: ('FIP_OOR', 'Specified FiPPI is out-fo-range'),
631: ('MISSING_PARAM', 'Unable to find DSP parameter in list'),
632: ('OPEN_XW', 'Error opening a handle in the XW library'),
633: ('ADD_XW', 'Error adding to a handle in the XW library'),
634: ('WRITE_XW', 'Error writing out a handle in the XW library'),
635: ('VALUE_VERIFY', 'Returned value inconsistent with sent value'),
636: ('POL_OOR', 'Specifed polarity is out-of-range'),
637: ('SCA_OOR', 'Specified SCA number is out-of-range'),
638: ('BIN_MISMATCH', 'Specified SCA bin is either too high or too low'),
639: ('WIDTH_OOR', 'MCA bin width is out-of-range'),
640: ('UNKNOWN_PRESET', 'Unknown PRESET run type specified'),
641: ('GAIN_TRIM_OOR', 'Gain trim out-of-range'),
642: ('GENSET_MISMATCH', "Returned GENSET doesn't match the set GENSET"),
643: ('NUM_MCA_OOR', 'The specified number of MCA bins is out of range'),
644: ('PEAKINT_OOR', None),
645: ('PEAKSAM_OOR', None),
646: ('MAXWIDTH_OOR', None),
647: ('NULL_TYPE', 'A NULL file type was specified'),
648: ('GAIN_SCALE', 'Gain scale factor is not valid'),
649: ('NULL_INFO', 'The specified info array is NULL'),
650: ('UNKNOWN_PARAM_DATA', 'Unknown parameter data type'),
651: ('MAX_SCAS',
'The specified number of SCAs is more then the maximum allowed'),
652: ('UNKNOWN_BUFFER', 'Requested buffer is unknown'),
653: ('NO_MAPPING', 'Mapping mode is currently not installed/enabled'),
654: ('MAPPING_PT_CTL', 'Wrong mapping point control for operation'),
655: ('UNKNOWN_PT_CTL', 'Unknown mapping point control.'),
656: ('CLOCK_SPEED', 'The hardware is reporting an invalid clock speed.'),
657: ('BAD_DECIMATION', 'Passed in decimation is invalid.'),
658: ('BAD_SYNCH_RUN', 'Specified value for synchronous run is bad.'),
659: ('PRESET_VALUE_OOR', 'Requested preset value is out-of-range.'),
660: ('MEMORY_LENGTH', 'Memory length is invalid.'),
661: ('UNKNOWN_PREAMP_TYPE', 'Preamp type is unknown.'),
662: ('DAC_TARGET_OOR', 'The specified DAC target is out of range.'),
663: ('DAC_TOL_OOR', 'The specified DAC tolerance is out of range.'),
664: ('BAD_TRIGGER', 'Specified trigger setting is invalid.'),
665: ('EVENT_LEN_OOR', 'The specified event length is out of range.'),
666: ('PRE_BUF_LEN_OOR', 'The specified pre-buffer length is out of range.'),
667: ('HV_OOR', 'The specified high voltage value is out of range.'),
668: ('PEAKMODE_OOR', 'The specified peak mode is out of range.'),
'The specified preamp type is not supported by current firmware.'),
'The calculated energy coefficient values are out of range.'),
'The specified step value is too large for the Alpha pulser veto '
'The specified trigger signal output is out of range.'),
'The specified livetime signal output is out of range.'),
674: ('UNKNOWN_MAPPING', 'Unknown mapping mode value specified.'),
675: ('UNKNOWN_LIST_MODE_VARIANT', 'Illegal list mode variant.'),
676: ('MALFORMED_LENGTH', 'List mode upper length word is malformed.'),
677: ('CLRBUFSIZE_LENGTH', 'Clear Buffer Size length is too large.'),
678: ('BAD_ELECTRODE_SIZE', 'UltraLo electrode size is invalid.'),
679: ('TILT_THRESHOLD_OOR', 'Specified threshold is out-of-range.'),
680: ('USB_BUSY', 'Direct USB command failed due to busy USB.'),
'UltraLo moisture meter response is malformed.'),
682: ('MALFORMED_MM_STATUS', 'UltraLo moisture meter status is invalid.'),
683: ('MALFORMED_MM_VALUE', 'UltraLo moisture meter value is invalid.'),
684: ('NO_EVENTS', 'No events to retrieve from the event buffer.'),
701: ('XUP_VERSION', 'XUP version is not supported'),
702: ('CHKSUM', 'checksum mismatch in the XUP'),
703: ('BAK_MISSING', 'Requested BAK file cannot be opened'),
704: ('SIZE_MISMATCH', 'Size read from file is incorrect'),
705: ('NO_ACCESS', "Specified access file isn't valid"),
706: ('N_FILTER_BAD',
"The number of filter parameters in the FDD doesn't match the number "
'requires for the hardware'),
801: ('UNIT_TEST', None)}
class HandelError(IOError):
def __init__(self, errno, strerror, description=None):
self.errno = errno
self.strerror = strerror
self.description = description
self.args = errno, strerror, description
def __str__(self):
s = '[HandelError {}] {}'.format(self.errno, self.strerror)
if self.description:
s += ': {}'.format(self.description)
return s
def from_errno(cls, errno):
strerror, description = ERROR_DICT.get(errno, DEFAULT_ERROR)
return cls(errno, strerror, description)
def check_error(errno):
if errno != 0:
raise HandelError.from_errno(errno)
def check_return_value(func):
def wrapper(*args, **kwargs):
check_error(func(*args, **kwargs))
return wrapper
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment