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); } }