public Boolean AutoConnectPorts(out string autoConnectPortsMessageResponse) { Boolean result = false; ListStore autoConnectPortsList = AutoConnectPrtsModel.getModel(); TreeIter autocnnportiter; autoConnectPortsMessageResponse = string.Empty; if (autoConnectPortsList.GetIterFirst(out autocnnportiter)) { do { string port = autoConnectPortsList.GetValue(autocnnportiter, 0).ToString(); int baudRate = Convert.ToInt32(autoConnectPortsList.GetValue(autocnnportiter, 3).ToString()); Parity parity = (Parity)Enum.Parse(typeof(Parity), autoConnectPortsList.GetValue(autocnnportiter, 4).ToString()); int databits = Convert.ToInt32(autoConnectPortsList.GetValue(autocnnportiter, 5).ToString()); StopBits stopbits = (StopBits)Enum.Parse(typeof(StopBits), autoConnectPortsList.GetValue(autocnnportiter, 6).ToString()); string messageResponse; if ( this.connectToPort(port, baudRate, parity, databits, stopbits, new SerialDataReceivedEventHandler(sport_DataReceived), new SerialErrorReceivedEventHandler(sport_ErrorReceived), out messageResponse) ) { BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", port.ToString())); } else { BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Error al intentar conectar [ {0} ]", messageResponse), "ERROR"); autoConnectPortsMessageResponse += string.Format("{0}", messageResponse); } } while(autoConnectPortsList.IterNext(ref autocnnportiter)); if (string.IsNullOrEmpty(autoConnectPortsMessageResponse)) { result = true; } } else { autoConnectPortsMessageResponse = string.Format("No se encontraron puertos para auto conectar [ {0} ]", cnfg.Id_application); } return(result); }
private void AutoConnectPorts() { ListStore autoConnectPortsList = AutoConnectPrtsModel.getModel(); TreeIter autocnnportiter; if (autoConnectPortsList.GetIterFirst(out autocnnportiter)) { do { string autocnnport = autoConnectPortsList.GetValue(autocnnportiter, 0).ToString(); ListStore portsList = PortsModel.getModel(); TreeIter iter; Boolean portGetConnected = false; if (portsList.GetIterFirst(out iter)) { do { string port = portsList.GetValue(iter, 0).ToString(); if (port.Trim().Equals(autocnnport.Trim(), StringComparison.CurrentCultureIgnoreCase)) { string sport = lblPuerto.Text.ToString(); int baudRate = Convert.ToInt32(cmbBaudRate.ActiveText.ToString()); Parity parity = (Parity)Enum.Parse(typeof(Parity), cmbParity.ActiveText.ToString()); int databits = Convert.ToInt32(cmbDatabits.ActiveText.ToString()); StopBits stopbits = (StopBits)Enum.Parse(typeof(StopBits), cmbStopbits.ActiveText.ToString()); CnnPort cnnPort; if (!cnnPortList.TryGetValue(port, out cnnPort)) { string messageResponse; if ( this.connectToPort(port, baudRate, parity, databits, stopbits, new SerialDataReceivedEventHandler(sport_DataReceived), new SerialErrorReceivedEventHandler(sport_ErrorReceived), out messageResponse) ) { PortsModel.editItem(iter, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/on.png"), "Conectado"); BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", port.ToString())); } else { PortsModel.editItem(iter, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/err.png"), "Error al intentar conectar"); BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Error al intentar conectar [ {0} ]", messageResponse), "ERROR"); } } cnnPort = null; portGetConnected = true; } } while (portsList.IterNext(ref iter)); } if (!portGetConnected) { BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", autocnnport), string.Format("No se encontró el puerto disponible"), "ERROR"); } } while(autoConnectPortsList.IterNext(ref autocnnportiter)); } }