This project is read-only.

This project has moved to GitHub.

 

Project Description
SECS-II/HSMS-SS/GEM implementation on .NET. This library provide easy way to communicate with SEMI standard compatible device.


1. Send message to device

try{
    var s3f18 = device.Send(s3f17); //direct get device's reply secondary message
    //access item value with strong type
    byte returnCode = (byte)s3f18.SecsItem.Items[0]; // access item value. Equal to s3f18.SecsItem.Items[0].Value<byte>()
}catch(SecsException){
    // exception  when
    // T3 timeout
    // device reply SxF0
    // device reply S9Fx
}


or async send

var ar =device.BeginSend(primaryMsg,callback,state);

var secondaryMsg = device.EndSend(ar);


2. Receive message from device
provide a delegate to SecsGem constructor's last argument

(primaryMsg, reply) => {
    try {
       //do something for primaryMsg
       reply( secondaryMsg );  // reply secondary msg to device
    } catch (Exception ex) {
        
    }
};


3. SecsMessage construction is LINQ friendly

var s16f15 = new SecsMessage(16, 15, "CreateProcessJob",
                Item.L(
                    Item.U4(0),
                    Item.L(from pj in tx.ProcessJobs select
                        Item.L(
                            Item.A(pj.Id),
                            Item.B(0x0D),
                            Item.L(from carrier in pj.Carriers select
                                Item.L(
                                    Item.A(carrier.Id),
                                    Item.L(from slotInfo in carrier.SlotMap select
                                        Item.U1(slotInfo.SlotNo)))),
                            Item.L(
                                Item.U1(1),
                                Item.A(pj.RecipeId),
                                Item.L()),
                            Item.Boolean(true),
                            Item.L()))));

4. SecsMessage/Item is immutable.
5. SecsMessage/Item is .NET Remoting operatable. It mean you can build an scalable distributed device control system.

Last edited Jan 28, 2016 at 4:27 PM by westjeffho, version 16