class NiceISC(NiceLib): """Mid-level wrapper for Thorlabs.MotionControl.IntegratedStepperMotors.dll""" _info_ = load_lib('isc_', __package__, builder='._build_kinesis', kwargs={'shortname': 'isc', 'sublib': 'Thorlabs.MotionControl.IntegratedStepperMotors'}) _prefix_ = 'TLI_' _ret_ = ret_errcheck BuildDeviceList = Sig() GetDeviceListSize = Sig(ret=ret_return) GetDeviceListExt = Sig('buf', 'len') GetDeviceListByTypeExt = Sig('buf', 'len', 'in') GetDeviceListByTypesExt = Sig('buf', 'len', 'in', 'in') GetDeviceInfo = Sig('in', 'out', ret=ret_success) # GetDeviceList = Sig('out') # GetDeviceListByType = Sig('out', 'in', dict(first_arg=False)) # GetDeviceListByTypes = Sig('out', 'in', 'in', dict(first_arg=False)) class Device(NiceObject): _prefix_ = 'ISC_' _sigs_ = {name: all_sigs[name] for name in [ 'Open', 'Close', 'Identify', 'GetHardwareInfo', 'GetFirmwareVersion', 'GetSoftwareVersion', 'LoadSettings', 'PersistSettings', 'GetNumberPositions', 'CanHome', 'Home', 'NeedsHoming', 'MoveToPosition', 'GetPosition', 'GetPositionCounter', 'RequestStatus', 'RequestStatusBits', 'GetStatusBits', 'StartPolling', 'PollingDuration', 'StopPolling', 'RequestSettings', 'ClearMessageQueue', 'RegisterMessageCallback', 'MessageQueueSize', 'GetNextMessage', 'WaitForMessage', 'GetMotorParamsExt', 'SetJogStepSize', 'GetJogVelParams', 'GetBacklash', 'SetBacklash', 'GetLimitSwitchParams', 'GetLimitSwitchParamsBlock', ]}
class NiceKinesisISC(NiceLib): """Mid-level wrapper for Thorlabs.MotionControl.IntegratedStepperMotors.dll""" _info_ = load_lib('kinesis', __package__) _prefix_ = 'TLI_' _ret_ = ret_errcheck BuildDeviceList = Sig() GetDeviceListSize = Sig(ret=ret_return) GetDeviceListExt = Sig('buf', 'len') GetDeviceListByTypeExt = Sig('buf', 'len', 'in') GetDeviceListByTypesExt = Sig('buf', 'len', 'in', 'in') GetDeviceInfo = Sig('in', 'out') # GetDeviceList = Sig('out') # GetDeviceListByType = Sig('out', 'in', dict(first_arg=False)) # GetDeviceListByTypes = Sig('out', 'in', 'in', dict(first_arg=False)) class Device(NiceObject): _prefix_ = 'ISC_' Open = Sig('in') Close = Sig('in', ret=ret_return) Identify = Sig('in', ret=ret_ignore) GetHardwareInfo = Sig('in', 'buf', 'len', 'out', 'out', 'buf', 'len', 'out', 'out', 'out') GetFirmwareVersion = Sig('in', ret=ret_return) GetSoftwareVersion = Sig('in', ret=ret_return) LoadSettings = Sig('in', ret=ret_success) PersistSettings = Sig('in', ret=ret_success) GetNumberPositions = Sig('in', ret=ret_return) CanHome = Sig('in', ret=ret_return) Home = Sig('in') NeedsHoming = Sig('in', ret=ret_return) MoveToPosition = Sig('in', 'in') GetPosition = Sig('in', ret=ret_return) GetPositionCounter = Sig('in', ret=ret_return) RequestStatus = Sig('in') RequestStatusBits = Sig('in') GetStatusBits = Sig('in', ret=ret_return) StartPolling = Sig('in', 'in', ret=ret_success) PollingDuration = Sig('in', ret=ret_return) StopPolling = Sig('in', ret=ret_ignore) RequestSettings = Sig('in') ClearMessageQueue = Sig('in', ret=ret_ignore) RegisterMessageCallback = Sig('in', 'in', ret=ret_ignore) MessageQueueSize = Sig('in', ret=ret_return) GetNextMessage = Sig('in', 'out', 'out', 'out', ret=ret_success) WaitForMessage = Sig('in', 'out', 'out', 'out', ret=ret_success) GetMotorParamsExt = Sig('in', 'out', 'out', 'out') SetJogStepSize = Sig('in', 'in') GetJogVelParams = Sig('in', 'out', 'out') GetBacklash = Sig('in', ret=ret_return) SetBacklash = Sig('in', 'in') GetLimitSwitchParams = Sig('in', 'out', 'out', 'out', 'out', 'out') GetLimitSwitchParamsBlock = Sig('in', 'out')
class NiceCCSLib(NiceLib): """ Provides a convenient low-level wrapper for the library Thorlabs.MotionControl.TCube.DCServo.dll""" _info = load_lib('tlccs', __package__) _struct_maker = None _prefix = ('tlccs_') _buflen = 256 _ret_wrap = 'error_code' def _ret_error_code(error_code, niceobj): if error_code != 0: if niceobj is None: raise ThorlabsCCSError( NiceCCSLib.error_message(0, error_code)[0]) else: raise ThorlabsCCSError(niceobj.error_message(error_code)[0]) init = ('in', 'in', 'in', 'out') error_message = ('in', 'in', 'buf[512]') NiceCCS = NiceObjectDef({ 'close': ('in'), 'setIntegrationTime': ('in', 'in'), 'getIntegrationTime': ('in', 'out'), 'startScan': ('in'), 'startScanCont': ('in'), 'startScanExtTrg': ('in'), 'startScanContExtTrg': ('in'), 'getDeviceStatus': ('in', 'out'), 'getScanData': ('in', 'arr[{}]'.format(NUM_RAW_PIXELS)), 'getRawScanData': ('in', 'out'), 'setWavelengthData': ('in', 'in', 'in', 'in'), 'getWavelengthData': ('in', 'in', 'arr[{}]'.format(NUM_RAW_PIXELS), 'out', 'out'), 'getUserCalibrationPoints': ('in', 'out', 'out', 'out'), 'setAmplitudeData': ('in', 'in', 'in', 'in', 'in'), 'getAmplitudeData': ('in', 'arr[{}]'.format(NUM_RAW_PIXELS), 'in', 'in', 'in'), 'identificationQuery': ('in', 'buf[256]', 'buf[256]', 'buf[256]', 'buf[256]', 'buf[256]'), 'revision_query': ('in', 'out', 'out'), 'reset': ('in'), 'self_test': ('in', 'out', 'out'), 'setUserText': ('in', 'in'), 'getUserText': ('in', 'out'), 'setAttribute': ('in', 'in', 'in'), 'getAttribute': ('in', 'in', 'out'), 'error_query': ('in', 'out', 'out'), 'error_message': ('in', 'in', 'buf[512]', { 'ret': 'ignore' }) })
class NiceFF(NiceLib): """Mid-level wrapper for Thorlabs.MotionControl.FilterFlipper.dll""" _info_ = load_lib('ff_', __package__, builder='._build_kinesis', kwargs={'shortname': 'ff', 'sublib': 'Thorlabs.MotionControl.FilterFlipper'}) _prefix_ = 'TLI_' _ret_ = ret_errcheck BuildDeviceList = Sig() GetDeviceListSize = Sig(ret=ret_return) GetDeviceListExt = Sig('buf', 'len') GetDeviceListByTypeExt = Sig('buf', 'len', 'in') GetDeviceListByTypesExt = Sig('buf', 'len', 'in', 'in') GetDeviceInfo = Sig('in', 'out', ret=ret_success) # GetDeviceList = Sig('out') # GetDeviceListByType = Sig('out', 'in', first_arg=False) # GetDeviceListByTypes = Sig('out', 'in', 'in', first_arg=False) class Flipper(NiceObject): _prefix_ = 'FF_' Open = Sig('in') Close = Sig('in') Identify = Sig('in') GetHardwareInfo = Sig('in', 'buf', 'len', 'out', 'out', 'buf', 'len', 'out', 'out', 'out') GetFirmwareVersion = Sig('in', ret=ret_return) GetSoftwareVersion = Sig('in', ret=ret_return) LoadSettings = Sig('in', ret=ret_success) PersistSettings = Sig('in', ret=ret_success) GetNumberPositions = Sig('in', ret=ret_return) Home = Sig('in') MoveToPosition = Sig('in', 'in') GetPosition = Sig('in', ret=ret_return) GetIOSettings = Sig('in', 'out') GetTransitTime = Sig('in', ret=ret_return) SetTransitTime = Sig('in', 'in') RequestStatus = Sig('in') GetStatusBits = Sig('in', ret=ret_return) StartPolling = Sig('in', 'in', ret=ret_success) PollingDuration = Sig('in', ret=ret_return) StopPolling = Sig('in') RequestSettings = Sig('in') ClearMessageQueue = Sig('in') RegisterMessageCallback = Sig('in', 'in') MessageQueueSize = Sig('in', ret=ret_return) GetNextMessage = Sig('in', 'in', 'in', 'in', ret=ret_success) WaitForMessage = Sig('in', 'in', 'in', 'in', ret=ret_success)
class NiceFoo(NiceLib): """Foo library""" _info = load_lib('foo', pkg=None, dir=__file__) _ret = ret_return add = Sig('in', 'in') subtract = Sig('in', 'in') create_item = Sig() class Item(NiceObject): _init_ = 'create_item' _prefix_ = 'item_' get_id = Sig('in') get_value = Sig('in') set_value = Sig('in', 'in') static_value = Sig(use_handle=False)
class NiceFoo(NiceLib): """Foo library""" _info = load_lib('foo', pkg=None, dir=__file__) _ret = ret_return @Sig('in', 'in') def add(cls, a, b): return cls._autofunc_add(a, b) create_item = Sig() class Item(NiceObject): _init_ = 'create_item' _prefix_ = 'item_' get_id = Sig('in') get_value = Sig('in', ret=ret_ignore) set_value = Sig('in', 'in')
class NiceTLI(NiceLib): """Mid-level wrapper for Thorlabs Kinesis TLI_ functions""" # NOTE: Wraps FilterFlipper DLL now because as of August 2020, DeviceManager DLL does not # include simulation-related functions _info_ = load_lib('tli_', __package__, builder='._build_kinesis', kwargs={ 'shortname': 'tli', 'sublib': 'Thorlabs.MotionControl.FilterFlipper' }) _prefix_ = 'TLI_' _ret_ = ret_errcheck BuildDeviceList = Sig() GetDeviceListSize = Sig(ret=ret_return) GetDeviceListExt = Sig('buf', 'len') GetDeviceListByTypeExt = Sig('buf', 'len', 'in') GetDeviceListByTypesExt = Sig('buf', 'len', 'in', 'in') GetDeviceInfo = Sig('in', 'out', ret=ret_success) InitializeSimulations = Sig(ret=ret_ignore) UninitializeSimulations = Sig(ret=ret_ignore)
class NiceCCSLib(NiceLib): """Mid-level wrapper for TLCCS_XX.dll""" _info_ = load_lib('tlccs', __package__) _prefix_ = 'tlccs_' _buflen_ = 256 _ret_ = ccs_errcheck init = Sig('in', 'in', 'in', 'out') error_message = Sig('in', 'in', 'buf[512]') class NiceCCS(NiceObject): close = Sig('in') setIntegrationTime = Sig('in', 'in') getIntegrationTime = Sig('in', 'out') startScan = Sig('in') startScanCont = Sig('in') startScanExtTrg = Sig('in') startScanContExtTrg = Sig('in') getDeviceStatus = Sig('in', 'out') getScanData = Sig('in', 'arr[{}]'.format(NUM_RAW_PIXELS)) getRawScanData = Sig('in', 'out') setWavelengthData = Sig('in', 'in', 'in', 'in') getWavelengthData = Sig('in', 'in', 'arr[{}]'.format(NUM_RAW_PIXELS), 'out', 'out') getUserCalibrationPoints = Sig('in', 'out', 'out', 'out') setAmplitudeData = Sig('in', 'in', 'in', 'in', 'in') getAmplitudeData = Sig('in', 'arr[{}]'.format(NUM_RAW_PIXELS), 'in', 'in', 'in') identificationQuery = Sig('in', 'buf[256]', 'buf[256]', 'buf[256]', 'buf[256]', 'buf[256]') revision_query = Sig('in', 'out', 'out') reset = Sig('in') self_test = Sig('in', 'out', 'out') setUserText = Sig('in', 'in') getUserText = Sig('in', 'out') setAttribute = Sig('in', 'in', 'in') getAttribute = Sig('in', 'in', 'out') error_query = Sig('in', 'out', 'out') error_message = Sig('in', 'in', 'buf[512]', ret=ret_ignore)
""" from warnings import warn from numpy import frombuffer, sum, uint16, hstack, vstack from enum import Enum from nicelib import NiceLib, NiceObjectDef, load_lib from ...errors import Error, InstrumentNotFoundError from ..util import check_units, check_enums from ... import Q_ class PicamError(Error): pass lib = load_lib('picam', __package__) BYTES_PER_PIXEL = 2 class NicePicamLib(NiceLib): """Wrapper for Picam.dll""" _info = lib _buflen = 256 _prefix = 'Picam_' _ret_wrap = 'error' def _ret_error(error): if error != 0: if bool(NicePicamLib.IsLibraryInitialized()): NicePicamLib.GetEnumerationString( lib.PicamEnumeratedType_Error, error)
from nicelib import NiceLib, Sig, NiceObject, load_lib, RetHandler from . import Camera from .. import ParamSet from ..util import check_units from ...errors import Error, TimeoutError, LibError from ... import Q_, u if PY2: memoryview = buffer # Needed b/c np.frombuffer is broken on memoryviews in PY2 __all__ = ['Pixelfly'] # Developed using version 2.1.0.29 of pf_cam.dll info = load_lib('pixelfly', __package__) ffi = info._ffi class PixelflyLibError(LibError): MSG_FORMAT = '(0x{:X}) {}' @RetHandler(num_retvals=0) def pixelfly_errorcheck(code): from ._pixelfly import errortext # Hide from sphinx if code != 0: pbuf = errortext.ffi.new('char[]', 1024) errortext.lib.PCO_GetErrorText( errortext.ffi.cast('unsigned int', code), pbuf, len(pbuf)) err_message = errortext.ffi.string(pbuf)
class NiceKinesisISC(NiceLib): """ This class provides a convenient low-level wrapper for the library Thorlabs.MotionControl.FilterFlipper.dll""" _info = load_lib('kinesis', __package__) # # Error wrapping functions # def _ret(ret): if ret != 0: raise KinesisError(ret) def _ret_success(ret, funcname): if not ret: raise KinesisError( msg="Call to function '{}' failed".format(funcname)) # # Function signatures # _prefix = 'TLI_' BuildDeviceList = () GetDeviceListSize = ({'ret': 'return'}, ) GetDeviceListExt = ('buf', 'len') GetDeviceListByTypeExt = ('buf', 'len', 'in') GetDeviceListByTypesExt = ('buf', 'len', 'in', 'in') GetDeviceInfo = ('in', 'out') # GetDeviceList = ('out') # GetDeviceListByType = ('out', 'in', dict(first_arg=False)) # GetDeviceListByTypes = ('out', 'in', 'in', dict(first_arg=False)) Device = NiceObjectDef(prefix='ISC_', attrs=dict( Open=('in'), Close=('in', { 'ret': 'return' }), Identify=('in', { 'ret': 'ignore' }), GetHardwareInfo=('in', 'buf', 'len', 'out', 'out', 'buf', 'len', 'out', 'out', 'out'), GetFirmwareVersion=('in', { 'ret': 'return' }), GetSoftwareVersion=('in', { 'ret': 'return' }), LoadSettings=('in', { 'ret': 'success' }), PersistSettings=('in', { 'ret': 'success' }), GetNumberPositions=('in', { 'ret': 'return' }), Home=('in'), NeedsHoming=('in', { 'ret': 'return' }), MoveToPosition=('in', 'in'), GetPosition=('in', { 'ret': 'return' }), RequestStatus=('in'), RequestStatusBits=('in'), GetStatusBits=('in', { 'ret': 'return' }), StartPolling=( 'in', 'in', { 'ret': 'success' }, ), PollingDuration=('in', { 'ret': 'return' }), StopPolling=('in', { 'ret': 'ignore' }), RequestSettings=('in'), ClearMessageQueue=('in', { 'ret': 'ignore' }), RegisterMessageCallback=('in', 'in', { 'ret': 'ignore' }), MessageQueueSize=('in', { 'ret': 'return' }), GetNextMessage=('in', 'out', 'out', 'out', { 'ret': 'success' }), WaitForMessage=('in', 'out', 'out', 'out', { 'ret': 'success' }), GetMotorParamsExt=('in', 'out', 'out', 'out'), SetJogStepSize=('in', 'in'), GetJogVelParams=('in', 'out', 'out'), GetBacklash=('in', { 'ret': 'return' }), SetBacklash=('in', 'in'), ))
import atexit import weakref import logging as log import fnmatch import numpy as np import win32event from nicelib import NiceLib, NiceObjectDef, load_lib from . import Camera from ..util import check_units from .. import _ParamDict from ...errors import InstrumentTypeError, InstrumentNotFoundError, Error, TimeoutError from ... import Q_ info = load_lib('uc480', __package__) ffi = info._ffi __all__ = ['UC480_Camera'] global_weakkeydict = weakref.WeakKeyDictionary() def to_bytes(text): if isinstance(text, bytes): return text elif isinstance(text, unicode): text.encode('utf-8') def char_to_int(char):
instruments.append(params) return instruments class DAQError(Error): def __init__(self, code): msg = "({}) {}".format(code, NiceNI.GetErrorString(code)) self.code = code super(DAQError, self).__init__(msg) class NotSupportedError(DAQError): pass info = load_lib('ni', __package__) class NiceNI(NiceLib): _info = info _prefix = ('DAQmx_', 'DAQmx') _buflen = 512 def _ret_wrap(code): if code != 0: raise DAQError(code) GetErrorString = ('in', 'buf', 'len') GetSysDevNames = ('buf', 'len') CreateTask = ('in', 'out')
RetHandler, Sig, ret_return) # req: nicelib >= 0.5 from . import Camera from ..util import check_units from .. import ParamSet, Facet from ...errors import (InstrumentNotFoundError, Error, TimeoutError, LibError, UnsupportedFeatureError) from ...log import get_logger from ... import Q_ log = get_logger(__name__) _INST_PARAMS = ['serial', 'id', 'model'] _INST_CLASSES = ['UC480_Camera'] info = load_lib('uc480', __package__) ffi = info._ffi __all__ = ['UC480_Camera'] global_weakkeydict = weakref.WeakKeyDictionary() def to_bytes(text): if isinstance(text, bytes): return text elif isinstance(text, unicode): text.encode('utf-8') def char_to_int(char):
from enum import Enum from nicelib import NiceLib, load_lib, RetHandler, ret_ignore, Sig, NiceObject from ...errors import Error from ..util import check_units, check_enums from ... import Q_ if PY2: memoryview = buffer # Needed b/c np.frombuffer is broken on memoryviews in PY2 class PicamError(Error): pass lib = load_lib('picam', __package__) BYTES_PER_PIXEL = 2 @RetHandler(num_retvals=0) def ret_error(error): if error != 0: if bool(NicePicamLib.IsLibraryInitialized()): NicePicamLib.GetEnumerationString(lib.PicamEnumeratedType_Error, error) else: ret_enum_string_error(error) @RetHandler(num_retvals=0) def ret_enum_string_error(error): if error != 0:
from nicelib import NiceLib, Sig, NiceObject, load_lib, RetHandler from . import Camera from .. import ParamSet from ..util import check_units from ...errors import Error, TimeoutError, LibError from ... import Q_, u if PY2: memoryview = buffer # Needed b/c np.frombuffer is broken on memoryviews in PY2 __all__ = ['Pixelfly'] # Developed using version 2.1.0.29 of pf_cam.dll info = load_lib('pixelfly', __package__) ffi = info._ffi class PixelflyLibError(LibError): MSG_FORMAT = '(0x{:X}) {}' @RetHandler(num_retvals=0) def pixelfly_errorcheck(code): from ._pixelfly import errortext # Hide from sphinx if code != 0: pbuf = errortext.ffi.new('char[]', 1024) errortext.lib.PCO_GetErrorText(errortext.ffi.cast('unsigned int', code), pbuf, len(pbuf)) err_message = errortext.ffi.string(pbuf) raise PixelflyLibError(code & 0xFFFFFFFF, err_message)