msl.equipment.resources.thorlabs.kinesis.filter_flipper module

This module provides all the functionality required to control a Filter Flipper (MFF101, MFF102).

class msl.equipment.resources.thorlabs.kinesis.filter_flipper.FilterFlipper(record)[source]

Bases: MotionControl

A wrapper around Thorlabs.MotionControl.FilterFlipper.dll.

The properties for a FilterFlipper connection supports the following key-value pairs in the Connections Database:

'device_name': str, the device name found in ThorlabsDefaultSettings.xml [default: None]

Do not instantiate this class directly. Use the connect() method to connect to the equipment.

Parameters:

record (EquipmentRecord) – A record from an Equipment-Register Database.

MIN_TRANSIT_TIME = 300
MAX_TRANSIT_TIME = 2800
MIN_PULSE_WIDTH = 10
MAX_PULSE_WIDTH = 200
open()[source]

Open the device for communication.

Raises:

ThorlabsError – If not successful.

close()[source]

Disconnect and close the device.

check_connection()[source]

Check connection.

Returns:

bool – Whether the USB is listed by the FTDI controller.

identify()[source]

Sends a command to the device to make it identify itself.

get_hardware_info()[source]

Gets the hardware information from the device.

Returns:

structs.TLI_HardwareInformation – The hardware information.

Raises:

ThorlabsError – If not successful.

get_firmware_version()[source]

Gets version number of the device firmware.

Returns:

str – The firmware version.

get_software_version()[source]

Gets version number of the device software.

Returns:

str – The device software version.

load_settings()[source]

Update device with stored settings.

The settings are read from ThorlabsDefaultSettings.xml, which gets created when the Kinesis software is installed.

Raises:

ThorlabsError – If not successful.

load_named_settings(settings_name)[source]

Update device with named settings.

Parameters:

settings_name (str) – The name of the device to load the settings for. Examples for the value of setting_name can be found in ThorlabsDefaultSettings.xml`, which gets created when the Kinesis software is installed.

Raises:

ThorlabsError – If not successful.

persist_settings()[source]

Persist the devices current settings.

Raises:

ThorlabsError – If not successful.

get_number_positions()[source]

Get number of positions available from the device.

Returns:

int – The number of positions.

home()[source]

Home the device.

Homing the device will set the device to a known state and determine the home position.

Raises:

ThorlabsError – If not successful.

move_to_position(position)[source]

Move the device to the specified position (index).

Parameters:

position (int) – The required position. Must be 1 or 2.

Raises:

ThorlabsError – If not successful.

get_position()[source]

Get the current position.

Returns:

int – The position, 1 or 2 (can be 0 during a move).

get_io_settings()[source]

Gets the I/O settings from filter flipper.

Returns:

FF_IOSettings – The Filter Flipper I/O settings.

Raises:

ThorlabsError – If not successful.

request_io_settings()[source]

Requests the I/O settings from the filter flipper.

Raises:

ThorlabsError – If not successful.

set_io_settings(transit_time=500, oper1=FF_IOModes.FF_ToggleOnPositiveEdge, sig1=FF_SignalModes.FF_InputButton, pw1=200, oper2=FF_IOModes.FF_ToggleOnPositiveEdge, sig2=FF_SignalModes.FF_OutputLevel, pw2=200)[source]

Sets the settings on filter flipper.

Parameters:
  • transit_time (int, optional) – Time taken to get from one position to other in milliseconds.

  • oper1 (FF_IOModes, optional) – I/O 1 Operating Mode.

  • sig1 (FF_SignalModes, optional) – I/O 1 Signal Mode.

  • pw1 (int, optional) – Digital I/O 1 pulse width in milliseconds.

  • oper2 (FF_IOModes, optional) – I/O 2 Operating Mode.

  • sig2 (FF_SignalModes, optional) – I/O 2 Signal Mode.

  • pw2 (int, optional) – Digital I/O 2 pulse width in milliseconds.

Raises:

ThorlabsError – If not successful.

get_transit_time()[source]

Gets the transit time.

Returns:

int – The transit time in milliseconds.

set_transit_time(transit_time)[source]

Sets the transit time.

Parameters:

transit_time (int) – The transit time in milliseconds.

Raises:

ThorlabsError – If not successful.

request_status()[source]

Request status bits.

This needs to be called to get the device to send it’s current status.

This is called automatically if Polling is enabled for the device using start_polling().

Raises:

ThorlabsError – If not successful.

get_status_bits()[source]

Get the current status bits.

This returns the latest status bits received from the device. To get new status bits, use request_status() or use the polling function, start_polling()

Returns:

int – The status bits from the device.

start_polling(milliseconds)[source]

Starts the internal polling loop.

This function continuously requests position and status messages.

Parameters:

milliseconds (int) – The polling rate, in milliseconds.

Raises:

ThorlabsError – If not successful.

polling_duration()[source]

Gets the polling loop duration.

Returns:

int – The time between polls in milliseconds or 0 if polling is not active.

stop_polling()[source]

Stops the internal polling loop.

time_since_last_msg_received()[source]

Gets the time, in milliseconds, since tha last message was received.

This can be used to determine whether communications with the device is still good.

Returns:

int – The time, in milliseconds, since the last message was received.

enable_last_msg_timer(enable, msg_timeout=0)[source]

Enables the last message monitoring timer.

This can be used to determine whether communications with the device is still good.

Parameters:
  • enable (bool) – True to enable monitoring otherwise False to disable.

  • msg_timeout (int, optional) – The last message error timeout in ms. Set to 0 to disable.

has_last_msg_timer_overrun()[source]

Queries if the time since the last message has exceeded the lastMsgTimeout set by enable_last_msg_timer().

This can be used to determine whether communications with the device is still good.

Returns:

boolTrue if last message timer has elapsed or False if monitoring is not enabled or if time of last message received is less than msg_timeout.

request_settings()[source]

Requests that all settings are downloaded from the device.

This function requests that the device upload all it’s settings to the DLL.

Raises:

ThorlabsError – If not successful.

clear_message_queue()[source]

Clears the device message queue.

register_message_callback(callback)[source]

Registers a callback on the message queue.

Parameters:

callback (MotionControlCallback) – A function to be called whenever messages are received.

message_queue_size()[source]

Gets the size of the message queue.

Returns:

int – The number of messages in the queue.

get_next_message()[source]

Get the next Message Queue item. See messages.

Returns:

  • int – The message type.

  • int – The message ID.

  • int – The message data.

Raises:

ThorlabsError – If not successful.

wait_for_message()[source]

Wait for next Message Queue item. See messages.

Returns:

  • int – The message type.

  • int – The message ID.

  • int – The message data.

Raises:

ThorlabsError – If not successful.