Programmatic TransSECS

TransSECS is a code/class generator. It flattens the SECS/GEM message structure and provides simple set/get methods for data access. Messages are received by simple event notifications. Rapid development in the TransSECS editor and easy integration with Java, .NET, C++, Python, JavaScript (including Node.js) and other scripting languages (Check the Wiki or Contact Us for examples). If you're building a tool, all you need to do is update the IDs and not be concerned with message structure. If you're building a host you can even get all your VIDs and CEIDs directly from the tool into your project and you can configure all your reports directly in the editor. TransSECS will automatically send all the required configuration message (S1F13/S2F33/F35/F37, etc.) whenever it connects to the tool when you start your application and whenever TransSECS detects a connection loss and reconnects.

Easy Online Characterization
Easy Online Characterization

If you're building your application programmatically in Java, .NET or any of our other supported language you'll write much less code and much easier code because TransSECS already provides the message matching, complete connection management - including monitoring and reconnecting - and the initialization code. Three lines of code are required to initialize the entire SECS/GEM interface:


EquipmentController equipmentController = new EquipmentController();
equipmentController.init();
equipmentController.register();

After this, your host is connected and completely set up including communications and control state management and all report creation at the tool.

To collect data in a host application you simple register for notification of events, reports or values. In a tool application you just update values. Complete examples are available in the Wiki (Java example or the .NET version)

Sending a message is equally easy

s1f1 = (AreYouThere)host.getMessageBean("AreYouThere");
s1f2 = (AreYouThereResponseFromHost)s1f1.sendMessageAndWait();

and you can just register to receive messages

boolean success = equipmentController.registerForReceiveNotification("RemoteCommand", new MessageNotifier() {
@Override
public void messageReceived(int status, VIBMessageBean vibmb) {
[...]
});

The generated code is thread safe and messages can be sent from any thread. Received messages are processed on a single thread to ensure that all messages are received in the correct order.

Other initialization routine
Long initialization of competitors interface vs. 3 lines required by TransSECS