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 ifalias
not available
- Close alias
Close the valve called
alias
. InvalidValveErrorCode return ifalias
not available
- GetValveState alias
Get
alias
state. Returns0
for closed1
for 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
.power
must 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.
zoom
must 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
.xypos
should be a comma separated list of numbers. e.gSetXY 10.1,-5.03
- GetXMoving
- GetYMoving
- GetDriveMoving
- StopDrive
- SetDriveHome
- SetHomeX
- SetHomeY
- SetHomeZ