public WinSECS secs {set;get;}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
secs = new WinSECS();
//属性
secs.DefaultDeviceID = 1;
//确定在收到S9F1消息后是否会自动调整默认的设备ID
secs.AutoDevice = true;
//指定该工具用于转换SECS格式20 ASCII项的编码方案。
secs.CodePage = 936;
//确定该通信端口当前是否已连接。
bool cc = secs.Connected;
//设置或返回用于主消息的默认SECS设备ID
secs.DefaultDeviceID = 1;
//指定用于SECS格式22项的编码代码。
uint a = secs.EncodingCode;
//设置或返回一个布尔值,指示WinSECS类是否生成OnMinitor回调。
secs.MonitorEnabled = true;
//设置或返回一个布尔值,指示WinSECS类是否允许作为发送方的多个打开事务。
secs.MultipleOpen = true;
//返回一个指示该端口是否已打开的布尔值。
bool opb = secs.PortIsOpen;
//设置或返回一个标识端口连接类型的值。
secs.PortType = SECS_PORT_TYPE.HSMS;
/*方法*/
//关闭端口
secs.ClosePort();
//打开商品
//secs.OpenPort();
/*设置或返回HSMS通信的连接模式。*/
secs.Hsms.ConnectionMode = HSMS_CONNECTION_MODE.ACTIVE;
//设置或返回HSMS连接的链接测试计时器值。
secs.Hsms.LinkTestTimer = 50;
secs.Hsms.LocalIPAddress = "127.0.0.1";
secs.Hsms.LocalIPPort = 5000;
//设置或返回HSMS连接的远程节点的IP地址。
secs.Hsms.RemoteIPAddress = "127.0.0.1";
secs.Hsms.RemoteIPPort = 5000;
//设置或返回HSMS连接的T3计时器值。T3值指定等待回复的时间量
secs.Hsms.T3 = 90;
//T5值指定在连续尝试连接到给定的远程实体之间必须经过的时间量。
secs.Hsms.T5 = 20;
//T6值指定控制事务在被视为通信失败之前可以保持打开的时间
secs.Hsms.T6 = 10;
//T7值指定了TCP/IP连接在被视为通信故障之前可以保持在NOT选择状态(即没有HSMS活动)的时间
secs.Hsms.T7 = 20;
//T8值指定单个HSMS消息连续字节之间的最大时间,在被认为是通信失败之前可能经过。
secs.Hsms.T8 = 15;
/*实例化SECSKiblary对象*/
SECSLibrary library = new SECSLibrary("Tool","Exper message");
secs.SetLibrary(library);
//设置或返回SECSKibbury对象的描述
library.Description = "";
//SECSKibbray实例的名称。
library.Name = "PE5";
//向SECSStrary添加一个新的SECS事务对象
//library.Add(trans);
//在SECS库中查找由消息键指定的事务。
library.Find("F1F1");
//load方法用于从符合WinSECS的XML模式的XML文件中加载事务主体
library.Load(@"C:\LOAD.XML");
library.Remove("S1F1");
library.Save(@"C:\CUSTOM.XML");
//此方法创建一个XML字符串,表示符合WinSECS XML模式的整个事务(包括主消息和辅助消息)
// library.Trans2XML(SECSTransaction);
//library.XML2Trans(string);
/*事务 Transaxtion*/
//实例化SECS事务处理对象。
SECSTransaction tran = new SECSTransaction(2,1);
//设置或返回一个布尔值,它指示在发送主消息时是否自动生成唯一的系统字节
tran.AutoSystemBytes = true;
tran.Description = "";
//返回一个布尔值,它指示SECS事务对象是否正在进行中。
bool inp = tran.InProgress;
//设置或返回事务处理的名称。
string name = tran.Name;
//返回表示事务中的主消息的SECSMessage对象。
uint mesg = tran.Primary.Function = 3;
//设置或返回一个布尔值,指示是否需要对主消息的回复。
tran.ReplyExpected = false;
//返回表示事务中辅助消息的SECSStract对象
tran.Secondary.Stream = 1;
//设置或返回系统字节。
tran.SystemBytes = 1;
//设置或返回可用于标识SECS事务处理对象的值。
tran.Tag = "";
//在事务中发送辅助消息。
tran.Reply();
//发送
tran.Send(secs);
/*message*/
//SECSMessage mess =tran.Primary.Function;
//返回该消息的根项。
tran.Primary.Root.AddNew("L");
//设置或返回SECS流号。
tran.Secondary.Stream = 13;
//SECSItem 构造SECSItem的实例,并设置其名称和描述属性。
SECSItem item = new SECSItem("ALID","ID");
//设置主消息或辅助SECS消息的根项
tran.Primary.SetRoot(item);
item.Description = "";
//设置或返回该项的SECS格式代码。
item.Format = SECS_FORMAT.LIST;
//返回表示列表的SECSItem对象中的项数。
int ic = item.ItemCount;
uint il = item.Length;
item.Name = "Item";
//设置或返回一个项的长度字节数。
uint nlb = item.NLB;
//返回包含SECS对象的SECS项对象。
//item.Parent;
item.Value = "a";
//将新项添加到列表项中。
item.AddNew("f1");
item.Delete();
//复制一个项目,在被复制的项目之后插入副本。
SECSItem item2 = item.Duplicate();
//测试一个SECSItem是否是另一个SECSItem的子项。
item.IsChild(item2);
//返回其中包含的指定SECSItem对象
//item.Item(nth);
//返回SECSitem数据作为二进制内存标识
item.Raw();
//删除项目。
item.Remove(item2);