logo
SECS-I Implementation

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