Exemple #1
0
        public IDriver AddDriver1(short id, string name, string assembly, string className)
        {
            if (_drivers.ContainsKey(id))
            {
                return(_drivers[id]);
            }
            IDriver dv = null;

            switch (className)
            {
            case "FileDriver.TagDriver":
                dv = new TagDriver(this, id, name);
                _drivers.Add(id, dv);
                return(dv);

            case "ModbusDriver.ModbusTCPReader":
                dv = new ModbusTCPReader(this, id, name);
                _drivers.Add(id, dv);
                return(dv);

            case "ModbusDriver.ModbusRTUDriver":
                dv = new ModbusRTUReader(this, id, name);
                _drivers.Add(id, dv);
                return(dv);

            default:
                return(dv);
            }
        }
        public IDriver AddDriver1(short id, string name, string assembly, string className, JObject target)
        {
            if (_drivers.ContainsKey(id))
            {
                return(_drivers[id]);
            }
            switch (className)
            {
            case "FileDriver.TagDriver":
                TagDriver dv1 = new TagDriver(this, id, name);
                _drivers.Add(id, dv1);
                return(dv1);

            case "ModbusDriver.ModbusTCPReader":    //todo:这里的实现有点挫,后面有空改进
                ModbusTCPReader dv2 = new ModbusTCPReader(this, id, name);
                dv2.ServerName = target["ServerName"].ToString();
                dv2.Port       = int.Parse(target["Port"].ToString());
                dv2.TimeOut    = int.Parse(target["TimeOut"].ToString());
                dv2.SlaveID    = short.Parse(target["SlaveID"].ToString());
                _drivers.Add(id, dv2);
                return(dv2);

            case "ModbusDriver.ModbusRTUReader":
                ModbusRTUReader dv3 = new ModbusRTUReader(this, id, name);
                dv3.PortName = target["PortName"].ToString();
                dv3.TimeOut  = int.Parse(target["TimeOut"].ToString());
                dv3.SlaveID  = short.Parse(target["SlaveID"].ToString());
                dv3.BaudRate = int.Parse(target["BaudRate"].ToString());
                dv3.DataBits = int.Parse(target["DataBits"].ToString());
                dv3.StopBits = (StopBits)int.Parse(target["StopBits"].ToString());
                dv3.Parity   = (Parity)int.Parse(target["Parity"].ToString());
                _drivers.Add(id, dv3);
                return(dv3);

            default:
                return(null);
            }
        }