The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Robotics::Tecan::Genesis::Compiler - (Internal module) Compiles commands from Perl method to robotics hardware tokens

All Functions

Internal functions. Data communications for this hardware.

Returns 0 on error, status string if OK.

Tecan Genesis + Gemini software has (for the purposes of this module's design) the following heirarchy of data communication:
Gemini worklist commands (like: "A;... D;..."). Not described in documentation.
Gemini *.gem script commands (like: "Aspirate(..)"). Not described in documentation. Reverse engineer from the *.gem files.
Gemini script commands (like: "B;Aspirate(...)")
Gemini named pipe commands. Described in the thin documentation of "gem_pipe.pdf"
Low level single commands (like: "M1PIS"). This is the raw robotics firmware command. Described in the thin documentation of "gemfrm.hlp". Sent through named pipe prefaced with "COMMAND;"

Only the named pipe commands and low level single commands can be sent through the named pipe to control the robotics. To run the script commands, a dummy script file must be written to disk, and a pipe command can be sent to execute the script file (like a bootstrap method). Worklist commands can be executed using a double-bootstrap; to provide status of command completion, use the execute command to run an external semaphore program to track script status.

Design note: To distinguish between command types, they are called 'type1' (firmware commands, single instruction) and 'type2' (multiple arguments with semicolon) in this code.