Remote Hardware¶
Remote hardware is used to allow other software clients access to pychron hardware, such as valves and laser systems. A simple messaging system is used to pass information between pychron and a client. Currently the most active client is Mass Spec which uses the remote hardware protocol to do all of its hardware tasks.
The protocol is broken in two sections Extraction Line Calls and Laser Calls. Calls are simple ASCII text messages sent over the ethernet using either the UDP or TCP internet protocols
A response to a call is OK, a value, or an ErrorCode
Extraction Line Calls¶
-
Open alias Open the valve called
alias. InvalidValveErrorCode return ifaliasnot available
-
Close alias Close the valve called
alias. InvalidValveErrorCode return ifaliasnot available
-
GetValveState alias Get
aliasstate. Returns0for closed1for open
-
GetValveStates Get all the valves states as a word. Returns a string <alias><state> e.g.
A1B0C1D1E0F0
-
GetValveLockStates Get all the valves lock states as a word. Returns a string <alias><lock_state> e.g.
A1B0C1D1E0F0
-
StartMultRuns multruns_id
-
CompleteMultRuns
-
StartRun runid
-
CompleteRun
-
PychronScript script
-
ScriptState
Laser Calls¶
-
Enable Enable the laser. This is required before the laser’s power can be set using SetLaserPower
-
Disable Disable the laser
-
SetLaserPower power Set the laser’s power to
power.powermust be between 0-100.
-
ReadLaserPower Read the lasers internal power meter. Returns an 8 bit value i.e 0-255
-
GetLaserStatus Return OK if the laser can be enabled. If an interlock is enabled, such as insufficient coolant flow, an error will be returned
-
SetBeamDiameter Set the beam diameter setting.
-
GetBeamDiameter Get the beam diameter setting.
-
SetZoom zoom Set zoom.
zoommust be between 0-100.
-
GetZoom Get zoom. returns value between 0-100.
-
GetPosition Returns a comma separated list of positions X,Y,Z
-
GoToHole holenum Go to hole
holename. InvalidHoleErrorCode returned if hole is not in the current stage map.
-
GetJogProcedures Return a list of available Jog procedures. Jog is a MassSpec term and a misnomer. Pychron internal refers to them as Patterns.
-
DoJog name Launch the jog named
name.
-
AbortJog Abort the current jog
-
SetX xpos Set the laser’s stage controller X axis to
xpos.
-
SetY ypos Set the laser’s stage controller X axis to
ypos.
-
SetZ zpos Set the laser’s stage controller X axis to
zpos.
-
SetXY xypos Set the laser’s stage controller X and Y axes to
xypos.xyposshould be a comma separated list of numbers. e.gSetXY 10.1,-5.03
-
GetXMoving
-
GetYMoving
-
GetDriveMoving
-
StopDrive
-
SetDriveHome
-
SetHomeX
-
SetHomeY
-
SetHomeZ