Skip to content
forked from mkjeff/secs4net

SECS-II/HSMS-SS/GEM implementation on .NET

Notifications You must be signed in to change notification settings

TsahiM/secs4net

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 

Repository files navigation

secs4net

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 = await device.SendAsync(s3f17); //await 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()
}catch(SecsException){
    // exception  when
    // T3 timeout
    // device reply SxF0
    // device reply S9Fx
}

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.

About

SECS-II/HSMS-SS/GEM implementation on .NET

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.6%
  • Smalltalk 0.4%