using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SocketProcess.SerialPort { public class BarCodeGunManager { public BarCodeGunManager() { } //#region 单例模式 //private readonly static object syac=new object(); //private static BarCodeGunManager _instance; //public static BarCodeGunManager Instance //{ // get // { // if (_instance == null) // { // lock (syac) // { // _instance = new BarCodeGunManager(); // } // } // return _instance; // } //} //#endregion public List EquipLsit = new List(); public void OpenAllEquip() { foreach (SerialEquip equip in EquipLsit) { equip.Comm.Open(); equip.Comm.DataReceived +=equip.Serial_DataReceived; } } //private void Serial_DataReceived(byte[] readBuffer) //{ // string Data = System.Text.Encoding.Default.GetString(readBuffer); // //是否需要判断条码的完整性 // //绑定内部条码和当前条码 //} } public class SerialEquip { public SerialHelper Comm; public delegate void Scandeleget(string code, SerialEquip equip); public Scandeleget SerialData; public SerialEquip(string Com,string Type) { this.EquipType = Type; this.EquipCom = Com; Comm.DataReceived += Serial_DataReceived; Comm = new SerialHelper(); } public void OpenCom() { if (Comm.IsOpen) { Comm.Close(); } Comm.serialPort.PortName = EquipCom; //波特率 Comm.serialPort.BaudRate = 9600; //数据位 Comm.serialPort.DataBits = 8; //两个停止位 Comm.serialPort.StopBits = System.IO.Ports.StopBits.One; //无奇偶校验位 Comm.serialPort.Parity = System.IO.Ports.Parity.None; Comm.serialPort.ReadTimeout = 200; Comm.serialPort.WriteTimeout = -1; Comm.Open(); } public void Serial_DataReceived(byte[] readBuffer) { string Data = System.Text.Encoding.Default.GetString(readBuffer); if (SerialData!=null) { SerialData(Data,this); } //是否需要判断条码的完整性 //绑定内部条码和当前条码 } /// /// 设备名称 /// public string EquipName { get; set; } /// /// 设备类型 /// public string EquipType { get; set; } /// /// 串口名称 /// public string EquipCom { get; set; } } }