private bool ParseCommDevCfg(XElement commDevRoot, ref string reStr) { try { //1 PLC XElement plcRoot = commDevRoot.Element("PLCCfg"); plcRWs = new List <IPlcRW>(); IEnumerable <XElement> plcXES = plcRoot.Elements("PLC"); foreach (XElement plcXE in plcXES) { string connStr = plcXE.Value.ToString(); int db1Len = 100, db2Len = 100; db1Len = int.Parse(plcXE.Attribute("db1Len").Value.ToString()); db2Len = int.Parse(plcXE.Attribute("db2Len").Value.ToString()); int plcID = int.Parse(plcXE.Attribute("id").Value.ToString()); EnumPlcCata plcCata = EnumPlcCata.FX5U; if (plcXE.Attribute("cata") != null) { string strPlcCata = plcXE.Attribute("cata").Value.ToString(); plcCata = (EnumPlcCata)Enum.Parse(typeof(EnumPlcCata), strPlcCata); } PLCRwMCPro plcRW = new PLCRwMCPro(plcCata, db1Len, db2Len); // PLCRwMCPro2 plcRW = new PLCRwMCPro2(db1Len, db2Len); plcRW.ConnStr = plcXE.Value.ToString(); plcRW.PlcID = plcID; plcRWs.Add(plcRW); } //2 rfid XElement rfidRootXE = commDevRoot.Element("RfidCfg"); IEnumerable <XElement> rfidXES = rfidRootXE.Elements("RFID"); this.rfidRWs = new List <IrfidRW>(); foreach (XElement rfidXE in rfidXES) { byte id = byte.Parse(rfidXE.Attribute("id").Value.ToString()); string addr = rfidXE.Attribute("CommAddr").Value.ToString(); string[] strAddrArray = addr.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); string ip = strAddrArray[0]; ushort port = ushort.Parse(strAddrArray[1]); string hostAddr = rfidXE.Attribute("HostAddr").Value.ToString(); strAddrArray = hostAddr.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); string hostip = strAddrArray[0]; uint hostport = uint.Parse(strAddrArray[1]); //WqwlRfidRW rfidRW = new WqwlRfidRW(EnumTag.TagEPCC1G2, id, ip, port); WqRfidUdp rfidRW = new WqRfidUdp(EnumTag.TagEPCC1G2, id, ip, port, (uint)hostport); //=========================更改读卡方式======================================//np_modified1231 //WqwlRfidRW rfidRW = new WqwlRfidRW(EnumTag.TagEPCC1G2, id, ip, (uint)port); //rfidRW.HostIP = hostip; //rfidRW.HostPort = hostport; //rfidRW.ReaderIP = ip; //rfidRW.ReaderPort = (uint)port; //=======================================================================// Console.WriteLine("ID = " + id.ToString() + " IP = " + ip.ToString() + " Port = " + port.ToString() + " HostPort = " + hostport.ToString()); //rfidRW.HostIP = "192.168.1.251"; // rfidRW.HostPort = (uint)(9000+id); //SygoleHFReaderIF.HFReaderIF readerIF = new SygoleHFReaderIF.HFReaderIF(); //SgrfidRW rfidRW = new SgrfidRW(id); //rfidRW.ReaderIF = readerIF; //rfidRW.ReaderIF.ComPort = commPort; rfidRWs.Add(rfidRW); } //3 条码枪 XElement barcoderRootXE = commDevRoot.Element("BarScannerCfg"); IEnumerable <XElement> barcodes = barcoderRootXE.Elements("BarScanner"); barcodeRWList = new List <IBarcodeRW>(); foreach (XElement barcodeXE in barcodes) { byte id = byte.Parse(barcodeXE.Attribute("id").Value.ToString()); string commPort = barcodeXE.Attribute("CommAddr").Value.ToString(); string barcodeLenth = barcodeXE.Attribute("BarCodeLenth").Value.ToString(); BarcodeRWHoneywell barcodeReader = new BarcodeRWHoneywell(id); barcodeReader.barcodeLen = Convert.ToInt32(barcodeLenth); //BarcodeRWHonevor barcodeReader = new BarcodeRWHonevor(id); //barcodeReader.bar barcodeReader.TriggerMode = EnumTriggerMode.手动按钮触发; //System.IO.Ports.SerialPort comPort = new System.IO.Ports.SerialPort(commPort); //comPort.BaudRate = 115200; //comPort.DataBits = 8; //comPort.StopBits = System.IO.Ports.StopBits.One; //comPort.Parity = System.IO.Ports.Parity.None; barcodeReader.ComPortObj.PortName = commPort; barcodeReader.ComPortObj.BaudRate = 115200; barcodeReader.ComPortObj.DataBits = 8; barcodeReader.ComPortObj.StopBits = System.IO.Ports.StopBits.One; barcodeReader.ComPortObj.Parity = System.IO.Ports.Parity.None; barcodeRWList.Add(barcodeReader); } //4 杭可装载服务器 //XElement hkFillSvcXECfg = commDevRoot.Element("HKFillServerCfg"); //string hkSvcIP = "127.0.0.1"; //int hkSvcPort = 13535; //if(hkFillSvcXECfg != null) //{ // foreach (XElement hkXE in hkFillSvcXECfg.Elements("HkServer")) // { // int hkID = int.Parse(hkXE.Attribute("id").Value.ToString()); // hkSvcIP = hkXE.Attribute("ip").Value.ToString(); // hkSvcPort = int.Parse(hkXE.Attribute("port").Value.ToString()); // HKAccess hk = new HKAccess(hkID,hkSvcIP, hkSvcPort); // hk.RecvTimeOut = 5000; // hkAccessList.Add(hk); // } //} //string ocvDBConn = hkFillSvcXECfg.Element("HkOCVDB").Attribute("conn").Value.ToString(); // "Data Source = 192.168.100.20;Initial Catalog=SRANCH;User ID=L_Guest;Password=Guest@123;"; // ocvAccess = new OcvAccess(ocvDBConn, 36); CommDevConnect(); return(true); } catch (Exception ex) { reStr = ex.ToString(); return(false); } }
public bool ParseCommdev(XElement commDevRoot, ref string reStr) { try { //1 PLC plcRWs = new List <IPlcRW>(); XElement plcRoot = commDevRoot.Element("PLCCfg"); IEnumerable <XElement> plcXES = plcRoot.Elements("PLC"); int plcSum = plcXES.Count(); foreach (XElement plcXE in plcXES) { string connStr = plcXE.Value.ToString(); int db1Len = 100, db2Len = 100; db1Len = int.Parse(plcXE.Attribute("db1Len").Value.ToString()); db2Len = int.Parse(plcXE.Attribute("db2Len").Value.ToString()); int plcID = int.Parse(plcXE.Attribute("id").Value.ToString()); EnumPlcCata plcCata = EnumPlcCata.FX5U; if (plcXE.Attribute("cata") != null) { string strPlcCata = plcXE.Attribute("cata").Value.ToString(); plcCata = (EnumPlcCata)Enum.Parse(typeof(EnumPlcCata), strPlcCata); } if (SysCfg.SysCfgModel.SimMode) { PlcRWSim plcRW = new PlcRWSim(); plcRW.PlcID = plcID; plcRW.PlcRole = plcXE.Attribute("role").Value.ToString(); plcRWs.Add(plcRW); } else { PLCRwMCPro plcRW = new PLCRwMCPro(plcCata, db1Len, db2Len); plcRW.PlcRole = plcXE.Attribute("role").Value.ToString(); // PLCRwMCPro2 plcRW = new PLCRwMCPro2(db1Len, db2Len); plcRW.ConnStr = plcXE.Value.ToString(); plcRW.PlcID = plcID; plcRWs.Add(plcRW); } } //2 rfid XElement rfidRootXE = commDevRoot.Element("RfidCfg"); IEnumerable <XElement> rfidXES = rfidRootXE.Elements("RFID"); this.rfidRWs = new List <IrfidRW>(); foreach (XElement rfidXE in rfidXES) { byte id = byte.Parse(rfidXE.Attribute("id").Value.ToString()); string addr = rfidXE.Attribute("CommAddr").Value.ToString(); string[] strAddrArray = addr.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); string ip = strAddrArray[0]; ushort port = ushort.Parse(strAddrArray[1]); //WqwlRfidRW rfidRW = new WqwlRfidRW(EnumTag.TagEPCC1G2, id, ip, port); WqRfidUdp rfidRW = new WqRfidUdp(EnumTag.TagEPCC1G2, id, ip, port, (uint)(9000 + id)); //SygoleHFReaderIF.HFReaderIF readerIF = new SygoleHFReaderIF.HFReaderIF(); //SgrfidRW rfidRW = new SgrfidRW(id); //rfidRW.ReaderIF = readerIF; //rfidRW.ReaderIF.ComPort = commPort; rfidRWs.Add(rfidRW); } //3 条码枪 XElement barcoderRootXE = commDevRoot.Element("BarScannerCfg"); IEnumerable <XElement> barcodes = barcoderRootXE.Elements("BarScanner"); barcodeRWList = new List <IBarcodeRW>(); foreach (XElement barcodeXE in barcodes) { byte id = byte.Parse(barcodeXE.Attribute("id").Value.ToString()); string commPort = barcodeXE.Attribute("CommAddr").Value.ToString(); if (SysCfg.SysCfgModel.SimMode) { BarcodeRWSim barSim = new BarcodeRWSim(id); barSim.Role = barcodeXE.Attribute("role").Value.ToString(); barcodeRWList.Add(barSim); } else { BarcodeRWHonevor barcodeReader = new BarcodeRWHonevor(id); barcodeReader.TriggerMode = EnumTriggerMode.序命令触发; barcodeReader.Role = barcodeXE.Attribute("role").Value.ToString(); //System.IO.Ports.SerialPort comPort = new System.IO.Ports.SerialPort(commPort); //comPort.BaudRate = 115200; //comPort.DataBits = 8; //comPort.StopBits = System.IO.Ports.StopBits.One; //comPort.Parity = System.IO.Ports.Parity.None; barcodeReader.ComPortObj.PortName = commPort; barcodeReader.ComPortObj.BaudRate = 115200; barcodeReader.ComPortObj.DataBits = 8; barcodeReader.ComPortObj.StopBits = System.IO.Ports.StopBits.One; barcodeReader.ComPortObj.Parity = System.IO.Ports.Parity.None; barcodeRWList.Add(barcodeReader); } } return(true); } catch (Exception ex) { reStr = "通信设备配置解析失败,发生系统异常:" + ex.ToString(); return(false); } }