ivm protocol python binding.
Project description
IVM
This is a python binding for IVM cross-platform library for EyePoint Signature Analyzers.
Installation
python -m pip install --upgrade pip
python -m pip install ivm
python3 instead of python should be used on some linux distributions.
Minimal example
from ivm import IvmDeviceHandle
from math import ceil
import time
# Useful constants
MEASUREMENT_COMPLETE = IvmDeviceHandle.CheckMeasurementStatusResponse.ReadyStatus.MEASUREMENT_COMPLETE
FRAME_SIZE = IvmDeviceHandle.GetMeasurementRequest.FrameNumber.FRAME_SIZE
# Set correct device URI here
# Format for Windows: com:\\.\COM1
# Format for Linux: com:///dev/ttyACM0
# Format for MacOS: com:///dev/tty.usbmodem000001234
device_uri = r'com:\\.\COM4'
try:
device = IvmDeviceHandle(device_uri)
print("Device opened")
print("Read device information... ", end="")
device_info = device.get_identity_information()
print("Done")
except RuntimeError:
print("Cannot open device {}.".format(device_uri))
print("Please check URI and try again.")
exit()
print(" -- Device information --")
print(" Product: {} {}".format(
bytes(device_info.manufacturer).decode("utf-8"),
bytes(device_info.product_name).decode("utf-8")
))
print(" Hardware version: {}.{}.{}".format(
device_info.hardware_major,
device_info.hardware_minor,
device_info.hardware_bugfix
))
print(" Serial number: {}".format(device_info.serial_number))
print(" Firmware version: {}.{}.{}".format(
device_info.firmware_major,
device_info.firmware_minor,
device_info.firmware_bugfix
))
# Launch single measurement in non-blocking mode
print("Measuring IV-curve... ", end="")
device.start_measurement()
# Wait for measurement to finish
while device.check_measurement_status().ready_status != MEASUREMENT_COMPLETE:
time.sleep(0.05)
print("Done")
# Number of points in a single curve measurement
number_of_points = device.get_measurement_settings().number_points
print("Number of points in a single curve measurement: {}".format(number_of_points))
# Get all measurement results
currents = []
voltages = []
# Measurements are stored in frames of size FRAME_SIZE
number_of_frames = ceil(number_of_points/FRAME_SIZE)
for frame_index in range(number_of_frames):
currents += list(device.get_measurement(frame_index).current)
voltages += list(device.get_measurement(frame_index).voltage)
print("List of measured currents (in mA):")
print(*("{:.4f}".format(k) for k in currents), sep=", ")
print("List of measured voltages (in V):")
print(*("{:.4f}".format(k) for k in voltages), sep=", ")
# Close the device
device.close_device()
print("Device closed")
More information
For documentation, software, examples of using the API and bindings for Python and C#, you can visit the Eyepoint website:
- English version: https://eyepoint.physlab.ru/en/
- Russian version: https://eyepoint.physlab.ru/ru/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ivm-1.1.2.tar.gz
(3.3 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
ivm-1.1.2-py3-none-any.whl
(3.3 MB
view details)
File details
Details for the file ivm-1.1.2.tar.gz.
File metadata
- Download URL: ivm-1.1.2.tar.gz
- Upload date:
- Size: 3.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50898d307afe78d76b8773740223b8ec8c63c1c2937afb28b2fccc8afa185dd5
|
|
| MD5 |
c9de5b9571120b6978db6c2985c12d4b
|
|
| BLAKE2b-256 |
b08f1f05ba4530a416cf61a41d3e6939b86392ad7aab1cdb81da129de2da71c7
|
File details
Details for the file ivm-1.1.2-py3-none-any.whl.
File metadata
- Download URL: ivm-1.1.2-py3-none-any.whl
- Upload date:
- Size: 3.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2929d2ad7e45e1e4f6e052d640a03cf5d71b0267d8a54bd2effdf5cf857c53d5
|
|
| MD5 |
4cd152ba64ff1aa8b287a9312f62e009
|
|
| BLAKE2b-256 |
ecb4a0854c2dc36b0725828771fcb43341d77fa5e63bcaf79d268e95d734ecee
|