The SECS-I implementation is part of the our Remote
Microscope system, where it's used in the server to control the
microscope's optics. Because this component might be useful to people, even
if the entire microscope system isn't of interest to them, we've made the
SECS-I code available separately.
SECS-I is a simple protocol carried out between a host (usually a
computer or other controlling device) and a master (which is some piece of
equipment such as a microscope). The parties communicate by sending
messages back and forth; messages can be broken up into 244-byte blocks.
SECS-I specifies the rules for sending and acknowledging blocks, but says
nothing about the contents of the messages being sent, just how to send
them. SECS-II specifies a format for message content, but our device
doesn't use SECS-II, and so we haven't implemented it.
Known Problems
Our SECS-I device never generates messages larger than 244 bytes.
This means that all our messages are always sent in a single block,
and the code for handling multi-block messages has been written but
never tested because I lack a device to test it against. If
multi-block handling is broken, it shouldn't be very difficult to fix;
if you try it, please let us know about your experience.
Related Links
- SEMI
SEMI is the industry trade
organization that created the SECS specifications. The specs aren't freely
available, but you can pay $50 per document to download a PDF version of the
12-page SECS-I standard; go to Equipment Automation/Software under Standards
on SEMI's Web site. (Paper versions are also available, but cost even
more.) If you want to understand the SECS-I implementation, you'll really
want to have a copy of the standard to compare with the code.