爱鸥LightStep控件使用说
介绍
首先需要引用爱鸥官方的AioiSystems.Lightstep.dll控件包,该控件基于Net Framework v2.0.50727版本下开发,支持Net Framework V2.0+,目前不支持Net Core版本的程序调用。
如何使用
将Lightstep.dll引用到项目中,注意项目支持版本为.Net Framework 2.0及以上
如何初始化对象
初始化控制器对象aioiController后,后续所有的与控制器指令交互都在该对象进行处理
using AioiSystems.Lightstep;//首先引用方法体
private class Test
{
private EthernetController aioiController=new EthernetController();
private void Init()
{
aioiController= new ExtEthernetController();
aioiController.SetLicense("");//爱鸥代理或购买的License
aioiController.IPAddress = row["ip"].ToString(); // IP
aioiController.Port = int.Parse(row["port"].ToString()); // PORT
aioiController.Tag = row["Controller"].ToString(); // 序号
aioiController.CommandTimeout = 5000;//指令超时时间
//Controller.CommandTimeout = WorkConfig.SendCommandTimeout*1000; // SendCommand超时参数
aioiController.Logger.Enabled = true; // 启动LOG
aioiController.Logger.Expiration = logPeriod; // LOG周期
aioiController.Logger.LogDirectory = string.Format("{0}\\{1}", logPath, aioiController.Tag); //LOG目录
aioiController.CommandReceived += EthernetController_CommandReceived; //指令处理委托事件
aioiController.ErrorRaised += EnternetController_ErrorRaised; //处理错误委托事件
aioiController.EndSendCommand += EnternetController_EndSendCommand; //异步发送完成委托事件
aioiController.EndConnect += EnternetController_EndConnect;//连接结束后委托事件
}
/// <summary>
/// 连接控制器
/// </summary>
private void OpenController()
{
if(aioiController!=null)
{
aioiController.Connect();
}
}
/// <summary>
/// 断开控制器
/// </summary>
private void CloseController()
{
if(aioiController!=null)
{
aioiController.Close();
}
}
/// <summary>
/// 事件:收到控制器命令
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EthernetController_CommandReceived(object sender, EventArgs e)
{
//指令交互处理
//跟电子标签、扫码枪等硬件交互时的数据处理
//业务的逻辑处理
}
/// <summary>
/// 事件:控制器通信错误
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EnternetController_ErrorRaised(object sender, ErrorRaisedEventArgs e)
{
}
/// <summary>
/// 事件:控制器发送命令结束
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EnternetController_EndSendCommand(object sender, EndSendCommandEventArgs e)
{
}
/// <summary>
/// 事件:控制器连接命令结束
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EnternetController_EndConnect(object sender, EndConnectEventArgs e)
{
}
}
如何发送指令
用爱鸥指令模式发送,所有指令都自由发送,指令文档具体参考爱鸥<程序员开发文档>;
//同步发送,返回CommandInfo
var re = aioiController.SendCommand("PP5050000000112345");
if(re==null)
{
Console.WriteLine("指令发送失败");
}
//异步发送,无返回类型Void
aioiController.BeginSendCommand("PP5050000000112345");