Skip to main content

ivm protocol python binding.

Project description

IVM

This is a python binding for IVM cross-platform library for EyePoint Signature Analyzers.

IVM

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:

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ivm-1.1.2-py3-none-any.whl (3.3 MB view details)

Uploaded Python 3

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

Hashes for ivm-1.1.2.tar.gz
Algorithm Hash digest
SHA256 50898d307afe78d76b8773740223b8ec8c63c1c2937afb28b2fccc8afa185dd5
MD5 c9de5b9571120b6978db6c2985c12d4b
BLAKE2b-256 b08f1f05ba4530a416cf61a41d3e6939b86392ad7aab1cdb81da129de2da71c7

See more details on using hashes here.

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

Hashes for ivm-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2929d2ad7e45e1e4f6e052d640a03cf5d71b0267d8a54bd2effdf5cf857c53d5
MD5 4cd152ba64ff1aa8b287a9312f62e009
BLAKE2b-256 ecb4a0854c2dc36b0725828771fcb43341d77fa5e63bcaf79d268e95d734ecee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page