public void AddChannels(List<Channel> channels) { foreach (Channel c in channels.Where(x => x.Enabled > 0)) { Dictionary<String, String> ConnectionOptions = StringToDictionary.Convert(c.ConnectionString); // TODO: Try/catch around this to continue after hitting a bad channel switch (c.Type.ToLower()) { case "tcpclient": if (ConnectionOptions.Keys.Contains("address") && ConnectionOptions.Keys.Contains("port")) { UInt16 port = Convert.ToUInt16(ConnectionOptions["port"]); if (port == 0) throw new FormatException(); // TODO timespan option IChannel ch = DNP3Manager.AddTCPClient(c.Name, LogLevel.Info, TimeSpan.FromSeconds(5), ConnectionOptions["address"], port); ChannelWrapper wr = new ChannelWrapper(c, ch); wr.OnStateChanged += this.ChannelStateChanged; wr.Channel.AddStateListener(new Action<ChannelState>(wr.StateChanged)); Channels.Add(wr); } break; case "serial": if (ConnectionOptions.Keys.Contains("port") && ConnectionOptions.Keys.Contains("baud")) { UInt16 baud = Convert.ToUInt16(ConnectionOptions["baud"]); if (baud == 0) throw new FormatException(); // TODO: more serial settings SerialSettings ss = new SerialSettings(ConnectionOptions["port"], baud, 8, 1, Parity.NONE, FlowControl.NONE); // TODO: timespan option IChannel ch = DNP3Manager.AddSerial(c.Name, LogLevel.Info, TimeSpan.FromSeconds(5), ss); ChannelWrapper wr = new ChannelWrapper(c, ch); wr.OnStateChanged += this.ChannelStateChanged; wr.Channel.AddStateListener(new Action<ChannelState>(wr.StateChanged)); Channels.Add(wr); } break; } } }
private void buttonAdd_Click(object sender, EventArgs e) { try { String port = this.comboBoxPort.Text; int baud = int.Parse(this.comboBoxBaud.Text); int dataBits = int.Parse(this.comboBoxDataBits.Text); Parity parity = this.GetParity(); int stopBits = int.Parse(this.comboBoxStopBits.Text); FlowControl flowControl = this.GetFlowControl(); SerialSettings ss = new SerialSettings(port, baud, dataBits, stopBits, parity, flowControl); if (this.SerialPortAdded != null) SerialPortAdded(ss); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void stackBrowser1_OnSerialPortAdded(SerialSettings settings) { sm.AddSerial(settings.port, FilterLevel.LEV_WARNING, 5000, settings); }
void form_SerialPortAdded(SerialSettings settings) { if (this.OnSerialPortAdded != null) { if (root.Nodes.ContainsKey(settings.port)) //port names cannot be duplicates { MessageBox.Show("A port with that name already exists: " + settings.port); } else { this.OnSerialPortAdded(settings); TreeNode node = this.root.Nodes.Add(settings.port, settings.port); EventHandler addMasterAction = (obj, e) => this.AddMasterClick(node); EventHandler removePortAction = (obj, e) => this.RemovePortClick(node); node.ContextMenuStrip = this.WireNewPortMenuStrip(addMasterAction, removePortAction); node.ToolTipText = settings.ToString(); } } }