trs_interface.protocol.encoder module

The bulk of the encoder module contains functions to encode data to raw byte strings. The majority of these are automatically generated, and consequently not documented. Fortunately, they should be fairly straightforward to use.

For example:

from trs_interface.protocol import encoder

# Times are integers measured in units of 1/42 MHz (~24 ns)
msg = encoder.set_camera_sync_delay(50)  # == 2.083 µs

msg = encoder.set_quadrature_value(0)

msg = encoder.arm()
trs_interface.protocol.encoder.arm(arm: int = 1) bytes[source]
trs_interface.protocol.encoder.get_camera_sync_delay(delay: int = 0) bytes[source]
trs_interface.protocol.encoder.get_camera_sync_duration(duration: int = 0) bytes[source]
trs_interface.protocol.encoder.get_camera_trig_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.get_chopper_divider(divider: int = 0) bytes[source]
trs_interface.protocol.encoder.get_chopper_sync_delay(delay: int = 0) bytes[source]
trs_interface.protocol.encoder.get_chopper_sync_duration(duration: int = 0) bytes[source]
trs_interface.protocol.encoder.get_chopper_syncin_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.get_chopper_syncout_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.get_delay_trig_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.get_laser_sync_period(period: int = 0) bytes[source]
trs_interface.protocol.encoder.get_laser_sync_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.get_ping(ping: int = 0) bytes[source]
trs_interface.protocol.encoder.get_quadrature_direction(direction: int = 0) bytes[source]
trs_interface.protocol.encoder.get_quadrature_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.get_quadrature_value(value: int = 0) bytes[source]
trs_interface.protocol.encoder.get_version(version: int = 0) bytes[source]
trs_interface.protocol.encoder.got_camera_sync_delay(delay: int = 0) bytes[source]
trs_interface.protocol.encoder.got_camera_sync_duration(duration: int = 0) bytes[source]
trs_interface.protocol.encoder.got_camera_trig_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.got_chopper_divider(divider: int = 0) bytes[source]
trs_interface.protocol.encoder.got_chopper_sync_delay(delay: int = 0) bytes[source]
trs_interface.protocol.encoder.got_chopper_sync_duration(duration: int = 0) bytes[source]
trs_interface.protocol.encoder.got_chopper_syncin_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.got_chopper_syncout_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.got_data(quadrature: numpy.typing.ArrayLike = [], chopper: numpy.typing.ArrayLike = []) bytes[source]

Message containing data in its payload.

The array sizes of quadrature and chopper should match, or one parameter may be a single value.

Parameters
  • quadrature – Values of the quadrature encoder, as array of signed integers.

  • chopper – Chopper “on” or “off” values, as array of boolean values.

trs_interface.protocol.encoder.got_delay_trig_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.got_laser_sync_period(period: int = 0) bytes[source]
trs_interface.protocol.encoder.got_laser_sync_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.got_ping(ping: int = 0) bytes[source]
trs_interface.protocol.encoder.got_quadrature_direction(direction: int = 0) bytes[source]
trs_interface.protocol.encoder.got_quadrature_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.got_quadrature_value(value: int = 0) bytes[source]
trs_interface.protocol.encoder.got_unknown_msg(msg: int = 0) bytes[source]
trs_interface.protocol.encoder.got_version(version: str = '0.0.0') bytes[source]
trs_interface.protocol.encoder.pack(msg_id: int, data: int = 0, payload: Optional[bytes] = None)[source]

Pack a message into a byte array.

Parameters
  • msg_id – ID code of message type.

  • data – Data to put into the 32-bit data field.

  • payload – Byte array containing additional payload data appended to the message.

Returns

Byte array representing the message and data.

trs_interface.protocol.encoder.set_camera_sync_delay(delay: int = 0) bytes[source]
trs_interface.protocol.encoder.set_camera_sync_duration(duration: int = 0) bytes[source]
trs_interface.protocol.encoder.set_camera_trig_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.set_chopper_divider(divider: int = 0) bytes[source]
trs_interface.protocol.encoder.set_chopper_sync_delay(delay: int = 0) bytes[source]
trs_interface.protocol.encoder.set_chopper_sync_duration(duration: int = 0) bytes[source]
trs_interface.protocol.encoder.set_chopper_syncin_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.set_chopper_syncout_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.set_delay_trig_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.set_laser_sync_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.set_quadrature_direction(direction: int = 0) bytes[source]
trs_interface.protocol.encoder.set_quadrature_polarity(polarity: int = 0) bytes[source]
trs_interface.protocol.encoder.set_quadrature_value(value: int = 0) bytes[source]
trs_interface.protocol.encoder.start(frame_count: int = 0) bytes[source]
trs_interface.protocol.encoder.stop(stop: int = 0) bytes[source]
trs_interface.protocol.encoder.store_settings(settings: int = 0) bytes[source]
trs_interface.protocol.encoder.trigger(trigger: int = 1) bytes[source]