{ "info": { "author": "Brian Carlsen", "author_email": "carlsen.bri@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Easy Biologic\nA library allowing easy control over BioLogic devices.\nHigh and low level control over Biologic devices are available. \nLow level control is included in the `lib` subpackage, while high level control\nis available in the main module. \n> Install with `python -m pip install easy-biologic`\n\n## High Level API\nThere are two high level API modules containing three classes, and two convenience modules.\n\n### Biologic Device\nRepresents an instance of a Biologic Device.\n\n#### Methods\n**BiologicDevice( address, timeout = 5 ):** Creates a new Biologic Device representing the device conencted at `address`.\n\n**connect( bin_file, xlx_file ):** Connects to the device, loading the bin and xlx file if provided.\n\n**disconnect():** Disconnects from the device.\n\n**is_connected():** Whether the device is connected or not.\n\n**load_technique( ch, technique, params, index = 0, last = True, types = none ):** Loads a technique on to the given device channel.\n\n**load_techniques( ch, techniques, parameters, types = None ):** Loads a series of techniques on to the given device channel.\n\n**update_parameters( ch, technique, parameters, index = 0, types = None ):** Update the parameters of the given technqiue on the specified device channel.\n\n**start_channel( ch ):** Starts the given channel.\n\n**start_channels( chs = None ):** Starts multiple channels.\n\n**stop_channel( ch ):** Stops the given channel.\n\n**stop_channels( chs = None ):** Stops the given channels.\n\n**channel_info( ch ):** Returns information about the given channel.\n\n**get_values( ch ):** Returns current values of the given channel.\n\n**get_data( ch ):** Returns buffered data of the given channel.\n\n\n#### Properties\n**address:** Connection address of the device.\n**idn:** ID of the device.\n**kind:** Device model.\n**info:** DeviceInfo structure.\n**plugged:** List of available channels. \n**channels:** List of ChannelInfo structures.\n**techniques:** List of TechParams loaded on each channel.\n\n### Biologic Program\n`Abstract Class`\nRepresents a program to be run on a device channel.\n\n#### Methods\n**BiologicProgram( device, channel, params, autoconnect = True, barrier = None ):** Creates a new program.\n\n**on_data( callback, index = None ):** Retgisters a callback function to run when data is collected.\n\n**run():** Runs the program.\n\n**save_data( file, append = False ):** Saves data to the given file.\n\n**_connect():** Connects to the device\n\n#### Properties\n**device:** BiologicDevice.
\n**channel:** Device channel.
\n**params:** Passed in parameters.
\n**autoconnect:** Whether connection to the device should be automatic or not.
\n**barrier:** A threading.Barrier to use for channel syncronization. [See ProgramRummer]
\n**field_titles:** Column names for saving data.
\n**data:** Data collected during the program.
\n**status:** Status of the program.
\n**fields:** Data fields teh program returns.
\n**technqiues:** List of techniques the program uses.\n\n### Program Runner\nRepresents a program to be run on a device channel.\n\n#### Methods\n**ProgramRunner( programs, sync = False ):** Creates a new program runner.\n\n**start():** Runs the programs.\n\n#### Properties\n**sync:** Whether to sync the threads or not. If True a threading.sync is \n\n### Base Programs\nContains basic implementations of BiologicPrograms.\n\n#### OCV\n##### Params\n**time:** Run time in seconds.\n\n**time_interval:** Maximum time between readings. \n[Default: 1]\n\n**voltage_interval:** Maximum interval between voltage readings.\n[Default: 0.01]\n\n#### CA\n##### Params\n**voltages:** List of voltages.\n\n**durations:** List of times in seconds.\n\n**vs_initial:** If step is vs. initial or previous. \n[Default: False] \n\n**time_interval:** Maximum time interval between points.\n[Default: 1]\n\n**current_interval:** Maximum current change between points.\n[Default: 0.001]\n\n**current_range:** Current range. Use ec_lib.IRange.\n[Default: IRange.m10 ]\n\n##### Methods\n**update_voltage( voltages, durations = None, vs_initial = None ):** Updates the voltage. \n\n#### CALimit\n##### Params\n**voltages:** List of voltages.\n\n**durations:** List of times in seconds.\n\n**vs_initial:** If step is vs. initial or previous. \n[Default: False] \n\n**time_interval:** Maximum time interval between points.\n[Default: 1]\n\n**current_interval:** Maximum current change between points.\n[Default: 0.001]\n\n**current_range:** Current range. Use ec_lib.IRange.\n[Default: IRange.m10 ]\n\n##### Methods\n**update_voltage( voltages, durations = None, vs_initial = None ):** Updates the voltage.\n\n#### JV_Scan\nPerforms a JV scan.\n\n##### Params\n**start:** Start voltage. \n[ Defualt: 0 ]\n\n**end:** End voltage.\n\n**step:** Voltage step. \n[Default: 0.01]\n\n**rate:** Scan rate in mV/s. \n[Default: 10]\n\n**average:** Average over points. \n[Default: False]\n\n\n#### MPP_Tracking\nPerforms MPP tracking.\n\n##### Params\n**init_vmpp:** Initial v_mpp.\n\n**probe_step:** Voltage step for probe. \n[Default: 0.01 V]\n\n**probe_points:** Number of data points to collect for probe. \n[Default: 5]\n\n**probe_interval:** How often to probe in seconds. \n[Default: 2]\n\n**run_time:** Run time in seconds.\n\n**record_interval:** How often to record a data point in seconds. \n[Default: 1]\n\n#### MPP_Tracking_Intermittent\nPerforms MPP tracking with perdiodic voltage holds.\n\n##### Params\n**init_vmpp:** Initial v_mpp.\n\n**probe_step:** Voltage step for probe. \n[Default: 0.01 V]\n\n**probe_points:** Number of data points to collect for probe. \n[Default: 5]\n\n**probe_interval:** How often to probe in seconds. \n[Default: 2]\n\n**run_time:** Run time in seconds.\n\n**hold_interval:** How often to hold the voltage.\n\n**hold_time:** How long to hold the voltage.\n\n**record_interval:** How often to record a data point in seconds. \n[Default: 1]\n\n\n#### MPP\nRuns MPP tracking and finds the initial Vmpp by finding the Voc, then performing a JV scan.\n\n##### Params\n**init_vmpp:** Initial v_mpp.\n\n**probe_step:** Voltage step for probe. \n[Default: 0.01 V]\n\n**probe_points:** Number of data points to collect for probe. \n[Default: 5]\n\n**probe_interval:** How often to probe in seconds. \n[Default: 2]\n\n**run_time:** Run time in seconds.\n\n**record_interval:** How often to record a data point in seconds. \n[Default: 1]\n\n#### MPP_Intermittent\nRuns MPP tracking with voltage holds and finds the initial Vmpp by finding the Voc, then performing a JV scan.\n\n##### Params\n**init_vmpp:** Initial v_mpp.\n\n**probe_step:** Voltage step for probe. \n[Default: 0.01 V]\n\n**probe_points:** Number of data points to collect for probe. \n[Default: 5]\n\n**probe_interval:** How often to probe in seconds. \n[Default: 2]\n\n**run_time:** Run time in seconds.\n\n**hold_interval:** How often to hold the voltage.\n\n**hold_time:** How long to hold the voltage.\n\n**record_interval:** How often to record a data point in seconds. \n[Default: 1]\n\n### Find Devices\nA convenience script for finding connected devices.\n\n## Low Level API\nThe low level API gives direct control of the Biologic device using the provided DLL libraries. The subpackage contains five modules.\n\n### EC Lib\nContains methods converting the `BL_*` DLL functions for use, enumeration classes to encapsulate program and device states, and C Structures for sending and receiving data from th device.\n\n#### Methods\n**connect( address, timeout = 5 ):** Connects to the device at the given address.\n\n**disconnect( idn ):** Disconnects given device.\n\n**is_connected( address ):** Checks if teh device at the given address is connected.\n\n**is_channel_connected( idn, ch ):** Checks whether the given device channel is connected.\n\n**get_channels( idn, length = 16 ):** Returns a list of booleans of whether the cahnnel at the index exists.\n\n**channel_info( idn, ch ):** Returns a ChannlInfo struct of the given device channel.\n\n**load_technique( idn, ch, technique, params, first = True, last = True, verbose = False ):** \nLoads the technique with parameter on the given device channel.\n\n**create_parameter( name, value, index, kind = None ):** \nCreates an EccParam struct.\n\n**update_paramters( idn, ch, technique, params, tech_index = 0 ):** \nUpdates the paramters of a technique on teh given device channel.\n\n**cast_parameters( parameters, types ):** Cast parameters to given types.\n\n**start_channel( idn, ch ):** Starts the given device channel.\n\n**start_channels( idn, ch ):** Starts the given device channels.\n\n**srop_channel( idn, ch ):** Stops the given device channel.\n\n**srop_channels( idn, chs ):** Stops the given device channels.\n\n**get_values( idn, ch ):** Gets the current values and states of the given device channel.\n\n**raise_exception( err ):** Raises an exception based on a calls error code. \n\n#### Enum Classes\n**IRange:** Current ranges.
\nValues: [ p100, n1, n10, n100, u1, u10, u100, m1, m10, m100, a1, KEEP, BOOSTER, AUTO ]\n\n**ERange:** Voltage ranges.
\nValues: [ v2_5, v5, v10, AUTO ]\n\n**ConnectionType:** Whether the device is floating or grounded.
\nValues: [ GROUNDED, FLOATING ]\n\n**TechniqueId:** ID of the technique. (Not fully implemented.)
\nValues: [ NONE, OCV, CA, CP, CV, PEIS, CALIMIT ]\n\n**ChannelState:** State of the channel.
\nValues: [ STOP, RUN, PAUSE ]\n\n**ParameterType:** Type of a parameter.
\nValues: [ INT32, BOOLEAN, SINGLE, FLOAT ]\n(FLOAT is an alias of SINGLE.)\n\n#### Structures\n**DeviceInfo:** Information representing the device. Used by `connect()`.
\nFields: [ DeviceCode, RAMSize, CPU, NumberOfChannles, NumberOfSlots, FirmwareVersion, FirmwareDate_yyyy, FirmwareDate_mm, FirmwareDate_dd, HTdisplayOn, NbOfConnectedPC ]\n\n**ChannelInfo:** Information representing a device channel. Used by `channel_info()`.
\nFields: [ Channel, BoardVersion, BoardSerialNumber, FirmwareVersion, XilinxVersion, AmpCode, NbAmps, Lcboard, Zboard, RESERVED, MemSize, State, MaxIRange, MinIRange, MaxBandwidth, NbOfTechniques ]\n\n**EccParam:** A technique parameter.
\nFields: [ ParamStr, ParamType, ParamVal, ParamIndex ]\n\n**EccParams:** A bundle of technique parameters.
\nFields: [ len, pParams ]\n\n**CurrentValues:** Values measured from and states of the device.
\nFields: [ State, MemFilled, TimeBase, Ewe, EweRangeMin, EweRangeMax, Ece, EceRangeMin, EceRangeMax, Eoverflow, I, IRange, Ioverflow, ElapsedTime, Freq, Rcomp, Saturation, OptErr, OptPos ]\n\n**DataInfo:** Metadata of measured data.
\nFields: [ IRQskipped, NbRows, NbCols, TechniqueIndex, TechniqueID, processIndex, loop, StartTime, MuxPad ]\n\n### Data Parser\nParses data received from a technique and contains technique fields for different device types.\n\n#### Methods\n**parse( datam info, fields = None ):** Parses data received from a technique.\n\n**calculate_time( t_high, t_low, data_info, current_value ):** Calculates elapsed time from time data.\n\n#### Classes\n**VMP3_Fields:** Contains technqiue fields for VMP3 devices. \n(Not all techniques are implemented)\nProperties: [ OCV, CP, CA, CPLIMIT, CALIMIT, CV ]\n\n**SP300_Fields:** Contains technqiue fields for SP-300 devices. \n(Not all techniques are implemented)\nProperties: [ OCV, CP, CA, CPLIMIT, CALIMIT, CV ]\n\n### EC Find\nImplements the BL Find DLL.\n\n#### Methods\nAll BL Find DLL functions are implemented under the same name.\n\n**find_devices( connection = None ):** Finds conencted devices.\n\n### Technique Fields\nParameter types for techniques. (Not all techniques are implemented.)\n\n#### Classes\nOCV, CV, CA, CALIMIT\n\n### EC Errors\nImplements EC errors.\n\n#### Classes\n**EcError( value = None, code = None, message = None )** \n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "easy-biologic", "package_url": "https://pypi.org/project/easy-biologic/", "platform": "", "project_url": "https://pypi.org/project/easy-biologic/", "project_urls": null, "release_url": "https://pypi.org/project/easy-biologic/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Controller class for communicating with BioLogic devices.", "version": "0.0.1" }, "last_serial": 5995221, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3339b2157c09bbb627e7c8a7a5456d58", "sha256": "433390b4c742155e0172997ebdd02669918477ea37b380d5426a7fe0c098f00b" }, "downloads": -1, "filename": "easy_biologic-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3339b2157c09bbb627e7c8a7a5456d58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51796, "upload_time": "2019-10-18T11:45:39", "url": "https://files.pythonhosted.org/packages/23/c6/454d4b528e89c6cc280ba945fcf68aaf20c9a184e247d9e508ee7d2daf50/easy_biologic-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3444b4faaa6b3318837b7a1be8c93a61", "sha256": "903008d632dc9497150fae734ff5390476e28091cb4523b39967ea1258efd8ac" }, "downloads": -1, "filename": "easy-biologic-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3444b4faaa6b3318837b7a1be8c93a61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26799, "upload_time": "2019-10-18T11:45:41", "url": "https://files.pythonhosted.org/packages/f9/c4/4f220a0860090c117f930dfef3bcaa99d18d9976b041cfb6ccbee1e6bbf8/easy-biologic-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3339b2157c09bbb627e7c8a7a5456d58", "sha256": "433390b4c742155e0172997ebdd02669918477ea37b380d5426a7fe0c098f00b" }, "downloads": -1, "filename": "easy_biologic-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3339b2157c09bbb627e7c8a7a5456d58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51796, "upload_time": "2019-10-18T11:45:39", "url": "https://files.pythonhosted.org/packages/23/c6/454d4b528e89c6cc280ba945fcf68aaf20c9a184e247d9e508ee7d2daf50/easy_biologic-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3444b4faaa6b3318837b7a1be8c93a61", "sha256": "903008d632dc9497150fae734ff5390476e28091cb4523b39967ea1258efd8ac" }, "downloads": -1, "filename": "easy-biologic-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3444b4faaa6b3318837b7a1be8c93a61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26799, "upload_time": "2019-10-18T11:45:41", "url": "https://files.pythonhosted.org/packages/f9/c4/4f220a0860090c117f930dfef3bcaa99d18d9976b041cfb6ccbee1e6bbf8/easy-biologic-0.0.1.tar.gz" } ] }