示例#1
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);
    }
示例#2
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));
        }
    }