Esempio n. 1
0
        /// <summary>
        ///     Si se indica un ID de puerto, se emplea para establecer la conexión
        ///     con el dispositivo, de lo contrario, se intenta localizar un
        ///     dispositivo cuyo nombre disponga de un patron de texto determinado.
        /// </summary>
        /// <param name="selecPort">
        ///     Número de puerto COM.
        /// </param>
        /// <param name="patrones">
        ///     Matriz que contiene los patrones de texto a localizar en el nombre
        ///     del dispositivo.
        /// </param>
        private void ValidaParamPort(int selecPort, IEnumerable <string> patrones)
        {
            if (selecPort > 0)
            {
                var conexionSerie = new SerialCom(selecPort);
                ParamPort = conexionSerie.ComPort;
            }
            // Si no se ha especificado ningún Id de puerto
            else
            {
                // Realiza la busqueda de dispositivo por patrón
                foreach (var patron in patrones)
                {
                    var conexionSerie = new SerialCom(patron);

                    // Si se localiza una conexión que coincida con el patrón
                    if (conexionSerie.ComPort == null)
                    {
                        continue;
                    }
                    ParamPort = conexionSerie.ComPort;
                    return;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Acciones a realizar con los parámetros.
        ///     Verifica si los parámetros introducidos están dentro
        ///     de rango, de lo contrario asigna valores por defecto
        ///     o muestra mensajes de error.
        /// </summary>
        /// <param name="parser">
        ///     Analiza los parámetros pasados por línea de comandos.
        /// </param>
        /// <param name="param">
        ///     Parámetros pasados por línea de comandos.
        /// </param>
        public void SeleccionParametros(CommandLineParser.CommandLineParser parser, Parametros param)
        {
            var consola = new Consola();

            // Ayuda
            if (param.Help)
            {
                MostrarAyudaParametros(parser, param);
            }

            // Version
            if (param.Version)
            {
                consola.MsgVersion();
            }

            // Listado de puertos
            if (param.ListCom)
            {
                consola.MsgListadoPuertos();
            }

            // Flujo de configuración manual
            if (ParamPort == null || param.Help || param.ListCom || param.Version)
            {
                return;
            }

            // Puerto
            ValidaParamPort(param.Port, _patrones);
            Console.WriteLine($"{consola.Prompt}Puerto: {ParamPort}");

            // Velocidad
            ValidaParamSpeed(param.Speed);
            Console.WriteLine($"{consola.Prompt}Velocidad: {ParamSpeed}");

            // Paridad
            ValidaParidad(param.Parity);
            Console.WriteLine($"{consola.Prompt}Bit de paridad: {ParamParity}");

            // Bits de datos
            ValidaDataBits(param.DataBits);
            Console.WriteLine($"{consola.Prompt}Bits de comunicaciones: {ParamDataBits}");

            // Bits de parada
            ValidaStopBits(param.StopBits);
            Console.WriteLine($"{consola.Prompt}Asignado bit de parada: {ParamStopBits}");

            // >>> CONEXIÓN <<<
            var conexionSerie = new SerialCom(ParamPort, ParamSpeed, ParamParity, ParamDataBits, ParamStopBits);

            if (param.Info && conexionSerie.ComOk)
            {
                consola.MostrarParametros(conexionSerie);
            }

            conexionSerie.Conectar();
        }
Esempio n. 3
0
        /// <summary>
        ///     Muestra los parámetros que se han empleado para
        ///     establecer la comunicación.
        /// </summary>
        public void MostrarParametros(SerialCom conexionSerie)
        {
            var listaParametros = "Parámetros de la conexión: \n" +
                                  $" - ComPort: {conexionSerie.ComPort} \n" +
                                  $" - ComSpeed: {conexionSerie.ComSpeed} \n" +
                                  $" - ComParity: {conexionSerie.ComParity} \n" +
                                  $" - ComBits: {conexionSerie.ComDataBits} \n" +
                                  $" - ComStopBits: {conexionSerie.ComStopBits}";

            Console.WriteLine($"{Prompt}{listaParametros}");
        }
Esempio n. 4
0
        /// <summary>
        ///     Muestra el listado de dispositivos conectados a puertos COM
        /// </summary>
        public void MsgListadoPuertos()
        {
            var    puertos = SerialCom.ListarPuertosCom();
            string listado = null;
            var    cnt     = 0;

            foreach (var puerto in puertos)
            {
                var comEnUsoOsx = Regex.IsMatch(puerto, RegExpOsx);
                var comEnUsoWin = Regex.IsMatch(puerto, RegExpWin);

                if (comEnUsoOsx || comEnUsoWin)
                {
                    cnt++;
                    listado += "|  " + cnt + " | " + puerto + "\n";
                }
            }

            Console.WriteLine($"{Prompt}Listado de puertos \n");
            Console.WriteLine("|----|--------------------------------------");
            Console.WriteLine("| ID |   DISPOSITIVO COM");
            Console.WriteLine("|----|--------------------------------------");
            Console.WriteLine($"{listado}");
        }