Modules
harp.devices.currentdriver
#
CurrentDriver
#
Bases: Device
CurrentDriver class for controlling the device.
read_dac0_voltage()
#
Reads the contents of the Dac0Voltage register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Dac0Voltage register. |
read_dac1_voltage()
#
Reads the contents of the Dac1Voltage register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Dac1Voltage register. |
read_digital_input_state()
#
Reads the contents of the DigitalInputState register.
Returns:
Type | Description |
---|---|
DigitalInputs
|
Value read from the DigitalInputState register. |
read_enable_events()
#
Reads the contents of the EnableEvents register.
Returns:
Type | Description |
---|---|
CurrentDriverEvents
|
Value read from the EnableEvents register. |
read_led0_current()
#
Reads the contents of the Led0Current register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led0Current register. |
read_led0_max_current()
#
Reads the contents of the Led0MaxCurrent register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led0MaxCurrent register. |
read_led1_current()
#
Reads the contents of the Led1Current register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led1Current register. |
read_led1_max_current()
#
Reads the contents of the Led1MaxCurrent register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led1MaxCurrent register. |
read_led_disable()
#
Reads the contents of the LedDisable register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the LedDisable register. |
read_led_enable()
#
Reads the contents of the LedEnable register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the LedEnable register. |
read_led_state()
#
Reads the contents of the LedState register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the LedState register. |
read_output_clear()
#
Reads the contents of the OutputClear register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputClear register. |
read_output_set()
#
Reads the contents of the OutputSet register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputSet register. |
read_output_state()
#
Reads the contents of the OutputState register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputState register. |
read_output_toggle()
#
Reads the contents of the OutputToggle register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputToggle register. |
read_pulse_duty_cycle_led0()
#
Reads the contents of the PulseDutyCycleLed0 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseDutyCycleLed0 register. |
read_pulse_duty_cycle_led1()
#
Reads the contents of the PulseDutyCycleLed1 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseDutyCycleLed1 register. |
read_pulse_enable()
#
Reads the contents of the PulseEnable register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the PulseEnable register. |
read_pulse_frequency_led0()
#
Reads the contents of the PulseFrequencyLed0 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseFrequencyLed0 register. |
read_pulse_frequency_led1()
#
Reads the contents of the PulseFrequencyLed1 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseFrequencyLed1 register. |
read_ramp_config()
#
Reads the contents of the RampConfig register.
Returns:
Type | Description |
---|---|
LedRamps
|
Value read from the RampConfig register. |
read_ramp_led0()
#
Reads the contents of the RampLed0 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the RampLed0 register. |
read_ramp_led1()
#
Reads the contents of the RampLed1 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the RampLed1 register. |
write_dac0_voltage(value)
#
Writes a value to the Dac0Voltage register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Dac0Voltage register. |
required |
write_dac1_voltage(value)
#
Writes a value to the Dac1Voltage register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Dac1Voltage register. |
required |
write_enable_events(value)
#
Writes a value to the EnableEvents register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
CurrentDriverEvents
|
Value to write to the EnableEvents register. |
required |
write_led0_current(value)
#
Writes a value to the Led0Current register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led0Current register. |
required |
write_led0_max_current(value)
#
Writes a value to the Led0MaxCurrent register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led0MaxCurrent register. |
required |
write_led1_current(value)
#
Writes a value to the Led1Current register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led1Current register. |
required |
write_led1_max_current(value)
#
Writes a value to the Led1MaxCurrent register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led1MaxCurrent register. |
required |
write_led_disable(value)
#
Writes a value to the LedDisable register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the LedDisable register. |
required |
write_led_enable(value)
#
Writes a value to the LedEnable register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the LedEnable register. |
required |
write_led_state(value)
#
Writes a value to the LedState register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the LedState register. |
required |
write_output_clear(value)
#
Writes a value to the OutputClear register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputClear register. |
required |
write_output_set(value)
#
Writes a value to the OutputSet register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputSet register. |
required |
write_output_state(value)
#
Writes a value to the OutputState register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputState register. |
required |
write_output_toggle(value)
#
Writes a value to the OutputToggle register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputToggle register. |
required |
write_pulse_duty_cycle_led0(value)
#
Writes a value to the PulseDutyCycleLed0 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseDutyCycleLed0 register. |
required |
write_pulse_duty_cycle_led1(value)
#
Writes a value to the PulseDutyCycleLed1 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseDutyCycleLed1 register. |
required |
write_pulse_enable(value)
#
Writes a value to the PulseEnable register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the PulseEnable register. |
required |
write_pulse_frequency_led0(value)
#
Writes a value to the PulseFrequencyLed0 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseFrequencyLed0 register. |
required |
write_pulse_frequency_led1(value)
#
Writes a value to the PulseFrequencyLed1 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseFrequencyLed1 register. |
required |
write_ramp_config(value)
#
Writes a value to the RampConfig register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedRamps
|
Value to write to the RampConfig register. |
required |
write_ramp_led0(value)
#
Writes a value to the RampLed0 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the RampLed0 register. |
required |
write_ramp_led1(value)
#
Writes a value to the RampLed1 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the RampLed1 register. |
required |
CurrentDriverEvents
#
Bases: IntFlag
Specifies the active events in the device.
Attributes:
Name | Type | Description |
---|---|---|
DIS |
int
|
No description currently available |
CurrentDriverRegisters
#
Bases: IntEnum
Enum for all available registers in the CurrentDriver device.
Attributes:
Name | Type | Description |
---|---|---|
DIGITAL_INPUT_STATE |
int
|
Reflects the state of DI digital lines |
OUTPUT_SET |
int
|
Set the specified digital output lines |
OUTPUT_CLEAR |
int
|
Clear the specified digital output lines |
OUTPUT_TOGGLE |
int
|
Toggle the specified digital output lines |
OUTPUT_STATE |
int
|
Write the state of all digital output lines |
LED0_CURRENT |
int
|
Configuration of current to drive LED 0 [0:1000] mA |
LED1_CURRENT |
int
|
Configuration of current to drive LED 1 [0:1000] mA |
DAC0_VOLTAGE |
int
|
Configuration of DAC 0 voltage [0:5000] mV |
DAC1_VOLTAGE |
int
|
Configuration of DAC 1 voltage [0:5000] mV |
LED_ENABLE |
int
|
Enable driver on the selected output |
LED_DISABLE |
int
|
Disable driver on the selected output |
LED_STATE |
int
|
Control the correspondent LED output |
LED0_MAX_CURRENT |
int
|
Configuration of current to drive LED 0 [0:1000] mA |
LED1_MAX_CURRENT |
int
|
Configuration of current to drive LED 1 [0:1000] mA |
PULSE_ENABLE |
int
|
Enables the pulse function for the specified output DACs/LEDs |
PULSE_DUTY_CYCLE_LED0 |
int
|
Specifies the duty cycle of the output pulse from 1 to 100 |
PULSE_DUTY_CYCLE_LED1 |
int
|
Specifies the duty cycle of the output pulse from 1 to 100 |
PULSE_FREQUENCY_LED0 |
int
|
Specifies the frequency of the output pulse in Hz |
PULSE_FREQUENCY_LED1 |
int
|
Specifies the frequency of the output pulse in Hz |
RAMP_LED0 |
int
|
Specifies the ramp time of the transitions between different current/voltage values in milliseconds. The ramp will only work if the pulse function is off |
RAMP_LED1 |
int
|
Specifies the ramp time of the transitions between different current/voltage values in milliseconds. The ramp will only work if the pulse function is off |
RAMP_CONFIG |
int
|
Specifies when the ramps are applied for each DAC/LED |
ENABLE_EVENTS |
int
|
Specifies the active events in the device |
Device
#
The Device
class provides the interface for interacting with Harp devices. This implementation of the Harp device was based on the official documentation available on the harp-tech website.
Attributes:
Name | Type | Description |
---|---|---|
WHO_AM_I |
int
|
The device ID number. A list of devices can be found here |
DEFAULT_DEVICE_NAME |
str
|
The device name, i.e. "Behavior". This name is derived by cross-referencing the |
HW_VERSION_H |
int
|
The major hardware version |
HW_VERSION_L |
int
|
The minor hardware version |
ASSEMBLY_VERSION |
int
|
The version of the assembled components |
HARP_VERSION_H |
int
|
The major Harp core version |
HARP_VERSION_L |
int
|
The minor Harp core version |
FIRMWARE_VERSION_H |
int
|
The major firmware version |
FIRMWARE_VERSION_L |
int
|
The minor firmware version |
DEVICE_NAME |
str
|
The device name stored in the Harp device |
SERIAL_NUMBER |
(int, optional)
|
The serial number of the device |
__enter__()
#
Support for using Device with 'with' statement.
Returns:
Type | Description |
---|---|
Device
|
The Device instance |
__exit__(exc_type, exc_val, exc_tb)
#
Cleanup resources when exiting the 'with' block.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
exc_type
|
Exception type or None
|
Type of the exception that caused the context to be exited |
required |
exc_val
|
Exception or None
|
Exception instance that caused the context to be exited |
required |
exc_tb
|
traceback or None
|
Traceback if an exception occurred |
required |
__init__(serial_port, dump_file_path=None, read_timeout_s=1, timeout_strategy=TimeoutStrategy.RAISE)
#
Parameters:
Name | Type | Description | Default |
---|---|---|---|
serial_port
|
str
|
The serial port used to establish the connection with the Harp device. It must be denoted as |
required |
dump_file_path
|
Optional[str]
|
The binary file to which all Harp messages will be written |
None
|
read_timeout_s
|
float
|
TODO |
1
|
alive_en(enable)
#
Sets the ALIVE_EN bit of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
enable
|
bool
|
If True, enables the ALIVE_EN bit. If False, disables it |
required |
Returns:
Type | Description |
---|---|
bool
|
True if the operation was successful, False otherwise |
connect()
#
Connects to the Harp device.
disconnect()
#
Disconnects from the Harp device.
dump_registers()
#
Asserts the DUMP bit to dump the values of all core and app registers as Harp Read Reply Messages. More information on the DUMP bit can be found here.
Returns:
Type | Description |
---|---|
list
|
The list containing the reply Harp messages for all the device's registers |
event_count()
#
Gets the number of events in the event queue.
Returns:
Type | Description |
---|---|
int
|
The number of events in the event queue |
get_events()
#
Gets all events from the event queue.
Returns:
Type | Description |
---|---|
list
|
The list containing every Harp event message that were on the queue |
info()
#
Prints the device information.
load()
#
Loads the data stored in the device's common registers.
mute_reply(enable)
#
Sets the MUTE_REPLY bit of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
enable
|
bool
|
If True, the Replies to all the Commands are muted. If False, un-mutes them |
required |
Returns:
Type | Description |
---|---|
bool
|
True if the operation was successful, False otherwise |
op_led_en(enable)
#
Sets the operation LED of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
enable
|
bool
|
If True, enables the operation LED. If False, disables it |
required |
Returns:
Type | Description |
---|---|
bool
|
True if the operation was successful, False otherwise |
read_float(address)
#
Reads the value of a register of type Float.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_operation_ctrl()
#
Reads the OPERATION_CTRL register of the device.
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
read_s16(address)
#
Reads the value of a register of type S16.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_s32(address)
#
Reads the value of a register of type S32.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_s64(address)
#
Reads the value of a register of type S64.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_s8(address)
#
Reads the value of a register of type S8.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_u16(address)
#
Reads the value of a register of type U16.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_u32(address)
#
Reads the value of a register of type U32.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_u64(address)
#
Reads the value of a register of type U64.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
read_u8(address)
#
Reads the value of a register of type U8.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be read |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message that will contain the value read from the register |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
reset_device(reset_mode=ResetMode.RST_DEF)
#
Resets the device and reboots with all the registers with the default values. Beware that the EEPROM will be erased. More information on the reset device register can be found here.
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
send(message, *, expect_reply=True, timeout_strategy=None)
#
Sends a Harp message and (optionally) waits for a reply.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
HarpMessage
|
The HarpMessage to be sent to the device |
required |
expect_reply
|
bool
|
If False, do not wait for a reply (fire-and-forget) |
True
|
timeout_strategy
|
TimeoutStrategy | None
|
Override the device-level timeout strategy for this call |
None
|
Returns:
Type | Description |
---|---|
ReplyHarpMessage | None
|
Reply (or None when allowed by the timeout strategy or expect_reply=False) |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
set_clock_config(clock_config)
#
Sets the clock configuration of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
clock_config
|
ClockConfig
|
The clock configuration value |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
set_mode(mode)
#
Sets the operation mode of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mode
|
DeviceMode
|
The new device mode value |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
set_timestamp_offset(timestamp_offset)
#
When the value of this register is above 0 (zero), the device's timestamp will be offset by this amount. The register is sensitive to 500 microsecond increments. This register is non-volatile.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timestamp_offset
|
int
|
The timestamp offset value |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
visual_en(enable)
#
Sets the status led of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
enable
|
bool
|
If True, enables the status led. If False, disables it |
required |
Returns:
Type | Description |
---|---|
bool
|
True if the operation was successful, False otherwise |
write_float(address, value)
#
Writes the value of a register of type Float.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
float | list[float]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_operation_ctrl(mode=None, mute_rpl=None, visual_en=None, op_led_en=None, alive_en=None)
#
Writes the OPERATION_CTRL register of the device.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mode
|
OperationMode
|
The new operation mode value |
None
|
mute_rpl
|
bool
|
If True, the Replies to all the Commands are muted |
None
|
visual_en
|
bool
|
If True, enables the status led |
None
|
op_led_en
|
bool
|
If True, enables the operation LED |
None
|
alive_en
|
bool
|
If True, enables the ALIVE_EN bit |
None
|
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
write_s16(address, value)
#
Writes the value of a register of type S16.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_s32(address, value)
#
Writes the value of a register of type S32.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_s64(address, value)
#
Writes the value of a register of type S64.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_s8(address, value)
#
Writes the value of a register of type S8.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_u16(address, value)
#
Writes the value of a register of type U16.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_u32(address, value)
#
Writes the value of a register of type U32.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_u64(address, value)
#
Writes the value of a register of type U64.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
write_u8(address, value)
#
Writes the value of a register of type U8.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
address
|
int
|
The register to be written on |
required |
value
|
int | list[int]
|
The value to be written to the register |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The reply to the Harp message |
Raises:
Type | Description |
---|---|
HarpTimeoutError
|
If no reply is received and the effective strategy requires raising |
DigitalInputs
#
Bases: IntFlag
Specifies the state of port digital input lines
Attributes:
Name | Type | Description |
---|---|---|
DI0 |
int
|
No description currently available |
DI1 |
int
|
No description currently available |
DigitalOutputs
#
Bases: IntFlag
Specifies the state of port digital output lines
Attributes:
Name | Type | Description |
---|---|---|
DO0 |
int
|
No description currently available |
DO1 |
int
|
No description currently available |
HarpMessage
#
The HarpMessage
class implements the Harp message as described in the protocol.
Attributes:
Name | Type | Description |
---|---|---|
frame |
bytearray
|
The bytearray containing the whole Harp message |
message_type |
MessageType
|
The message type |
length |
int
|
The length parameter of the Harp message |
address |
int
|
The address of the register to which the Harp message refers to |
port |
int
|
Indicates the origin or destination of the Harp message in case the device is a hub of Harp devices. The value 255 points to the device itself (default value). |
payload_type |
PayloadType
|
The payload type |
checksum |
int
|
The sum of all bytes contained in the Harp message |
address
property
#
The address of the register to which the Harp message refers to.
Returns:
Type | Description |
---|---|
int
|
The address of the register to which the Harp message refers to |
checksum
property
#
The sum of all bytes contained in the Harp message.
Returns:
Type | Description |
---|---|
int
|
The sum of all bytes contained in the Harp message |
frame
property
#
The bytearray containing the whole Harp message.
Returns:
Type | Description |
---|---|
bytearray
|
The bytearray containing the whole Harp message |
length
property
#
The length parameter of the Harp message.
Returns:
Type | Description |
---|---|
int
|
The length parameter of the Harp message |
message_type
property
#
payload
property
#
The payload sent in the write Harp message.
Returns:
Type | Description |
---|---|
Union[int, list[int]]
|
The payload sent in the write Harp message |
payload_type
property
#
port
property
writable
#
Indicates the origin or destination of the Harp message in case the device is a hub of Harp devices. The value 255 points to the device itself (default value).
Returns:
Type | Description |
---|---|
int
|
The port value |
__repr__()
#
Prints debug representation of the reply message.
Returns:
Type | Description |
---|---|
str
|
The debug representation of the reply message |
__str__()
#
Prints friendly representation of a Harp message.
Returns:
Type | Description |
---|---|
str
|
The representation of the Harp message |
calculate_checksum()
#
Calculates the checksum of the Harp message.
Returns:
Type | Description |
---|---|
int
|
The value of the checksum |
create(message_type, address, payload_type, value=None)
staticmethod
#
Creates a Harp message.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message_type
|
MessageType
|
The message type. It can only be of type READ or WRITE |
required |
address
|
int
|
The address of the register that the message will interact with |
required |
payload_type
|
PayloadType
|
The payload type |
required |
value
|
Optional[int | list[int] | float | list[float]]
|
The payload of the message. If message_type == MessageType.WRITE, the value cannot be None |
None
|
parse(frame)
staticmethod
#
Parses a bytearray to a (reply) Harp message.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
frame
|
bytearray
|
The bytearray will be parsed into a (reply) Harp message |
required |
Returns:
Type | Description |
---|---|
ReplyHarpMessage
|
The Harp message object parsed from the original bytearray |
HarpReadException
#
Bases: HarpException
Exception raised when there is an error reading from a register in the Harp device.
HarpWriteException
#
Bases: HarpException
Exception raised when there is an error writing to a register in the Harp device.
LedOutputs
#
Bases: IntFlag
Specifies the state of LED driver's outputs
Attributes:
Name | Type | Description |
---|---|---|
LED0 |
int
|
No description currently available |
LED1 |
int
|
No description currently available |
LedRamps
#
Bases: IntFlag
Specifies the configuration of LED driver's ramps
Attributes:
Name | Type | Description |
---|---|---|
LED0_UP |
int
|
No description currently available |
LED0_DOWN |
int
|
No description currently available |
LED1_UP |
int
|
No description currently available |
LED1_DOWN |
int
|
No description currently available |
MessageType
#
Bases: IntEnum
An enumeration of the allowed message types of a Harp message. More information on the MessageType byte of a Harp message can be found here.
Attributes:
Name | Type | Description |
---|---|---|
READ |
int
|
The value that corresponds to a Read Harp message (1) |
WRITE |
int
|
The value that corresponds to a Write Harp message (2) |
EVENT |
int
|
The value that corresponds to an Event Harp message (3). Messages of this type are only meant to be send by the device |
READ_ERROR |
int
|
The value that corresponds to a Read Error Harp message (9). Messages of this type are only meant to be send by the device |
WRITE_ERROR |
int
|
The value that corresponds to a Write Error Harp message (10). Messages of this type are only meant to be send by the device |
PayloadType
#
Bases: IntEnum
An enumeration of the allowed payload types of a Harp message. More information on the PayloadType byte of a Harp message can be found here.
Attributes:
Name | Type | Description |
---|---|---|
U8 |
int
|
The value that corresponds to a message of type U8 |
S8 |
int
|
The value that corresponds to a message of type S8 |
U16 |
int
|
The value that corresponds to a message of type U16 |
S16 |
int
|
The value that corresponds to a message of type S16 |
U32 |
int
|
The value that corresponds to a message of type U32 |
S32 |
int
|
The value that corresponds to a message of type S32 |
U64 |
int
|
The value that corresponds to a message of type U64 |
S64 |
int
|
The value that corresponds to a message of type S64 |
Float |
int
|
The value that corresponds to a message of type Float |
Timestamp |
int
|
The value that corresponds to a message of type Timestamp. This is not a valid PayloadType, but it is used to indicate that the message has a timestamp. |
TimestampedU8 |
int
|
The value that corresponds to a message of type TimestampedU8 |
TimestampedS8 |
int
|
The value that corresponds to a message of type TimestampedS8 |
TimestampedU16 |
int
|
The value that corresponds to a message of type TimestampedU16 |
TimestampedS16 |
int
|
The value that corresponds to a message of type TimestampedS16 |
TimestampedU32 |
int
|
The value that corresponds to a message of type TimestampedU32 |
TimestampedS32 |
int
|
The value that corresponds to a message of type TimestampedS32 |
TimestampedU64 |
int
|
The value that corresponds to a message of type TimestampedU64 |
TimestampedS64 |
int
|
The value that corresponds to a message of type TimestampedS64 |
TimestampedFloat |
int
|
The value that corresponds to a message of type TimestampedFloat |
ReplyHarpMessage
#
Bases: HarpMessage
A response message from a Harp device.
Attributes:
Name | Type | Description |
---|---|---|
payload |
Union[int, list[int]]
|
The message payload formatted as the appropriate type |
timestamp |
float
|
The Harp timestamp at which the message was sent |
is_error
property
#
Indicates if this HarpMessage is an error message or not.
Returns:
Type | Description |
---|---|
bool
|
Returns True if this HarpMessage is an error message, False otherwise. |
timestamp
property
#
The Harp timestamp at which the message was sent.
Returns:
Type | Description |
---|---|
float
|
The Harp timestamp at which the message was sent |
__init__(frame)
#
Parameters:
Name | Type | Description | Default |
---|---|---|---|
frame
|
bytearray
|
The Harp message in bytearray format |
required |
payload_as_string()
#
Returns the payload as a str.
Returns:
Type | Description |
---|---|
str
|
The payload parsed as a str |
harpdevice
#
CurrentDriver
#
Bases: Device
CurrentDriver class for controlling the device.
read_dac0_voltage()
#
Reads the contents of the Dac0Voltage register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Dac0Voltage register. |
read_dac1_voltage()
#
Reads the contents of the Dac1Voltage register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Dac1Voltage register. |
read_digital_input_state()
#
Reads the contents of the DigitalInputState register.
Returns:
Type | Description |
---|---|
DigitalInputs
|
Value read from the DigitalInputState register. |
read_enable_events()
#
Reads the contents of the EnableEvents register.
Returns:
Type | Description |
---|---|
CurrentDriverEvents
|
Value read from the EnableEvents register. |
read_led0_current()
#
Reads the contents of the Led0Current register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led0Current register. |
read_led0_max_current()
#
Reads the contents of the Led0MaxCurrent register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led0MaxCurrent register. |
read_led1_current()
#
Reads the contents of the Led1Current register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led1Current register. |
read_led1_max_current()
#
Reads the contents of the Led1MaxCurrent register.
Returns:
Type | Description |
---|---|
float
|
Value read from the Led1MaxCurrent register. |
read_led_disable()
#
Reads the contents of the LedDisable register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the LedDisable register. |
read_led_enable()
#
Reads the contents of the LedEnable register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the LedEnable register. |
read_led_state()
#
Reads the contents of the LedState register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the LedState register. |
read_output_clear()
#
Reads the contents of the OutputClear register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputClear register. |
read_output_set()
#
Reads the contents of the OutputSet register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputSet register. |
read_output_state()
#
Reads the contents of the OutputState register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputState register. |
read_output_toggle()
#
Reads the contents of the OutputToggle register.
Returns:
Type | Description |
---|---|
DigitalOutputs
|
Value read from the OutputToggle register. |
read_pulse_duty_cycle_led0()
#
Reads the contents of the PulseDutyCycleLed0 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseDutyCycleLed0 register. |
read_pulse_duty_cycle_led1()
#
Reads the contents of the PulseDutyCycleLed1 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseDutyCycleLed1 register. |
read_pulse_enable()
#
Reads the contents of the PulseEnable register.
Returns:
Type | Description |
---|---|
LedOutputs
|
Value read from the PulseEnable register. |
read_pulse_frequency_led0()
#
Reads the contents of the PulseFrequencyLed0 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseFrequencyLed0 register. |
read_pulse_frequency_led1()
#
Reads the contents of the PulseFrequencyLed1 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the PulseFrequencyLed1 register. |
read_ramp_config()
#
Reads the contents of the RampConfig register.
Returns:
Type | Description |
---|---|
LedRamps
|
Value read from the RampConfig register. |
read_ramp_led0()
#
Reads the contents of the RampLed0 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the RampLed0 register. |
read_ramp_led1()
#
Reads the contents of the RampLed1 register.
Returns:
Type | Description |
---|---|
int
|
Value read from the RampLed1 register. |
write_dac0_voltage(value)
#
Writes a value to the Dac0Voltage register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Dac0Voltage register. |
required |
write_dac1_voltage(value)
#
Writes a value to the Dac1Voltage register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Dac1Voltage register. |
required |
write_enable_events(value)
#
Writes a value to the EnableEvents register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
CurrentDriverEvents
|
Value to write to the EnableEvents register. |
required |
write_led0_current(value)
#
Writes a value to the Led0Current register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led0Current register. |
required |
write_led0_max_current(value)
#
Writes a value to the Led0MaxCurrent register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led0MaxCurrent register. |
required |
write_led1_current(value)
#
Writes a value to the Led1Current register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led1Current register. |
required |
write_led1_max_current(value)
#
Writes a value to the Led1MaxCurrent register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
float
|
Value to write to the Led1MaxCurrent register. |
required |
write_led_disable(value)
#
Writes a value to the LedDisable register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the LedDisable register. |
required |
write_led_enable(value)
#
Writes a value to the LedEnable register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the LedEnable register. |
required |
write_led_state(value)
#
Writes a value to the LedState register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the LedState register. |
required |
write_output_clear(value)
#
Writes a value to the OutputClear register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputClear register. |
required |
write_output_set(value)
#
Writes a value to the OutputSet register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputSet register. |
required |
write_output_state(value)
#
Writes a value to the OutputState register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputState register. |
required |
write_output_toggle(value)
#
Writes a value to the OutputToggle register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
DigitalOutputs
|
Value to write to the OutputToggle register. |
required |
write_pulse_duty_cycle_led0(value)
#
Writes a value to the PulseDutyCycleLed0 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseDutyCycleLed0 register. |
required |
write_pulse_duty_cycle_led1(value)
#
Writes a value to the PulseDutyCycleLed1 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseDutyCycleLed1 register. |
required |
write_pulse_enable(value)
#
Writes a value to the PulseEnable register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedOutputs
|
Value to write to the PulseEnable register. |
required |
write_pulse_frequency_led0(value)
#
Writes a value to the PulseFrequencyLed0 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseFrequencyLed0 register. |
required |
write_pulse_frequency_led1(value)
#
Writes a value to the PulseFrequencyLed1 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the PulseFrequencyLed1 register. |
required |
write_ramp_config(value)
#
Writes a value to the RampConfig register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
LedRamps
|
Value to write to the RampConfig register. |
required |
write_ramp_led0(value)
#
Writes a value to the RampLed0 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the RampLed0 register. |
required |
write_ramp_led1(value)
#
Writes a value to the RampLed1 register.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value
|
int
|
Value to write to the RampLed1 register. |
required |
CurrentDriverEvents
#
Bases: IntFlag
Specifies the active events in the device.
Attributes:
Name | Type | Description |
---|---|---|
DIS |
int
|
No description currently available |
CurrentDriverRegisters
#
Bases: IntEnum
Enum for all available registers in the CurrentDriver device.
Attributes:
Name | Type | Description |
---|---|---|
DIGITAL_INPUT_STATE |
int
|
Reflects the state of DI digital lines |
OUTPUT_SET |
int
|
Set the specified digital output lines |
OUTPUT_CLEAR |
int
|
Clear the specified digital output lines |
OUTPUT_TOGGLE |
int
|
Toggle the specified digital output lines |
OUTPUT_STATE |
int
|
Write the state of all digital output lines |
LED0_CURRENT |
int
|
Configuration of current to drive LED 0 [0:1000] mA |
LED1_CURRENT |
int
|
Configuration of current to drive LED 1 [0:1000] mA |
DAC0_VOLTAGE |
int
|
Configuration of DAC 0 voltage [0:5000] mV |
DAC1_VOLTAGE |
int
|
Configuration of DAC 1 voltage [0:5000] mV |
LED_ENABLE |
int
|
Enable driver on the selected output |
LED_DISABLE |
int
|
Disable driver on the selected output |
LED_STATE |
int
|
Control the correspondent LED output |
LED0_MAX_CURRENT |
int
|
Configuration of current to drive LED 0 [0:1000] mA |
LED1_MAX_CURRENT |
int
|
Configuration of current to drive LED 1 [0:1000] mA |
PULSE_ENABLE |
int
|
Enables the pulse function for the specified output DACs/LEDs |
PULSE_DUTY_CYCLE_LED0 |
int
|
Specifies the duty cycle of the output pulse from 1 to 100 |
PULSE_DUTY_CYCLE_LED1 |
int
|
Specifies the duty cycle of the output pulse from 1 to 100 |
PULSE_FREQUENCY_LED0 |
int
|
Specifies the frequency of the output pulse in Hz |
PULSE_FREQUENCY_LED1 |
int
|
Specifies the frequency of the output pulse in Hz |
RAMP_LED0 |
int
|
Specifies the ramp time of the transitions between different current/voltage values in milliseconds. The ramp will only work if the pulse function is off |
RAMP_LED1 |
int
|
Specifies the ramp time of the transitions between different current/voltage values in milliseconds. The ramp will only work if the pulse function is off |
RAMP_CONFIG |
int
|
Specifies when the ramps are applied for each DAC/LED |
ENABLE_EVENTS |
int
|
Specifies the active events in the device |
DigitalInputs
#
Bases: IntFlag
Specifies the state of port digital input lines
Attributes:
Name | Type | Description |
---|---|---|
DI0 |
int
|
No description currently available |
DI1 |
int
|
No description currently available |
DigitalOutputs
#
Bases: IntFlag
Specifies the state of port digital output lines
Attributes:
Name | Type | Description |
---|---|---|
DO0 |
int
|
No description currently available |
DO1 |
int
|
No description currently available |
LedOutputs
#
Bases: IntFlag
Specifies the state of LED driver's outputs
Attributes:
Name | Type | Description |
---|---|---|
LED0 |
int
|
No description currently available |
LED1 |
int
|
No description currently available |
LedRamps
#
Bases: IntFlag
Specifies the configuration of LED driver's ramps
Attributes:
Name | Type | Description |
---|---|---|
LED0_UP |
int
|
No description currently available |
LED0_DOWN |
int
|
No description currently available |
LED1_UP |
int
|
No description currently available |
LED1_DOWN |
int
|
No description currently available |