Beispiel #1
0
    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");
        }
    }
Beispiel #2
0
    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");
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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));
        }
    }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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;
            }
        }
    }
Beispiel #8
0
    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");
            }
        }
    }
Beispiel #9
0
    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
    }
Beispiel #10
0
    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));
        }
    }