tomato.drivers.biologic.kbio package
Submodules
Bio-Logic OEM package python API.
This module provides helper functions to the ctypes module, and can be imported as a whole when low level C interfacing is required.
- tomato.drivers.biologic.kbio.c_utils.c_dump(cobj)
Print both byte version of object and hex dump.
- class tomato.drivers.biologic.kbio.c_utils.c_buffer(size, encoding='UTF8')
Bases:
object
- property parm
mimic ctypes style of embedding the parameter, which is a couple.
- property value
Extract the contents of the buffer using the actual length and turn it to a string.
- class tomato.drivers.biologic.kbio.c_utils.POD
Bases:
_ctypes.Structure
ctypes Structure with helper methods.
- property keys
Reproduce a dict behaviour.
- subset(*fields)
Create a dict from a selection of Structure fields.
Bio-Logic OEM package python API.
This module provides a pure Python interface to the EcLib DLL used to control Bio-Logic potentiostats.
As the methods of this API closely follow the DLL parameters, no docstring is provided, as one can refer to the Development Package PDF for documentation.
The aim of this API is to shield this module’s clients from the ctypes intricacies, leaving the user to use either plain types or types coming from this module, or the kbio_types module.
- The only consistent conventions in this API are :
id_
is the connection identifier returned by a Connect call,ch
is a 1 based channel identifier (vs a 0 based value in the DLL)strings on the client side are encoded in this API, as the DLL uses bytes.
Most of the functions raise an exception on error (a BL_Error exception type), which encapsulates the error code.
This behaviour can be overriden in the BL_xxx functions with an abort flag set to False.
- class tomato.drivers.biologic.kbio.kbio_api.KBIO_api(eclib_file=None, blfind_file=None)
Bases:
object
- GetLibVersion()
- Connect(server, timeout=5)
- USB_DeviceInfo(index)
- TestConnection(id_)
- TestComSpeed(id_, ch)
- Disconnect(id_)
- PluggedChannels(id_)
- static channel_map(channel_set)
Build a boolean array of channel presence in the channel_set (an iterable).
- GetChannelInfo(id_, ch)
- LoadFirmware(id_, channels, firmware, fpga, force=True)
- GetHardwareConf(id_, ch)
- SetHardwareConf(id_, ch, cnx, mode)
- OptionError(id_, ch)
- GetMessage(id_, ch)
- GetErrorMsg(code)
- DefineParameter(label, value, index, parm)
- DefineBoolParameter(label, value, index, parm)
- DefineSglParameter(label, value, index, parm)
- DefineIntParameter(label, value, index, parm)
- UpdateParameters(id_, ch, index, parms, file)
- GetTechniqueInfos(id_, ch, ix, info)
- GetParamInfos(id_, ch, ix, info)
- LoadTechnique(id_, ch, file, parms, first=True, last=True, display=False)
- StartChannel(id_, ch)
- StopChannel(id_, ch)
- StartChannels(id_, channels)
- StopChannels(id_, channels)
- GetCurrentValues(id_, ch)
- GetData(id_, ch)
- ConvertNumericIntoSingle(vi)
Convert the vi word (32b) into a float.
- FindEChemDev()
- FindEChemEthDev()
- FindEChemUsbDev()
- SetEthernetConfig(target_ip, new_ip=None, netmask=None, gateway=None)
- class DeviceInfo
Bases:
tomato.drivers.biologic.kbio.kbio_types.DeviceInfo
DeviceInfo adds a few helper methods over the KBIO plain old data equivalent
- property model
- class ChannelInfo
Bases:
tomato.drivers.biologic.kbio.kbio_types.ChannelInfo
ChannelInfo adds a few helper methods over the KBIO plain old data equivalent
- property firmware
- property has_no_firmware
- property is_kernel_loaded
- property board
- property state
- property amplifier
- property min_IRange
- property max_IRange
- class HardwareConf
Bases:
tomato.drivers.biologic.kbio.kbio_types.HardwareConf
HardwareConf adds a few helper methods over the KBIO plain old data equivalent
- property mode
- property connection
- exception BL_Error(context)
Bases:
RuntimeError
BL_Error is an Exception used to capture an EClib API error.
- is_error(error)
Check whether the error code is the same as our error code.
- class Error(code)
Bases:
object
Class to encapsulate an EClib error code.
- property translate
Turn error code into tuple (code, enum-name, clear text).
- is_error(error)
Return whether error code is same as numeric value
- check(context=None, abort=True, show=True)
Raise an error or print an error in case an error happened.
context gives local info in case of error, otherwise keep default one abort decide between raising an exception versus just printing (if show is set to True)
- list_by_tag = {<ERROR.NOERROR: 0>: 'No error', <ERROR.GEN_NOTCONNECTED: -1>: 'No instrument connected', <ERROR.GEN_CONNECTIONINPROGRESS: -2>: 'Connection in progress', <ERROR.GEN_CHANNELNOTPLUGGED: -3>: 'Selected channel(s) unplugged', <ERROR.GEN_INVALIDPARAMETERS: -4>: 'Invalid function parameters', <ERROR.GEN_FILENOTEXISTS: -5>: 'Selected file does not exist', <ERROR.GEN_FUNCTIONFAILED: -6>: 'Function failed', <ERROR.GEN_NOCHANNELSELECTED: -7>: 'No channel selected', <ERROR.GEN_INVALIDCONF: -8>: 'Invalid instrument configuration', <ERROR.GEN_ECLAB_LOADED: -9>: 'EC-Lab firmware loaded on the instrument', <ERROR.GEN_LIBNOTCORRECTLYLOADED: -10>: 'Library not correctly loaded in memory', <ERROR.GEN_USBLIBRARYERROR: -11>: 'USB library not correctly loaded in memory', <ERROR.GEN_FUNCTIONINPROGRESS: -12>: 'Function already in progress', <ERROR.GEN_CHANNEL_RUNNING: -13>: 'Selected channel(s) already used', <ERROR.GEN_DEVICE_NOTALLOWED: -14>: 'Device not allowed', <ERROR.GEN_UPDATEPARAMETERS: -15>: 'Invalid update function parameters', <ERROR.INSTR_VMEERROR: -101>: 'Internal instrument communication failed', <ERROR.INSTR_TOOMANYDATA: -102>: 'Too many data to transfer from the instrument (device error)', <ERROR.INSTR_RESPNOTPOSSIBLE: -103>: 'Selected channel(s) unplugged (device error)', <ERROR.INSTR_RESPERROR: -104>: 'Instrument response error', <ERROR.INSTR_MSGSIZEERROR: -105>: 'Invalid message size', <ERROR.COMM_COMMFAILED: -200>: 'Communication failed with the instrument', <ERROR.COMM_CONNECTIONFAILED: -201>: 'Cannot establish connection with the instrument', <ERROR.COMM_WAITINGACK: -202>: 'Waiting for the instrument response', <ERROR.COMM_INVALIDIPADDRESS: -203>: 'Invalid IP address', <ERROR.COMM_ALLOCMEMFAILED: -204>: 'Cannot allocate memory in the instrument', <ERROR.COMM_LOADFIRMWAREFAILED: -205>: 'Cannot load firmware into selected channel(s)', <ERROR.COMM_INCOMPATIBLESERVER: -206>: 'Communication firmware not compatible', <ERROR.COMM_MAXCONNREACHED: -207>: 'Maximum number of allowed connections reached', <ERROR.FIRM_FIRMFILENOTEXISTS: -300>: 'Cannot find kernel.bin file', <ERROR.FIRM_FIRMFILEACCESSFAILED: -301>: 'Cannot read kernel.bin file', <ERROR.FIRM_FIRMINVALIDFILE: -302>: 'Invalid kernel.bin file', <ERROR.FIRM_FIRMLOADINGFAILED: -303>: 'Cannot load kernel.bin on the selected channel(s)', <ERROR.FIRM_XILFILENOTEXISTS: -304>: 'Cannot find FPGA file', <ERROR.FIRM_XILFILEACCESSFAILED: -305>: 'Cannot read FPGA file', <ERROR.FIRM_XILINVALIDFILE: -306>: 'Invalid FPGA file', <ERROR.FIRM_XILLOADINGFAILED: -307>: 'Cannot load FPGA file on the selected channel(s)', <ERROR.FIRM_FIRMWARENOTLOADED: -308>: 'No firmware loaded on the selected channel(s)', <ERROR.FIRM_FIRMWAREINCOMPATIBLE: -309>: 'Loaded firmware not compatible with the library', <ERROR.TECH_ECCFILENOTEXISTS: -400>: 'Cannot find the selected ECC file', <ERROR.TECH_INCOMPATIBLEECC: -401>: 'ECC file not compatible with the channel firmware', <ERROR.TECH_ECCFILECORRUPTED: -402>: 'ECC file corrupted', <ERROR.TECH_LOADTECHNIQUEFAILED: -403>: 'Cannot load the ECC file', <ERROR.TECH_DATACORRUPTED: -404>: 'Data returned by the instrument are corrupted', <ERROR.TECH_MEMFULL: -405>: 'Cannot load techniques: full memory', <ERROR.OPT_CHANGE: 1>: 'Number of options changed', <ERROR.OPT_4A_ERROR: 100>: '4A amplifier unknown error', <ERROR.OPT_4A_OVERTEMP: 101>: '4A amplifier temperature overflow', <ERROR.OPT_4A_BADPOWER: 102>: '4A amplifier bad power', <ERROR.OPT_4A_POWERFAIL: 103>: '4A amplifier power fail', <ERROR.OPT_48V_ERROR: 200>: '48V amplifier unknown error', <ERROR.OPT_48V_OVERTEMP: 201>: '48V amplifier temperature overflow', <ERROR.OPT_48V_BADPOWER: 202>: '48V amplifier bad power', <ERROR.OPT_48V_POWERFAIL: 203>: '48V amplifier power fail', <ERROR.OPT_10A5V_ERROR: 300>: '10A 5V amplifier error', <ERROR.OPT_10A5V_OVERTEMP: 301>: '10A 5V amplifier overheat', <ERROR.OPT_10A5V_BADPOWER: 302>: '10A 5V amplifier bad power', <ERROR.OPT_10A5V_POWERFAIL: 303>: '10A 5V amplifier power fail', <ERROR.OPT_1A48VP_ERROR: 600>: '1A48VP amplifier error', <ERROR.OPT_1A48VP_OVERTEMP: 601>: '1A48VP amplifier overheat', <ERROR.OPT_1A48VP_BADPOWER: 602>: '1A48VP amplifier bad power', <ERROR.OPT_1A48VP_POWERFAIL: 603>: '1A48VP amplifier power fail'}
- exception FindError(context)
Bases:
tomato.drivers.biologic.kbio.kbio_api.KBIO_api.BL_Error
- list_by_tag = {<FIND_ERROR.NO_ERROR: 0>: 'no error', <FIND_ERROR.UNKNOWN_ERROR: -1>: 'unknown error', <FIND_ERROR.INVALID_PARAMETER: -2>: 'invalid function parameters', <FIND_ERROR.ACK_TIMEOUT: -10>: 'instrument response timeout', <FIND_ERROR.EXP_RUNNING: -11>: 'experiment is running on instrument', <FIND_ERROR.CMD_FAILED: -12>: 'instrument do not execute command', <FIND_ERROR.FIND_FAILED: -20>: 'find failed', <FIND_ERROR.SOCKET_WRITE: -21>: 'cannot write the request of the descriptions of Ethernet instruments', <FIND_ERROR.SOCKET_READ: -22>: 'cannot read descriptions of Ethernet instrument', <FIND_ERROR.CFG_MODIFY_FAILED: -30>: 'set TCP/IP parameters failed', <FIND_ERROR.READ_PARAM_FAILED: -31>: 'deserialization of TCP/IP parameters failed', <FIND_ERROR.EMPTY_PARAM: -32>: 'not any TCP/IP parameters in serialization', <FIND_ERROR.IP_FORMAT: -33>: 'invalid format of IP address', <FIND_ERROR.NM_FORMAT: -34>: 'invalid format of netmask address', <FIND_ERROR.GW_FORMAT: -35>: 'invalid format of gateway address', <FIND_ERROR.IP_NOT_FOUND: -38>: 'instrument to modify not found', <FIND_ERROR.IP_ALREADYEXIST: -39>: 'new IP address in TCP/IP parameters'}
- ecl_api = [('BL_GetLibVersion', [<class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>]), ('BL_Connect', [<class 'ctypes.c_char_p'>, <class 'ctypes.c_ubyte'>, <class 'ctypes.wintypes.LP_c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_DeviceInfo'>]), ('BL_GetUSBdeviceinfos', [<class 'ctypes.c_ulong'>, <class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>, <class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>, <class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>], <class 'ctypes.c_bool'>), ('BL_Disconnect', [<class 'ctypes.c_long'>]), ('BL_TestConnection', [<class 'ctypes.c_long'>]), ('BL_TestCommSpeed', [<class 'ctypes.c_long'>, <class 'ctypes.c_ubyte'>, <class 'ctypes.wintypes.LP_c_long'>, <class 'ctypes.wintypes.LP_c_long'>]), ('BL_GetChannelsPlugged', [<class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_bool_Array_16'>, <class 'ctypes.c_ubyte'>]), ('BL_LoadFirmware', [<class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_bool_Array_16'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_long_Array_16'>, <class 'ctypes.c_ubyte'>, <class 'ctypes.c_bool'>, <class 'ctypes.c_bool'>, <class 'ctypes.c_char_p'>, <class 'ctypes.c_char_p'>]), ('BL_GetChannelInfos', [<class 'ctypes.c_long'>, <class 'ctypes.c_ubyte'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_ChannelInfo'>]), ('BL_GetHardConf', [<class 'ctypes.c_long'>, <class 'ctypes.c_ubyte'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_HardwareConf'>]), ('BL_SetHardConf', [<class 'ctypes.c_long'>, <class 'ctypes.c_ubyte'>, <class 'tomato.drivers.biologic.kbio.kbio_types.HardwareConf'>]), ('BL_GetErrorMsg', [<class 'ctypes.c_long'>, <class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>], <class 'int'>), ('BL_GetOptErr', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>, <class 'ctypes.wintypes.LP_c_long'>, <class 'ctypes.wintypes.LP_c_long'>]), ('BL_GetMessage', [<class 'ctypes.c_long'>, <class 'ctypes.c_ubyte'>, <class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>]), ('BL_LoadTechnique', [<class 'ctypes.c_long'>, <class 'ctypes.c_ubyte'>, <class 'ctypes.c_char_p'>, <class 'tomato.drivers.biologic.kbio.kbio_types.EccParams'>, <class 'ctypes.c_bool'>, <class 'ctypes.c_bool'>, <class 'ctypes.c_bool'>]), ('BL_DefineBoolParameter', [<class 'ctypes.c_char_p'>, <class 'ctypes.c_bool'>, <class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_EccParam'>]), ('BL_DefineSglParameter', [<class 'ctypes.c_char_p'>, <class 'ctypes.c_float'>, <class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_EccParam'>]), ('BL_DefineIntParameter', [<class 'ctypes.c_char_p'>, <class 'ctypes.c_long'>, <class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_EccParam'>]), ('BL_UpdateParameters', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>, <class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_EccParams'>, <class 'ctypes.c_char_p'>]), ('BL_GetParamInfos', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>, <class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_TechniqueInfos'>]), ('BL_GetTechniqueInfos', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>, <class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_TechniqueInfos'>]), ('BL_StartChannel', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>]), ('BL_StartChannels', [<class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_bool_Array_16'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_long_Array_16'>, <class 'ctypes.c_ubyte'>]), ('BL_StopChannel', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>]), ('BL_StopChannels', [<class 'ctypes.c_long'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_bool_Array_16'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_long_Array_16'>, <class 'ctypes.c_ubyte'>]), ('BL_GetCurrentValues', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_CurrentValues'>]), ('BL_GetData', [<class 'ctypes.c_long'>, <class 'ctypes.c_byte'>, <class 'tomato.drivers.biologic.kbio.kbio_types.c_ulong_Array_1000'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_DataInfo'>, <class 'tomato.drivers.biologic.kbio.kbio_types.LP_CurrentValues'>]), ('BL_ConvertNumericIntoSingle', [<class 'ctypes.c_ulong'>, <class 'ctypes.wintypes.LP_c_float'>])]
List of the blfind entry points, and their parameter types.
- blfind_api = [('BL_FindEChemDev', [<class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>, <class 'ctypes.wintypes.LP_c_ulong'>]), ('BL_FindEChemEthDev', [<class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>, <class 'ctypes.wintypes.LP_c_ulong'>]), ('BL_FindEChemUsbDev', [<class 'ctypes.c_char_p'>, <class 'ctypes.wintypes.LP_c_ulong'>, <class 'ctypes.wintypes.LP_c_ulong'>]), ('BL_SetConfig', [<class 'ctypes.c_char_p'>, <class 'ctypes.c_char_p'>])]
- bind_function(dll, name, argtypes, restype=None)
Rebind api with wrapped ctype function, registering attribute types and error handling.
Bio-Logic OEM package python API.
This module contains support functions when building technique parameters, and decoding experiment records.
- class tomato.drivers.biologic.kbio.kbio_tech.ECC_parm(label, type_)
Bases:
object
ECC param template
- label: str
- type_: type
- tomato.drivers.biologic.kbio.kbio_tech.make_ecc_parm(api, ecc_parm, value=0, index=0)
Given an ECC_parm template, create and return an EccParam, with its value and optional index.
- tomato.drivers.biologic.kbio.kbio_tech.make_ecc_parms(api, *ecc_parm_list)
Create an EccParam array from an EccParam list, and return an EccParams refering to it.
- tomato.drivers.biologic.kbio.kbio_tech.print_experiment_data(api, data)
Unpack the experiment data, decode it according to the technique, display it, then return the experiment status
Bio-Logic OEM package data types.
This module provides a transcription of the EcLib DLL data types and constants.
As the names and values can be found in the Development Package documentation, one should refer to the PDF for further explanations.
The main datatypes the module relies on are ctypes Structure, Enum and dataclass.
Note that the DLL has alignement requirements that can be achieved with the _pack_ attribute in the Structures.
- tomato.drivers.biologic.kbio.kbio_types.ChannelsArray
alias of
tomato.drivers.biologic.kbio.kbio_types.c_bool_Array_16
- tomato.drivers.biologic.kbio.kbio_types.ResultsArray
alias of
tomato.drivers.biologic.kbio.kbio_types.c_long_Array_16
- tomato.drivers.biologic.kbio.kbio_types.DataBuffer
alias of
tomato.drivers.biologic.kbio.kbio_types.c_ulong_Array_1000
- class tomato.drivers.biologic.kbio.kbio_types.USB_device(index, instrument, serial)
Bases:
object
- index: int
- instrument: str
- serial: str
- property address
- class tomato.drivers.biologic.kbio.kbio_types.Ethernet_device(config, instrument, serial, identifier, name)
Bases:
object
- config: tuple
- instrument: str
- serial: str
- identifier: str
- name: str
- class tomato.drivers.biologic.kbio.kbio_types.DEVICE(value)
Bases:
enum.Enum
An enumeration.
- VMP = 0
- VMP2 = 1
- MPG = 2
- BISTAT = 3
- MCS_200 = 4
- VMP3 = 5
- VSP = 6
- HCP803 = 7
- EPP400 = 8
- EPP4000 = 9
- BISTAT2 = 10
- FCT150S = 11
- VMP300 = 12
- SP50 = 13
- SP150 = 14
- FCT50S = 15
- SP300 = 16
- CLB500 = 17
- HCP1005 = 18
- CLB2000 = 19
- VSP300 = 20
- SP200 = 21
- MPG2 = 22
- SP100 = 23
- MOSLED = 24
- KINEXXX = 25
- BCS815 = 26
- SP240 = 27
- MPG205 = 28
- MPG210 = 29
- MPG220 = 30
- MPG240 = 31
- BP300 = 32
- VMP3E = 33
- VSP3E = 34
- SP50E = 35
- SP150E = 36
- UNKNOWN = 255
- class tomato.drivers.biologic.kbio.kbio_types.DeviceInfo
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- CPU
Structure/Union member
- DeviceCode
Structure/Union member
- FirmwareDate_dd
Structure/Union member
- FirmwareDate_mm
Structure/Union member
- FirmwareDate_yyyy
Structure/Union member
- FirmwareVersion
Structure/Union member
- HTdisplayOn
Structure/Union member
- NbOfConnectedPC
Structure/Union member
- NumberOfChannels
Structure/Union member
- NumberOfSlots
Structure/Union member
- RAMSize
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.DEVICE_INFO
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_DeviceInfo
- class tomato.drivers.biologic.kbio.kbio_types.CHANNEL_BOARD(value)
Bases:
enum.Enum
An enumeration.
- C340_IF0 = 0
- C340_IF2_Z = 1
- C340_OTHERS = 2
- C340_IF2_NONZ = 3
- C340_IF3_Z = 4
- C340_IF3_NONZ = 5
- C340_IF3_ZZ = 6
- C340_IF3_NZZ = 7
- C340_SP50 = 8
- C340_SP150Z = 9
- C340_SP150NZ = 10
- C437_Z = 11
- C437_NZ = 12
- C437_SP150Z = 13
- C437_SP150NZ = 14
- C437_MPG2 = 15
- C437_MPG2Z = 16
- C437_MPGX = 17
- C437_MPGXZ = 18
- C437_VMP3EZ = 19
- C437_VMP3ENZ = 20
- class tomato.drivers.biologic.kbio.kbio_types.ChannelInfo
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- AmpCode
Structure/Union member
- BoardSerialNumber
Structure/Union member
- BoardVersion
Structure/Union member
- Channel
Structure/Union member
- FirmwareCode
Structure/Union member
- FirmwareVersion
Structure/Union member
- GPRAboard
Structure/Union member
- Lcboard
Structure/Union member
- MUXboard
Structure/Union member
- MaxBandwidth
Structure/Union member
- MaxIRange
Structure/Union member
- MemFilled
Structure/Union member
- MemSize
Structure/Union member
- MinIRange
Structure/Union member
- NbAmps
Structure/Union member
- NbOfTechniques
Structure/Union member
- State
Structure/Union member
- XilinxVersion
Structure/Union member
- Zboard
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.CH_INFO
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_ChannelInfo
- class tomato.drivers.biologic.kbio.kbio_types.HardwareConf
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- Connection
Structure/Union member
- Mode
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.HW_CONF
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_HardwareConf
- class tomato.drivers.biologic.kbio.kbio_types.HW_CNX(value)
Bases:
enum.Enum
An enumeration.
- STANDARD = 0
- CE_TO_GND = 1
- WE_TO_GND = 2
- HIGH_VOLTAGE = 3
- class tomato.drivers.biologic.kbio.kbio_types.HW_MODE(value)
Bases:
enum.Enum
An enumeration.
- GROUNDED = 0
- FLOATING = 1
- class tomato.drivers.biologic.kbio.kbio_types.OPTION_ERROR(value)
Bases:
enum.Enum
An enumeration.
- NO_ERROR = 0
- OPT_CHANGE = 1
- OPEN_IN = 2
- IRCMP_OVR = 3
- OPT_4A = 100
- OPT_4A_OVRTEMP = 101
- OPT_4A_BADPOW = 102
- OPT_4A_POWFAIL = 103
- OPT_48V = 200
- OPT_48V_OVRTEMP = 201
- OPT_48V_BADPOW = 202
- OPT_48V_POWFAIL = 203
- OPT_10A5V_ERR = 300
- OPT_10A5V_OVRTEMP = 301
- OPT_10A5V_BADPOW = 302
- OPT_10A5V_POWFAIL = 303
- class tomato.drivers.biologic.kbio.kbio_types.FIRMWARE(value)
Bases:
enum.Enum
An enumeration.
- NONE = 0
- INTERPR = 1
- UNKNOWN = 4
- KERNEL = 5
- INVALID = 8
- ECAL = 10
- ECAL4 = 11
- class tomato.drivers.biologic.kbio.kbio_types.CurrentValues
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- Ece
Structure/Union member
- EceRangeMax
Structure/Union member
- EceRangeMin
Structure/Union member
- ElapsedTime
Structure/Union member
- Eoverflow
Structure/Union member
- Ewe
Structure/Union member
- EweRangeMax
Structure/Union member
- EweRangeMin
Structure/Union member
- Freq
Structure/Union member
- I
Structure/Union member
- IRange
Structure/Union member
- Ioverflow
Structure/Union member
- MemFilled
Structure/Union member
- OptErr
Structure/Union member
- OptPos
Structure/Union member
- Rcomp
Structure/Union member
- Saturation
Structure/Union member
- State
Structure/Union member
- TimeBase
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.CURRENT_VALUES
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_CurrentValues
- class tomato.drivers.biologic.kbio.kbio_types.DataInfo
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- IRQskipped
Structure/Union member
- MuxPad
Structure/Union member
- NbCols
Structure/Union member
- NbRows
Structure/Union member
- ProcessIndex
Structure/Union member
- StartTime
Structure/Union member
- TechniqueID
Structure/Union member
- TechniqueIndex
Structure/Union member
- loop
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.DATA_INFO
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_DataInfo
- class tomato.drivers.biologic.kbio.kbio_types.PARAM_TYPE(value)
Bases:
enum.Enum
An enumeration.
- PARAM_INT = 0
- PARAM_BOOLEAN = 1
- PARAM_SINGLE = 2
- class tomato.drivers.biologic.kbio.kbio_types.EccParam
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- ParamIndex
Structure/Union member
- ParamStr
Structure/Union member
- ParamType
Structure/Union member
- ParamVal
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.ECC_PARM
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_EccParam
- class tomato.drivers.biologic.kbio.kbio_types.EccParams
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- len
Structure/Union member
- pParams
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.ECC_PARMS
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_EccParams
- tomato.drivers.biologic.kbio.kbio_types.ECC_PARM_ARRAY(nb)
- class tomato.drivers.biologic.kbio.kbio_types.TechniqueInfos
Bases:
tomato.drivers.biologic.kbio.c_utils.POD
- HardSettings
Structure/Union member
- Id
Structure/Union member
- Params
Structure/Union member
- indx
Structure/Union member
- nbParams
Structure/Union member
- nbSettings
Structure/Union member
- tomato.drivers.biologic.kbio.kbio_types.TECHNIQUE_INFOS
alias of
tomato.drivers.biologic.kbio.kbio_types.LP_TechniqueInfos
- class tomato.drivers.biologic.kbio.kbio_types.PROG_STATE(value)
Bases:
enum.Enum
An enumeration.
- STOP = 0
- RUN = 1
- PAUSE = 2
- SYNC = 3
- class tomato.drivers.biologic.kbio.kbio_types.I_RANGE(value)
Bases:
enum.Enum
An enumeration.
- I_RANGE_KEEP = -1
- I_RANGE_100pA = 0
- I_RANGE_1nA = 1
- I_RANGE_10nA = 2
- I_RANGE_100nA = 3
- I_RANGE_1uA = 4
- I_RANGE_10uA = 5
- I_RANGE_100uA = 6
- I_RANGE_1mA = 7
- I_RANGE_10mA = 8
- I_RANGE_100mA = 9
- I_RANGE_1A = 10
- I_RANGE_BOOSTER = 11
- I_RANGE_AUTO = 12
- class tomato.drivers.biologic.kbio.kbio_types.E_RANGE(value)
Bases:
enum.Enum
An enumeration.
- E_RANGE_2_5V = 0
- E_RANGE_5V = 1
- E_RANGE_10V = 2
- E_RANGE_AUTO = 3
- class tomato.drivers.biologic.kbio.kbio_types.BANDWIDTH(value)
Bases:
enum.Enum
An enumeration.
- BW_1 = 1
- BW_2 = 2
- BW_3 = 3
- BW_4 = 4
- BW_5 = 5
- BW_6 = 6
- BW_7 = 7
- BW_8 = 8
- BW_9 = 9
- class tomato.drivers.biologic.kbio.kbio_types.GAIN(value)
Bases:
enum.Enum
An enumeration.
- GAIN_1 = 0
- GAIN_10 = 1
- GAIN_100 = 2
- GAIN_1000 = 3
- class tomato.drivers.biologic.kbio.kbio_types.FILTER(value)
Bases:
enum.Enum
An enumeration.
- FILTER_NONE = 0
- FILTER_50KHZ = 1
- FILTER_1KHZ = 2
- FILTER_5HZ = 3
- class tomato.drivers.biologic.kbio.kbio_types.AMPLIFIER(value)
Bases:
enum.Enum
An enumeration.
- AMPL_NONE = 0
- AMPL_2A = 1
- AMPL_1A = 2
- AMPL_5A = 3
- AMPL_10A = 4
- AMPL_20A = 5
- AMPL_HEUS = 6
- AMPL_LC = 7
- AMPL_80A = 8
- AMPL_4AI = 9
- AMPL_PAC = 10
- AMPL_4AI_VSP = 11
- AMPL_LC_VSP = 12
- AMPL_UNDEF = 13
- AMPL_MUIC = 14
- AMPL_ERROR = 15
- AMPL_8AI = 16
- AMPL_LB500 = 17
- AMPL_100A5V = 18
- AMPL_LB2000 = 19
- AMPL_1A48V = 20
- AMPL_4A14V = 21
- AMPL_5A_MPG2B = 22
- AMPL_10A_MPG2B = 23
- AMPL_20A_MPG2B = 24
- AMPL_40A_MPG2B = 25
- AMPL_COIN_CELL_HOLDER = 26
- AMPL4_10A5V = 27
- AMPL4_2A30V = 28
- AMPL4_30A50V = 77
- AMPL3_50A60V = 93
- AMPL3_200A12V = 97
- AMPL3_50A60VII = 101
- AMPL4_1A48VPII = 105
- AMPL4_1A48VPIII = 129
- class tomato.drivers.biologic.kbio.kbio_types.ERROR(value)
Bases:
enum.Enum
An enumeration.
- NOERROR = 0
- GEN_NOTCONNECTED = -1
- GEN_CONNECTIONINPROGRESS = -2
- GEN_CHANNELNOTPLUGGED = -3
- GEN_INVALIDPARAMETERS = -4
- GEN_FILENOTEXISTS = -5
- GEN_FUNCTIONFAILED = -6
- GEN_NOCHANNELSELECTED = -7
- GEN_INVALIDCONF = -8
- GEN_ECLAB_LOADED = -9
- GEN_LIBNOTCORRECTLYLOADED = -10
- GEN_USBLIBRARYERROR = -11
- GEN_FUNCTIONINPROGRESS = -12
- GEN_CHANNEL_RUNNING = -13
- GEN_DEVICE_NOTALLOWED = -14
- GEN_UPDATEPARAMETERS = -15
- INSTR_VMEERROR = -101
- INSTR_TOOMANYDATA = -102
- INSTR_RESPNOTPOSSIBLE = -103
- INSTR_RESPERROR = -104
- INSTR_MSGSIZEERROR = -105
- COMM_COMMFAILED = -200
- COMM_CONNECTIONFAILED = -201
- COMM_WAITINGACK = -202
- COMM_INVALIDIPADDRESS = -203
- COMM_ALLOCMEMFAILED = -204
- COMM_LOADFIRMWAREFAILED = -205
- COMM_INCOMPATIBLESERVER = -206
- COMM_MAXCONNREACHED = -207
- FIRM_FIRMFILENOTEXISTS = -300
- FIRM_FIRMFILEACCESSFAILED = -301
- FIRM_FIRMINVALIDFILE = -302
- FIRM_FIRMLOADINGFAILED = -303
- FIRM_XILFILENOTEXISTS = -304
- FIRM_XILFILEACCESSFAILED = -305
- FIRM_XILINVALIDFILE = -306
- FIRM_XILLOADINGFAILED = -307
- FIRM_FIRMWARENOTLOADED = -308
- FIRM_FIRMWAREINCOMPATIBLE = -309
- TECH_ECCFILENOTEXISTS = -400
- TECH_INCOMPATIBLEECC = -401
- TECH_ECCFILECORRUPTED = -402
- TECH_LOADTECHNIQUEFAILED = -403
- TECH_DATACORRUPTED = -404
- TECH_MEMFULL = -405
- OPT_CHANGE = 1
- OPT_OPEN_IN = 2
- OPT_4A_ERROR = 100
- OPT_4A_OVERTEMP = 101
- OPT_4A_BADPOWER = 102
- OPT_4A_POWERFAIL = 103
- OPT_48V_ERROR = 200
- OPT_48V_OVERTEMP = 201
- OPT_48V_BADPOWER = 202
- OPT_48V_POWERFAIL = 203
- OPT_10A5V_ERROR = 300
- OPT_10A5V_OVERTEMP = 301
- OPT_10A5V_BADPOWER = 302
- OPT_10A5V_POWERFAIL = 303
- OPT_1A48VP_ERROR = 600
- OPT_1A48VP_OVERTEMP = 601
- OPT_1A48VP_BADPOWER = 602
- OPT_1A48VP_POWERFAIL = 603
- class tomato.drivers.biologic.kbio.kbio_types.FIND_ERROR(value)
Bases:
enum.Enum
An enumeration.
- NO_ERROR = 0
- UNKNOWN_ERROR = -1
- INVALID_PARAMETER = -2
- ACK_TIMEOUT = -10
- EXP_RUNNING = -11
- CMD_FAILED = -12
- FIND_FAILED = -20
- SOCKET_WRITE = -21
- SOCKET_READ = -22
- CFG_MODIFY_FAILED = -30
- READ_PARAM_FAILED = -31
- EMPTY_PARAM = -32
- IP_FORMAT = -33
- NM_FORMAT = -34
- GW_FORMAT = -35
- IP_NOT_FOUND = -38
- IP_ALREADYEXIST = -39
Bio-Logic OEM package technique constants.
This module provides an enumeration of technique identifiers which DLL calls return.
- class tomato.drivers.biologic.kbio.tech_types.TECH_ID(value)
Bases:
enum.Enum
An enumeration.
- NONE = 0
- OCV = 100
- CA = 101
- CP = 102
- CV = 103
- PEIS = 104
- POTPULSE = 105
- GALPULSE = 106
- GEIS = 107
- STACKPEIS_SLAVE = 108
- STACKPEIS = 109
- CPOWER = 110
- CLOAD = 111
- FCT = 112
- SPEIS = 113
- SGEIS = 114
- STACKPDYN = 115
- STACKPDYN_SLAVE = 116
- STACKGDYN = 117
- STACKGEIS_SLAVE = 118
- STACKGEIS = 119
- STACKGDYN_SLAVE = 120
- CPO = 121
- CGA = 122
- COKINE = 123
- PDYN = 124
- GDYN = 125
- CVA = 126
- DPV = 127
- SWV = 128
- NPV = 129
- RNPV = 130
- DNPV = 131
- DPA = 132
- EVT = 133
- LP = 134
- GC = 135
- CPP = 136
- PDP = 137
- PSP = 138
- ZRA = 139
- MIR = 140
- PZIR = 141
- GZIR = 142
- LOOP = 150
- TO = 151
- TI = 152
- TOS = 153
- CPLIMIT = 155
- GDYNLIMIT = 156
- CALIMIT = 157
- PDYNLIMIT = 158
- LASV = 159
- MP = 167
- CASG = 169
- CASP = 170
Bio-Logic OEM package python API.
This module provides simple functions that are general purpose, and prone to be used in several modules.
- tomato.drivers.biologic.kbio.utils.class_name(obj)
Return the class name of an object.
- tomato.drivers.biologic.kbio.utils.exception_brief(e, extended=False)
Return either a simple version of an exception, or a more verbose one.
- tomato.drivers.biologic.kbio.utils.warn_diff(msg, cmp)
Check a predicate (assert) or a mismatch, and on error print a message.
- tomato.drivers.biologic.kbio.utils.error_diff(msg, cmp)
Check a predicate (assert) or a mismatch, and on error raise an exception.
- tomato.drivers.biologic.kbio.utils.prepend_path(path, filename)
Prepend a path to filename in case one is not already provided.
- tomato.drivers.biologic.kbio.utils.file_complete(filename, an_ext)
Append an extension to a filename unless the file already exists or if it already has one.
- tomato.drivers.biologic.kbio.utils.pp_plural(nb, label, num=True, nothing='')
Return a user friendly version of an ordinal and a label.
num is used to force a number version, nothing is what to say if there is nothing