/// <summary> /// 获取数据行的设备目标位置参数 /// 记录包含字段【访问方式】(TCP/UDP/SerialPort)、【端口】(60000/COM1)、【地址】(192.168.1.146) /// </summary> /// <param name="dr">数据记录</param> /// <returns></returns> private CommiTarget getTarget(DataRow dr) { if (null == dr) { return(null); } CommiTarget target = new CommiTarget(); CommiType commiType = CommiType.UDP; int typecommi = 0; if (dr["通讯类别"].ToString() == "485") { typecommi = 1; } else if (dr["通讯类别"].ToString() == @"TCP\IP") { typecommi = 2; } else { typecommi = 3; } if (DBNull.Value != dr["通讯类别"]) { //int typecommi = Convert.ToInt16(dr["通讯类别"]); if (1 == typecommi) { commiType = CommiType.SerialPort; } if (2 == typecommi) { commiType = CommiType.TCP; } } if (CommiType.SerialPort == commiType) { string portname = "COM" + Convert.ToString(dr["端口"]); target.SetProtocolParam(portname, 19200); } else { string addr = Convert.ToString(dr["站址"]); int port = Convert.ToInt16(dr["端口"]); target.SetProtocolParam(addr, port, commiType); } target.setProtocol(Protocol.PTLPark); return(target); }
/// <summary> /// 获取数据行的设备目标位置参数 /// 记录包含字段【访问方式】(TCP/UDP/SerialPort)、【端口】(60000/COM1)、【地址】(192.168.1.146) /// </summary> /// <param name="dr">数据记录</param> /// <returns></returns> private CommiTarget getTarget(string[] devps) { string[] cols = { "通讯类别", "串口", "波特率", "数据位", "停止位", "IP地址", "端口", "站址", "控制器", "名称" }; if (null == devps || devps.Length < 7) { return(null); } CommiTarget target = new CommiTarget(); target.setProtocol(Protocol.PTLDoor); CommiType commiType = CommiType.UDP; string stype = Convert.ToString(devps[0]); switch (stype) { case "TCP/IP(局域网)": commiType = CommiType.TCP; break; case "UDP/IP(局域网)": commiType = CommiType.UDP; break; default: commiType = CommiType.SerialPort; break; } try { if (CommiType.SerialPort == commiType) { string portname = Convert.ToString(devps[1]); int baudRate = Convert.ToInt16(devps[2]); int dataBits = Convert.ToInt16(devps[3]); decimal s = Convert.ToDecimal(devps[4]); StopBits sb = StopBits.None; if (1 == s) { sb = StopBits.One; } else if (2 == s) { sb = StopBits.Two; } else if (1 < s && s < 2) { sb = StopBits.OnePointFive; } target.SetProtocolParam(portname, baudRate, Parity.None, dataBits, sb); } else { string addr = Convert.ToString(devps[5]); int port = Convert.ToInt32(devps[6]); target.SetProtocolParam(addr, port, commiType); } } catch (Exception ex) { return(null); } return(target); }
/// <summary> /// 获取数据行的设备目标位置参数 /// 记录包含字段【访问方式】(TCP/UDP/SerialPort)、【端口】(60000/COM1)、【地址】(192.168.1.146) /// </summary> /// <param name="dr">数据记录</param> /// <returns></returns> private CommiTarget getTarget(DataRow dr) { if (null == dr || (DBNull.Value == dr["串口"] && DBNull.Value == dr["IP地址"])) { return(null); } CommiTarget target = new CommiTarget(); CommiType commiType = CommiType.UDP; string stype = Convert.ToString(dr["通讯类别"]); switch (stype) { case "TCP/IP(局域网)": commiType = CommiType.TCP; break; case "UDP/IP(局域网)": commiType = CommiType.UDP; break; default: commiType = CommiType.SerialPort; break; } try { if (CommiType.SerialPort == commiType) { string portname = Convert.ToString(dr["串口"]); int baudRate = Convert.ToInt16(dr["波特率"]); int dataBits = Convert.ToInt16(dr["数据位"]); decimal s = Convert.ToDecimal(dr["停止位"]); StopBits sb = StopBits.None; if (1 == s) { sb = StopBits.One; } else if (2 == s) { sb = StopBits.Two; } else if (1 < s && s < 2) { sb = StopBits.OnePointFive; } target.SetProtocolParam(portname, baudRate, Parity.None, dataBits, sb); } else { string addr = Convert.ToString(dr["IP地址"]); if (string.IsNullOrEmpty(addr) || DBNull.Value == dr["端口"]) { return(null); } int port = Convert.ToInt32(dr["端口"]); target.SetProtocolParam(addr, port, commiType); } } catch (Exception ex) { NameValueCollection data = new NameValueCollection(); data["操作"] = "创建通讯目标"; data["设备ID"] = Convert.ToString(dr["ID"]); ServiceTool.LogMessage(ex, data, EventLogEntryType.Error); return(null); } return(target); }