Skip to content

Документация открытых методов класса UsbDevice

pyspectrum.UsbDevice

Класс для работы с USB устройством.

Пример использования:

device = UsbDevice(vendor=0x0403, product=0x6014)
device.set_timer(1)
frame = device.read_frame(10)
device.close()

__init__(vendor, product, read_timeout=10000)

Parameters:

Name Type Description Default
vendor int

Vendor ID USB устройства

required
product int

Product ID USB устройства

required
read_timeout int

Timeout для операций чтения (в миллисекундах)

10000

close()

Закрывает соединение с USB Спектрометром.

is_opened: bool property

Открыто ли USB устройство.

Returns:

Type Description
bool

True если USB Device открыт для работы

get_pixel_count()

Возвращает кол-во пикселей в линии.

Returns:

Type Description
int

Кол-во пикселей

set_timer(millis)

Выставляет продолжительность единичного кадра (накопления) - время базовой экспозиции τ.

Базовое время экспозиции определяется из мантиссы и экспоненты таймера как:

τ = 0.1 ms * mant * 10 ^ exp

Размеры мантиссы и экспоненты:

  • Мантиса таймера - 10 бит

  • Экспонента таймера - 2 бита

Структура данных пакета команды:

DATA[0] = мантисса, младший байт
DATA[1] = мантисса, старший байт
DATA[2] = экспонента
DATA[3] = 0

Поле ANS_DATA в ответе содержит 0.

Parameters:

Name Type Description Default
millis int

время базовой экспозиции в мс

required

read_frame(n_times)

Читает кадр спектральных данных с USB спектрометра.

Один кадр состоит из n_times накоплений/линий.

Каждое накопление/линия в свою очередь состоит из pixelNumber пикселей в гибридной сборке фотодетекторов.

  • pixelNumber - устанавливается командой CMD_CODE_WRITE_PIXEL_NUMBER

  • Каждый пиксель - 2 байта

  • Каждый кадр = pixelNumber * n_times * 2 байт

Parameters:

Name Type Description Default
n_times int

кол-во накоплений/линий (4 байта DATA поля команды)

required

Returns:

Type Description
Frame

Объект кадра