private void populateTablePorts() { PortsModel.clearModel(); string[] portList = SerialPort.GetPortNames(); if (portList.Length > 0) { foreach (string port in SerialPort.GetPortNames()) { CnnPort cnnPort; if (cnnPortList.TryGetValue(port, out cnnPort)) { PortsModel.addItem(port.ToString(), new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/on.png"), "Conectado"); } else { PortsModel.addItem(port.ToString(), new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/off.png"), "Desconectado"); } cnnPort = null; BitacoraModel.addItem("Detectar puerto", string.Format("Puerto {0}", port.ToString())); } GtkScrolledWindow.Visible = true; } else { lblPortsNotFound.Visible = true; GtkScrolledWindow.Visible = false; BitacoraModel.addItem("Detectar puerto", "No se detectaron puertos", "", "AVISO"); } }
void sport_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) { SerialPort thisPort = (sender as SerialPort); SerialError err = e.EventType; BitacoraModel.addItem("Error de resepción de puerto", string.Format("Puerto {0}", thisPort.PortName), string.Format("{0}", err.ToString()), "ERROR"); }
protected void OnBtnconnectClicked(object sender, EventArgs e) { string port = 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()); string messageResponse; if ( this.connectToPort(port, baudRate, parity, databits, stopbits, new SerialDataReceivedEventHandler(sport_DataReceived), new SerialErrorReceivedEventHandler(sport_ErrorReceived), out messageResponse) ) { PortsModel.editItem(iterSelected, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/on.png"), "Conectado"); BitacoraModel.addItem("Abrir puerto", string.Format("Puerto {0}", port.ToString())); } else { PortsModel.editItem(iterSelected, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/err.png"), "Error al intentar conectar"); BitacoraModel.addItem("Abrir puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Error al intentar conectar [ {0} ]", messageResponse), "ERROR"); } tblPorts.SetCursor(PortsModel.getModel().GetPath(iterSelected), tblPorts.GetColumn(0), false); }
private Boolean senDataToPort(string portName, string data) { Boolean response = false; CnnPort cnnPort; string port = portName; if (cnnPortList.TryGetValue(port, out cnnPort)) { if (!cnnPort.SendData(data)) { dlg.show(this, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Ok, string.Format("Ocurrió un error al enviar el dato al puerto {0} [ {1} ]", port, data)); BitacoraModel.addItem("Enviar dato al puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Ocurrió un error al enviar el dato [ {0} ] al puerto", data), "ERROR"); } else { BitacoraModel.addItem("Enviar dato al puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Dato enviado al puerto [ {0} ]", data)); response = true; } } else { BitacoraModel.addItem("Enviar dato al puerto", string.Format("Puerto {0}", port.ToString()), string.Format("El puerto [ {0} ] no se encuentra abierto o la comunicación ha sido interrumpida. Dato [ {0} ] no enviado", port, data), "ERROR"); } return(response); }
void sport_DataReceived(object sender, SerialDataReceivedEventArgs e) { SerialPort thisPort = (sender as SerialPort); byte[] buf = new byte[thisPort.BytesToRead]; thisPort.Read(buf, 0, buf.Length); foreach (Byte b in buf) { BitacoraModel.addItem("Leer puerto", string.Format("Puerto {0}", thisPort.PortName), string.Format("Dato recibido [ {0} ] ", b)); } }
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); }
protected void OnBtnsendmsgClicked(object sender, EventArgs e) { CnnPort cnnPort; string port = lblPuerto.Text.ToString(); if (cnnPortList.TryGetValue(port, out cnnPort)) { String data = txtsendmsg.Text.ToString(); if (!cnnPort.SendData(data)) { dlg.show(this, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Ok, string.Format("Ocurrió un error al enviar el dato al puerto {0} [ {1} ]", port, data)); BitacoraModel.addItem("Enviar dato al puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Ocurrió un error al enviar el dato [ {0} ] al puerto", data), "ERROR"); } else { BitacoraModel.addItem("Enviar dato al puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Dato enviado al puerto [ {0} ]", data)); txtsendmsg.Text = string.Empty; } } }
protected void OnBtndisconnectClicked(object sender, EventArgs e) { CnnPort cnnPort; string port = lblPuerto.Text.ToString(); if (cnnPortList.TryGetValue(port, out cnnPort)) { if (cnnPort.Close(sport_DataReceived, sport_ErrorReceived)) { PortsModel.editItem(iterSelected, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/off.png"), "Desconectado"); tblPorts.SetCursor(PortsModel.getModel().GetPath(iterSelected), tblPorts.GetColumn(0), false); cnnPortList.Remove(port); BitacoraModel.addItem("Cerrar puerto", string.Format("Puerto {0}", port.ToString())); } else { BitacoraModel.addItem("Cerrar puerto", string.Format("Puerto {0}", port.ToString()), "Error al intentar cerrar puerto", "ERROR"); } } }
void sport_DataReceived(object sender, SerialDataReceivedEventArgs e) { SerialPort thisPort = (sender as SerialPort); byte[] buf = new byte[thisPort.BytesToRead]; thisPort.Read(buf, 0, buf.Length); string strData = string.Empty; foreach (Byte b in buf) { BitacoraModel.addItem("Leer puerto", string.Format("Puerto {0}", thisPort.PortName), string.Format("Dato recibido [ {0} ] ", b)); strData += ((char)b).ToString(); } BitacoraModel.addItem("Cadena recibida", string.Format("Puerto {0}", thisPort.PortName), string.Format("Cadena [ {0} ] ", strData)); /* * CODIGO DE ENVÍO AUTOMATICO DE PULSACIONES A OTRO PUERTO DE MANERA AUTOMÁTICA */ this.senDataToPort("COM1", //NOMBRE DEL PUERTO "p"); //DATO A ENVIAR }
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)); } }