Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions pylabrobot/liquid_handling/backends/hamilton/STAR_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -1535,6 +1535,30 @@ def setup_done(self) -> bool:

# ============== LiquidHandlerBackend methods ==============

# # # # Single-Channel Pipette Commands # # # #

# # # Machine Query (MEM-READ) Commands: Single-Channel # # #

async def channel_request_y_minimum_spacing(self, channel_idx: int) -> float:
"""Request the minimum Y spacing for a given channel.
Args:
channel_idx: the channel index to query. (0-indexed)
Returns:
The minimum Y spacing in mm.
"""

if not 0 <= channel_idx <= self.num_channels - 1:
raise ValueError(
f"channel_idx must be between 0 and {self.num_channels - 1}, " f"got {channel_idx}."
)

resp = await self.send_command(
module=self.channel_id(channel_idx),
command="VY",
fmt="yc### (n)",
)
return self.y_drive_increment_to_mm(resp["yc"][1])

def can_reach_position(self, channel_idx: int, position: Coordinate) -> bool:
"""Check if a position is reachable by a channel (center-based)."""
if not (0 <= channel_idx < self.num_channels):
Expand Down Expand Up @@ -1568,6 +1592,8 @@ def ensure_can_reach_position(
"Try the operation with different channels or a different target position (i.e. different labware placement)."
)

# # # ACTION Commands # # #

async def pick_up_tips(
self,
ops: List[Pickup],
Expand Down