pylabrobot.high_res.lid_valet.HighResLidValet#
- class pylabrobot.high_res.lid_valet.HighResLidValet(host: str = '192.168.127.60', port: int = 1000, ack_timeout: float = 10.0, command_timeout: float = 30.0, reset_timeout: float = 60.0, status_timeout: float = 3.0, busy_timeout: float = 30.0, status_poll_interval: float = 0.2, lid_retries: int = 4, lid_retry_delay: float = 1.5)#
Bases:
objectHighRes LidValet delidder.
A benchtop delidder that removes and replaces plate lids with vacuum suction cups. It has one or more nests, each addressed by a 1-based number; a mover presents a lidded plate to a nest, the LidValet lifts the lid into its suction cup (“delid”), and later lowers it back onto the plate (“lid”).
The controller is a TCP device server (default
192.168.127.60:1000, printed on the back of the device) speaking an ASCII command/ACK protocol. A command is sent as a newline-terminated ASCII line; the server replies withACK! <command> <id>and then streams text until it reportsOK!(success),ERROR!(failure, with a preceding error line), orABORTED!.Commands (
<n>is the 1-based nest number, which the server calls a hotel;resetandstatusaddress every nest at once when<n>is omitted):reset <n> home/reset a nest, or every nest unlid <n> lift the lid off the plate into the suction cup (delid) lid <n> lower the held lid back onto the plate status <n> report nest state (BUSY / OPEN / HAS_LID / ERROR) home home the whole system wave <c> synchronously drop and raise the lifts <c> times vacon/vacoff <n> turn the vacuum cycle on a nest on/off purgeon/purgeoff <n> turn the purge cycle on a nest on/off clearabort clear the abort state errors/history/settings/version/firmwareversion/detailedversion change/save/revert edit, persist or discard in-memory settings savecvm save the CVM program to the Copley controllers list/info/help what the server accepts; "all" includes maintenance reboot reboot the device
The nest count is read from the device’s
ACTIVE_HOTELSsetting at setup.Attributes
How many nests the device has, read from it at setup.
Methods
__init__([host, port, ack_timeout, ...])change_setting(setting, value)Change a setting in memory.
Clear the abort state.
delid(nest)Lift the lid off the plate at
nestinto the suction cup.home()Home the whole system.
lid(nest)Lower the held lid back onto the plate at
nest.list_commands([include_maintenance])List the commands the server recognizes.
reboot()Reboot the device.
Query every nest in one round trip, keyed by 1-based nest number.
request_command_help(command)Return the parameter information for a single command.
request_command_info([include_maintenance])List the server's commands with their parameter information.
request_command_status(command_id)Return the status of a previously issued command.
Return version details about all hardware.
request_errors([count])Return the top errors on the device's error stack.
Return the firmware version.
request_has_lid(nest)Whether the suction cup at
nestis holding a lid.request_history([count])Return the last commands sent to the server.
request_home_offset(address)Return the home offset for the motor at
address(a Copley address).request_is_busy(nest)Whether
nestis currently busy.Return the settings file as the device reports it.
Return the device's settings as a typed, frozen object.
request_state(nest)Query a nest: "busy", "open", "has_lid", "error", or "unknown".
Return the software version report.
reset([nest])Home/reset a nest, or every nest when
nestis omitted.Discard in-memory settings changes, restoring the stored values.
save_cvm()Save the CVM program to every Copley motor controller.
Persist the in-memory settings to permanent memory.
send_command(command, timeout)Send a command and wait for the controller to complete it.
set_purge(nest, on)Turn the purge cycle on
neston or off.set_vacuum(nest, on)Turn the vacuum cycle on
neston or off.setup()stop()Ask the server to close this client's connection, then drop the socket.
wait_until_ready(nest[, timeout])Poll
nestuntil it is no longer busy.wave([cycles])Drop and raise the lifts
cyclestimes, synchronously.