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() PositionalOutputData[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(position: list[float], speed: float) PositionalOutputData[source]

Move manipulator to position.

Parameters:
  • position (list[float]) – The position to move to in mm

  • speed (float) – The speed to move at (in mm/s)

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(depth: float, speed: float) DriveToDepthOutputData[source]

Drive the manipulator to a certain depth.

Parameters:
  • depth (float) – The depth to drive to in mm.

  • speed (float) – The speed to drive at in mm/s

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(can_write: bool, hours: float, sio: socketio.AsyncServer) None[source]

Set if the manipulator can move.

Parameters:
  • can_write (bool) – True if the manipulator can move, False otherwise.

  • hours (float) – The number of hours to allow the manipulator to move (0 = forever).

  • sio (socketio.AsyncServer) – SocketIO object from server to emit reset event.

Returns:

None

reset_can_write(sio: socketio.AsyncServer) None[source]

Reset the can_write flag.

Parameters:

sio (socketio.AsyncServer) – SocketIO object from server to emit reset event.

Returns:

None

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