ephys_link.platforms.sensapex_manipulator

Sensapex Manipulator class

Handles logic for calling Sensapex API functions. Also includes extra logic for safe function calls, error handling, managing per-manipulator attributes, and returning the appropriate callback parameters like in ephys_link.sensapex_handler.

Classes

SensapexManipulator

Representation of a single Sensapex manipulator

class SensapexManipulator(device: SensapexDevice)[source]

Bases: PlatformManipulator

Representation of a single Sensapex manipulator

Parameters:

device – A Sensapex device

get_pos() PositionalResponse[source]

Get the current position of the manipulator and convert it into mm.

Returns:

Position in (x, y, z, w) (or an empty array on error) in mm and error message (if any).

Return type:

ephys_link.common.PositionalOutputData

async goto_pos(request: GotoPositionRequest) PositionalResponse[source]

Move manipulator to position.

Parameters:

request (vbl_aquarium.models.ephys_link.GotoPositionRequest) – The goto request parsed from the server.

Returns:

Resulting position in (x, y, z, w) (or an empty array on error) in mm and error message (if any).

Return type:

ephys_link.common.PositionalOutputData

async drive_to_depth(request: DriveToDepthRequest) DriveToDepthResponse[source]

Drive the manipulator to a certain depth.

Parameters:

request (vbl_aquarium.models.ephys_link.DriveToDepthRequest) – The drive to depth request parsed from the server.

Returns:

Resulting depth in mm (or 0 on error) and error message (if any).

Return type:

ephys_link.common.DriveToDepthOutputData

set_inside_brain(inside: bool) None[source]

Set if the manipulator is inside the brain.

Used to signal that the brain should move at INSIDE_BRAIN_SPEED_LIMIT

Parameters:

inside (bool) – True if the manipulator is inside the brain, False otherwise.

Returns:

None

get_can_write() bool[source]

Return if the manipulator can move.

Returns:

True if the manipulator can move, False otherwise.

Return type:

bool

set_can_write(request: CanWriteRequest) None[source]

Set if the manipulator can move.

Parameters:

request (vbl_aquarium.models.ephys_link.CanWriteRequest) – The can write request parsed from the server.

Returns:

None

reset_can_write() None[source]

Reset the can_write flag.

call_calibrate() None[source]

Calibrate the manipulator.

Returns:

None

get_calibrated() bool[source]

Return the calibration state of the manipulator.

Returns:

True if the manipulator is calibrated, False otherwise.

Return type:

bool

set_calibrated() None[source]

Set the manipulator to be calibrated.

Returns:

None

stop() None[source]

Stop the manipulator

Returns:

None