Messages

The LWP3 messages module contains classes for encoding and decoding messages used in the LWP3 protocol.

class AbstractHubAlertMessage(length: int, alert: AlertKind, op: AlertOperation)

Bases: AbstractMessage

Common base type for all hub alert messages.

property alert: AlertKind

Gets the kind of alert.

property op: AlertOperation

Gets the operation to be performed.

class AbstractHubAttachedIOMessage(length: int, port: PortID, event: IOEvent)

Bases: AbstractMessage

property event: IOEvent

Gets the I/O port event.

property port: PortID

Gets the I/O port ID.

class AbstractHubPropertyMessage(length: int, prop: HubProperty, op: HubPropertyOperation)

Bases: AbstractMessage

Common base class for hub property messages.

Parameters:
  • length – Length of the message in bytes.

  • prop – The property.

  • op – The operation to perform.

Raises:
property op: HubPropertyOperation

Gets the operation.

property prop: HubProperty

Gets the property that is acted on.

class AbstractHubPropertyValueMessage(prop: HubProperty, op: HubPropertyOperation, value: Any)

Bases: AbstractHubPropertyMessage

Common base class for hub property messages that have a value parameter.

Parameters:
  • prop – The property.

  • value – The new value.

Raises:
  • TypeErrorvalue is not the correct type for prop.

  • ValueErrorprop cannot be set.

property value: Any

Gets the property value.

class AbstractHwNetCmdMessage(length: int, cmd: HwNetCmd)

Bases: AbstractMessage

property cmd: HwNetCmd
class AbstractMessage(length: int, kind: MessageKind)

Bases: ABC

Common base class for all messages.

property kind: MessageKind

Gets the kind of message.

property length: int

Gets the length of the message in bytes.

class AbstractPortFormatSetupComboMessage(length: int, port: PortID, command: PortInfoFormatSetupCommand)

Bases: AbstractMessage

property command: PortInfoFormatSetupCommand
property port: PortID
class AbstractPortInfoMessage(length: int, port: PortID, info_kind: InfoKind)

Bases: AbstractMessage

property info_kind: InfoKind
property port: PortID
class AbstractPortModeInfoMessage(length: int, port: PortID, mode: int, info_kind: ModeInfoKind)

Bases: AbstractMessage

property info_kind: ModeInfoKind
property mode: int
property port: PortID
class AbstractPortOutputCommandMessage(length: int, port: PortID, start: StartInfo, end: EndInfo, command: PortOutputCommand)

Bases: AbstractMessage

property command: PortOutputCommand
property end: EndInfo
property port: PortID
property start: StartInfo
class AbstractVirtualPortSetupMessage(length: int, command: VirtualPortSetupCommand)

Bases: AbstractMessage

property command: VirtualPortSetupCommand
class ErrorMessage(command: MessageKind, code: ErrorCode)

Bases: AbstractMessage

Generic error message.

Parameters:
  • command – The kind of message that triggered the error.

  • code – An error code describing the error.

property code: ErrorCode

Gets an error code describing the error.

property command: MessageKind

Gets the kind of message that triggered the error.

class FirmwareUpdateMessage

Bases: AbstractMessage

Instructs the hub to reboot in firmware update mode.

property key: bytes

Safety string.

class HubActionMessage(action: HubAction)

Bases: AbstractMessage

This message allows for performing control actions on the connected Hub.

Parameters:

action – The action.

property action: HubAction

Gets the action.

class HubAlertDisableUpdatesMessage(alert: AlertKind)

Bases: AbstractHubAlertMessage

Message to unsubscribe from updates for an alert.

class HubAlertEnableUpdatesMessage(alert: AlertKind)

Bases: AbstractHubAlertMessage

Message to subscribe to updates for an alert.

class HubAlertRequestUpdateMessage(alert: AlertKind)

Bases: AbstractHubAlertMessage

Message to request the current status for an alert.

class HubAlertUpdateMessage(alert: AlertKind, status: AlertStatus)

Bases: AbstractHubAlertMessage

Message that contains the current status of an alert.

property status: AlertStatus

Gets the status of the alert.

class HubIOAttachedMessage(port: PortID, device: IODeviceKind, hw_ver: Version, fw_ver: Version)

Bases: AbstractHubAttachedIOMessage

property device: IODeviceKind

Gets the kind of device that is attached.

property fw_ver: Version

Gets the firmware version of the device.

property hw_ver: Version

Gets the hardware version of the device.

class HubIOAttachedVirtualMessage(port: PortID, device: IODeviceKind, port_a: PortID, port_b: PortID)

Bases: AbstractHubAttachedIOMessage

property device: IODeviceKind

Gets the kind of device that is attached.

property port_a: Version

Gets the first port of the virtual device.

property port_b: Version

Gets the second port of the virtual device.

class HubIODetachedMessage(port: PortID)

Bases: AbstractHubAttachedIOMessage

class HubPropertyDisableUpdates(prop: HubProperty)

Bases: AbstractHubPropertyMessage

Hub property disable updates message.

Parameters:

prop – The property.

Raises:

ValueErrorprop does not allow disabling updates.

class HubPropertyEnableUpdates(prop: HubProperty)

Bases: AbstractHubPropertyMessage

Hub property enable updates message.

Parameters:

prop – The property.

Raises:

ValueErrorprop does not allow enabling updates.

class HubPropertyRequestUpdate(prop: HubProperty)

Bases: AbstractHubPropertyMessage

Hub property request update message.

Parameters:

prop – The property.

class HubPropertyReset(prop: HubProperty)

Bases: AbstractHubPropertyMessage

Hub property reset message.

Parameters:

prop – The property.

Raises:

ValueErrorprop does not allow reset.

class HubPropertySet(prop: HubProperty, value: Any)

Bases: AbstractHubPropertyValueMessage

Hub property set message.

Parameters:
  • prop – The property.

  • value – The new value.

Raises:
  • TypeErrorvalue is not the correct type for prop.

  • ValueErrorprop cannot be set.

class HubPropertyUpdate(prop: HubProperty, value: Any)

Bases: AbstractHubPropertyValueMessage

Hub property update message.

Parameters:
  • prop – The property.

  • value – The new value.

Raises:

TypeError – if value is not the correct type for prop.

class HwNetCmdExtendedFamilyMessage(family: HwNetFamily, subfamily: HwNetSubfamily)

Bases: AbstractHwNetCmdMessage

property ext_family: HwNetExtFamily
class HwNetCmdFamilyMessage(family: HwNetFamily)

Bases: AbstractHwNetCmdMessage

property family: HwNetFamily
class HwNetCmdGetExtendedFamilyMessage

Bases: AbstractHwNetCmdMessage

class HwNetCmdGetFamilyMessage

Bases: AbstractHwNetCmdMessage

class HwNetCmdGetSubfamilyMessage

Bases: AbstractHwNetCmdMessage

class HwNetCmdJoinDeniedMessage

Bases: AbstractHwNetCmdMessage

class HwNetCmdRequestConnectionMessage(button_pressed: bool)

Bases: AbstractHwNetCmdMessage

property button_pressed: bool
class HwNetCmdRequestFamilyMessage

Bases: AbstractHwNetCmdMessage

class HwNetCmdResetLongPressMessage

Bases: AbstractHwNetCmdMessage

class HwNetCmdSetExtendedFamilyMessage(family: HwNetFamily, subfamily: HwNetSubfamily)

Bases: AbstractHwNetCmdMessage

property ext_family: HwNetExtFamily
class HwNetCmdSetFamilyMessage(family: HwNetFamily)

Bases: AbstractHwNetCmdMessage

property family: HwNetFamily
class HwNetCmdSetSubfamilyMessage(subfamily: HwNetSubfamily)

Bases: AbstractHwNetCmdMessage

property subfamily: HwNetSubfamily
class HwNetCmdSubfamilyMessage(subfamily: HwNetSubfamily)

Bases: AbstractHwNetCmdMessage

property subfamily: HwNetSubfamily
class PortFormatSetupComboLockMessage(port: PortID)

Bases: AbstractPortFormatSetupComboMessage

class PortFormatSetupComboMessage(port: PortID, modes_and_datasets: List[Tuple[int, int]])

Bases: AbstractPortFormatSetupComboMessage

property modes_and_datasets: List[Tuple[int, int]]
class PortFormatSetupComboResetMessage(port: PortID)

Bases: AbstractPortFormatSetupComboMessage

class PortFormatSetupComboUnlockDisabledMessage(port: PortID)

Bases: AbstractPortFormatSetupComboMessage

class PortFormatSetupComboUnlockEnabledMessage(port: PortID)

Bases: AbstractPortFormatSetupComboMessage

class PortInfoCombosMessage(port: PortID, combos: List[List[int]])

Bases: AbstractPortInfoMessage

property combos: List[List[int]]
class PortInfoModeInfoMessage(port: PortID, capabilities: ModeCapabilities, num_modes: int, input_modes: List[int], output_modes: List[int])

Bases: AbstractPortInfoMessage

property capabilities: ModeCapabilities
property input_modes: List[int]
property num_modes: int
property output_modes: List[int]
class PortInfoRequestMessage(port: PortID, info_kind: InfoKind)

Bases: AbstractMessage

property info_kind: InfoKind
property port: PortID
class PortInputFormatComboMessage(port: PortID, combo: int, multi_update: bool, modes_and_datasets: List[int])

Bases: AbstractMessage

property combo: int
property modes_and_datasets: List[int]
property multi_update: bool
property port: PortID
class PortInputFormatMessage(port: PortID, mode: int, delta: int, notify: bool)

Bases: AbstractMessage

property delta: int
property mode: int
property notify: bool
property port: PortID
class PortInputFormatSetupMessage(port: PortID, mode: int, delta: int, notify: bool)

Bases: AbstractMessage

property delta: int
property mode: int
property notify: bool
property port: PortID
class PortModeInfoCapabilitiesMessage(port: PortID, mode: int, capabilities: IODeviceCapabilities)

Bases: AbstractPortModeInfoMessage

property capabilities: IODeviceCapabilities
class PortModeInfoFormatMessage(port: PortID, mode: int, datasets: int, format: DataFormat, figures: int, decimals: int)

Bases: AbstractPortModeInfoMessage

property datasets: int
property decimals: int
property figures: int
property format: DataFormat
class PortModeInfoMappingMessage(port: PortID, mode: int, input_mapping: IODeviceMapping, output_mapping: IODeviceMapping)

Bases: AbstractPortModeInfoMessage

property input_mapping: IODeviceMapping
property output_mapping: IODeviceMapping
class PortModeInfoMotorBiasMessage(port: PortID, mode: int, bias: int)

Bases: AbstractPortModeInfoMessage

property bias: int
class PortModeInfoNameMessage(port: PortID, mode: int, name: str)

Bases: AbstractPortModeInfoMessage

property name: str
class PortModeInfoPercentMessage(port: PortID, mode: int, min: float, max: float)

Bases: AbstractPortModeInfoMessage

property max: float
property min: float
class PortModeInfoRawMessage(port: PortID, mode: int, min: float, max: float)

Bases: AbstractPortModeInfoMessage

property max: float
property min: float
class PortModeInfoRequestMessage(port: PortID, mode: int, info_kind: ModeInfoKind)

Bases: AbstractMessage

property info_kind: InfoKind
property mode: int
property port: PortID
class PortModeInfoSIMessage(port: PortID, mode: int, min: float, max: float)

Bases: AbstractPortModeInfoMessage

property max: float
property min: float
class PortModeInfoSymbolMessage(port: PortID, mode: int, symbol: str)

Bases: AbstractPortModeInfoMessage

property symbol: str
class PortOutputCommandFeedbackMessage(port: PortID, feedback: Feedback)
class PortOutputCommandFeedbackMessage(port1: PortID, feedback1: Feedback, port2: PortID, feedback2: Feedback)
class PortOutputCommandFeedbackMessage(port1: PortID, feedback1: Feedback, port2: PortID, feedback2: Feedback, port3: PortID, feedback3: Feedback)

Bases: AbstractMessage

property feedback1: Feedback
property feedback2: Feedback
property feedback3: Feedback
property port1: PortID
property port2: PortID
property port3: PortID
class PortOutputCommandWriteDirectMessage(port: PortID, start: StartInfo, end: EndInfo, payload: bytes)

Bases: AbstractPortOutputCommandMessage

property payload: bytes
class PortOutputCommandWriteDirectModeDataMessage(port: PortID, start: StartInfo, end: EndInfo, mode: int, fmt: str, *values: int | float)

Bases: AbstractPortOutputCommandMessage

property mode: int
unpack(fmt: str) Tuple[int | float, ...]
class PortValueComboMessage(port: PortID, modes: List[int], fmt: str, *values: int | float)

Bases: AbstractMessage

property modes: List[int]
property port: PortID
unpack(fmt: str) Tuple[int | float, ...]
class PortValueMessage(port: PortID, fmt: str, *values: int | float)

Bases: AbstractMessage

property port: PortID
unpack(fmt: str) Tuple[int | float, ...]
class VirtualPortSetupConnectMessage(port_a: PortID, port_b: PortID)

Bases: AbstractVirtualPortSetupMessage

property port_a: PortID
property port_b: PortID
class VirtualPortSetupDisconnectMessage(port: PortID)

Bases: AbstractVirtualPortSetupMessage

property port: PortID
parse_message(data: bytes) AbstractMessage

Parses data and returns a message object.

Parameters:

data – Raw binary data of the message.

Returns:

A new message object whose type corresponds to the message data.