Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }