elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [30] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ... 261
291  Programación / .NET (C#, VB.NET, ASP) / Re: Enviar más de 255 carácteres en: 12 Diciembre 2020, 01:02 am
Por lo que he estado mirando en Internet, y como también quiero recibir y enviar mensajes a dispositivos, se recomienda que sea la lectura y escritura de mensajes con Byte[].

Por ejemplo:
Código
  1. Byte[] unBuffer = Encoding.ASCII.GetBytes("Texto o mensaje a enviar."); // Codificación ASCII y guarda en la variable array tipo byte.
  2. Puerto_serie.Write(miBuffer1, 0, miBuffer1.Length); // Envía los datos del buffer todo su contenido.

Por pasos qu eno se como hacerlo.
1. Escribo en la consola un mensaje.
Será esto:
Código
  1. Byte[] variable = Console.ReadLine();

2. Cuando ya se almacena en la variable "variable" un texto, por ejemplo. Hola, mi muy distinguido amigo. Me imagino que así se envía el texto.
Código
  1. Byte[] unBuffer = Encoding.ASCII.GetBytes(variable);
  2. Puerto_serie.Write(miBuffer1, 0, miBuffer1.Length);

Cuando llegue a mi casa, hago pruebas y comento.

Saludos.
292  Programación / .NET (C#, VB.NET, ASP) / Re: Enviar más de 255 carácteres en: 11 Diciembre 2020, 01:08 am
Parece ser que el UTF-8 le gusta más la gente al usarlo.

¿Cómo se maneja el UTF-8?
293  Programación / .NET (C#, VB.NET, ASP) / Re: Enviar más de 255 carácteres en: 11 Diciembre 2020, 00:27 am
Gracias Señor.

He podido al final leer los puertos series físicos y virtuales. Dejo el código nuevo abajo.

1.
¿Cuál es la mejor opción del formato hasta para escribir la ñ, tildes sin que aparezca caracter raro a la hora de enviar texto en forma de chat?

2
. ¿Cómo se hace encode UTF 8 a la hora de enviar  y recibir datos por el puerto serie?

3. A la hora de escribir mensajes, solo puedo escribir un máximo de 255 caracteres. ¿Cómo se puede escribir en la consola, más caracteres sin estar limitado solo a 255?

Código C#:
Código
  1. using System;
  2. using System.IO;
  3. using System.IO.Ports;
  4. using System.Threading;
  5.  
  6. namespace Chat_consola_02
  7. {
  8.    class Program
  9.    {
  10.        static bool _continua;
  11.        static SerialPort Puerto_serie;
  12.  
  13.        static void Main(string[] args)
  14.        {
  15.            string COM = "";
  16.            string nombre;
  17.            string mensaje;
  18.            StringComparer comparaString = StringComparer.OrdinalIgnoreCase;
  19.            Thread readThread = new Thread(Leer);
  20.  
  21.            // Título de la ventana.
  22.            Console.Title = "Enviar datos al puerto serie";
  23.  
  24.            // Tamaño de la ventana, x, y.
  25.            Console.SetWindowSize(70, 25);
  26.  
  27.            // Color de fondo.
  28.            Console.BackgroundColor = ConsoleColor.Gray;
  29.  
  30.            // Color de las letras.
  31.            Console.ForegroundColor = ConsoleColor.Black;
  32.  
  33.            // Limpiar pantalla y dejarlo todo gris.
  34.            Console.Clear();
  35.  
  36.            // Visible el cursor.
  37.            Console.CursorVisible = true;
  38.  
  39.            // Crear un nuevo objeto SerialPort con la configuración predeterminada.
  40.            Puerto_serie = new SerialPort();
  41.  
  42.            // Obtenga una lista de nombres de puertos serie.
  43.            string[] ports = SerialPort.GetPortNames();
  44.  
  45.            Console.WriteLine("Se encontraron los siguientes puertos series:");
  46.  
  47.            // Muestre el nombre de cada puerto en la consola.
  48.            foreach (string port in ports)
  49.            {
  50.                Console.WriteLine(port);
  51.            }
  52.  
  53.            // Configuración.
  54.            Console.Write(@"
  55. Introduzca un número para seleccionar puerto COM.
  56. Por ejemplo el 4, sería COM4.
  57.  
  58. Puerto: ");
  59.            COM = Console.ReadLine(); // Escribir el número del puerto.
  60.            Console.Clear();
  61.  
  62.            Puerto_serie.PortName = "COM" + COM; // Número del puerto serie.
  63.  
  64.            // Configuración del puerto serie.
  65.            Puerto_serie.BaudRate = 115200;
  66.            Puerto_serie.Parity = Parity.None;
  67.            Puerto_serie.StopBits = StopBits.One;
  68.            Puerto_serie.DataBits = 8;
  69.            Puerto_serie.Handshake = Handshake.None;
  70.            Puerto_serie.RtsEnable = true;
  71.  
  72.            // Establecer los tiempos de espera de lectura / escritura.
  73.            Puerto_serie.ReadTimeout = 500; // 500 // Milisegundos.
  74.            Puerto_serie.WriteTimeout = 500; // 500
  75.  
  76.            // Comprueba si puede abrir el puerto serie.
  77.            try
  78.            {
  79.                Puerto_serie.Open(); // Abrir el puerto serie.
  80.            }
  81.  
  82.            // En caso que diera algún error como que no encuentra el puerto seleccionado
  83.            // muestra una excepción.
  84.            catch (IOException)
  85.            {
  86.                Console.ForegroundColor = ConsoleColor.Red; // Texto en rojo.
  87.                Console.CursorVisible = false;
  88.                Console.SetCursorPosition(16, 6);
  89.                Console.WriteLine(@"El puerto " + Puerto_serie.PortName + @" no existe
  90.                o no lo encuentra.");
  91.                Console.ReadKey();   // Pulse cualquier tecla.
  92.                Environment.Exit(1); // Salir de la aplicación.
  93.            }
  94.  
  95.            _continua = true;
  96.            readThread.Start();
  97.  
  98.            // Mostrar texto Nombre y se
  99.            Console.Write("Nombre: ");
  100.  
  101.            // guarda en la variable nombre.
  102.            nombre = Console.ReadLine();
  103.  
  104.            Console.WriteLine("Escriba salir para salir");
  105.  
  106.            while (_continua)
  107.            {
  108.                // Cualquier caracter recibido se guarda en la variable mensaje.
  109.                mensaje = Console.ReadLine();
  110.  
  111.                // Compara salir con el mensaje salir si lo haz escrito igual.
  112.                // ¿Escribiste la palabra salir?
  113.                if (comparaString.Equals("salir", mensaje))
  114.                {
  115.                    // Sí. Entonces, pone esta variable _continue en false.
  116.                    _continua = false;
  117.                }
  118.                // No. Entonces, envía por el puerto serie tu nick
  119.                // y mensaje que haz escrito.
  120.                else
  121.                {
  122.                    Puerto_serie.WriteLine(
  123.                        String.Format("<{0}>: {1}", nombre, mensaje));
  124.                }
  125.            }
  126.  
  127.            // Bloquea el subproceso.
  128.            readThread.Join();
  129.  
  130.            // Cierra el puerto serie.
  131.            Puerto_serie.Close();
  132.        }
  133.  
  134.        // Lee mensaje recibido.
  135.        public static void Leer()
  136.        {
  137.            // Si _continue es true se ejecuta todas las instrucciones dentro de while.
  138.            while (_continua)
  139.            {
  140.                try
  141.                {
  142.                    // Almacena en la variable mensaje cualquier caracter o mensaje recibido.
  143.                    string mensaje = Puerto_serie.ReadLine();
  144.  
  145.                    // Muestra en pantalla mensaje recibido.
  146.                    Console.WriteLine(mensaje);
  147.                }
  148.                catch (TimeoutException) { }
  149.            }
  150.        }
  151.    }
  152. }

Saludos.
294  Programación / .NET (C#, VB.NET, ASP) / Re: Máquina de estado en: 10 Diciembre 2020, 01:41 am
Bueno.

Aquí eplica algo.


Por bloques o máquina de estado dice. Tiene ejemplo en C++ y Arduino. En el cual para tenerlo hay que registrarse en su Web.

Saludos.
295  Programación / .NET (C#, VB.NET, ASP) / Enviar más de 255 carácteres en: 10 Diciembre 2020, 01:01 am
Buenos días camaradas:

Hice un micni chat que funciona bien entre dos PC o ordenadores de sobremesa por el puerto serie.

Cuando quiero escribir un mensaje de más de 255 letras o caracteres, no me deja. Solo me quedo con 255 y ya está.

¿Existe alguna manera de escribir mensaje en la consola más de 255 caracteres o los que quiera?

Dejo el código de ejemplo en C#.
Código
  1. using System;
  2. using System.IO;
  3. using System.IO.Ports;
  4. using System.Threading;
  5.  
  6. namespace Introducir_datos_puerto_serie_consola_02
  7. {
  8.    class Program
  9.    {
  10.        static bool _continua;
  11.        // Cree un nuevo objeto SerialPort con la configuración predeterminada.
  12.        static readonly SerialPort Puerto_serie = new SerialPort("COM2");
  13.  
  14.        static void Main(string[] args)
  15.        {
  16.            string nombre;
  17.            string mensaje;
  18.            StringComparer comparaString = StringComparer.OrdinalIgnoreCase;
  19.            Thread readThread = new Thread(Leer);
  20.  
  21.            // Título de la ventana.
  22.            Console.Title = "Enviar datos al puerto serie";
  23.  
  24.            // Tamaño de la ventana, x, y.
  25.            Console.SetWindowSize(70, 25);
  26.  
  27.            // Color de fondo.
  28.            Console.BackgroundColor = ConsoleColor.Blue;
  29.  
  30.            // Color de las letras.
  31.            Console.ForegroundColor = ConsoleColor.Yellow;
  32.  
  33.            // Limpiar pantalla y dejarlo todo gris.
  34.            Console.Clear();
  35.  
  36.            // Visible el cursor.
  37.            Console.CursorVisible = true;
  38.  
  39.            Puerto_serie.BaudRate = 115200;
  40.            Puerto_serie.Parity = Parity.None;
  41.            Puerto_serie.StopBits = StopBits.One;
  42.            Puerto_serie.DataBits = 8;
  43.            Puerto_serie.Handshake = Handshake.None;
  44.            Puerto_serie.RtsEnable = true;
  45.  
  46.            // Establecer los tiempos de espera de lectura / escritura.
  47.            Puerto_serie.ReadTimeout = 500; // 500 // Milisegundos.
  48.            Puerto_serie.WriteTimeout = 500; // 500
  49.  
  50.            // Abrir puerto serie.
  51.            Puerto_serie.Open();
  52.            _continua = true;
  53.            readThread.Start();
  54.  
  55.            // Mostrar texto Nombre y se
  56.            Console.Write("Nombre: ");
  57.  
  58.            // guarda en la variable nombre.
  59.            nombre = Console.ReadLine();
  60.  
  61.            Console.WriteLine("Escriba salir para salir");
  62.  
  63.            while (_continua)
  64.            {
  65.                // Cualquier caracter recibido se guarda en la variable mensaje.
  66.                mensaje = Console.ReadLine();
  67.  
  68.                // Compara salir con el mensaje salir si lo haz escrito igual.
  69.                // ¿Escribiste la palabra salir?
  70.                if (comparaString.Equals("salir", mensaje))
  71.                {
  72.                    // Sí. Entonces, pone esta variable _continue en false.
  73.                    _continua = false;
  74.                }
  75.                // No. Entonces, envía por el puerto serie tu nick
  76.                // y mensaje que haz escrito.
  77.                else
  78.                {
  79.                    Puerto_serie.WriteLine(
  80.                        String.Format("<{0}>: {1}", nombre, mensaje));
  81.                }
  82.            }
  83.  
  84.            // Bloquea el subproceso.
  85.            readThread.Join();
  86.  
  87.            // Cierra el puerto serie.
  88.            Puerto_serie.Close();
  89.  
  90.        }
  91.  
  92.        // Lee mensaje recibido.
  93.        public static void Leer()
  94.        {
  95.            // Si _continue es true se ejecuta todas las instrucciones dentro de while.
  96.            while (_continua)
  97.            {
  98.                try
  99.                {
  100.                    // Almacena en la variable mensaje cualquier caracter o mensaje recibido.
  101.                    string mensaje = Puerto_serie.ReadLine();
  102.  
  103.                    // Muestra en pantalla mensaje recibido.
  104.                    Console.WriteLine(mensaje);
  105.                }
  106.                catch (TimeoutException) { }
  107.            }
  108.        }
  109.    }
  110. }

Otra cosa que me he sado cuenta. Si escribo o envío un mensaje que use la ñ, por ejemplo:
Hola Señor.
Me aparece esto.
Hola Se?or.
Siempre se me mete el ? por medio. Detecta mal los caracteres al recibir datos. Al introducirlos no.



Gracias.
296  Programación / .NET (C#, VB.NET, ASP) / Re: Máquina de estado en: 8 Diciembre 2020, 13:48 pm
Hola:

Para lo que quiero hacer, parace el más acertado es este tutorial difícil de entender.
https://docs.microsoft.com/es-es/dotnet/framework/windows-workflow-foundation/how-to-create-a-flowchart-workflow



Saludos.
297  Programación / .NET (C#, VB.NET, ASP) / Re: Máquina de estado en: 7 Diciembre 2020, 19:49 pm
Gracias, explicas mejor que el propio tutorial.

Lo haré, no preocuparse.

Mi idea es hacer un submenú como esto usando máquina de estado.



Saludos.
298  Programación / .NET (C#, VB.NET, ASP) / Máquina de estado en: 7 Diciembre 2020, 12:03 pm
Buenas:

Quiero hacer un tutorial, pero de entrada no se hacerlo. El tutorial es este.

https://docs.microsoft.com/es-es/dotnet/framework/windows-workflow-foundation/how-to-create-a-state-machine-workflow

Estoy con Windows Form. Me confirman si tamvién vale o no para hacerlo en modo consola.

No encuentro o no me sale en Visual Studio Community 2019, versión, 16.8.2 el stateMAchine.


Si se sabe algún videotutorial sobre ejemplos de máquinas de estados, mejor que mejor.

Aquí no me sale nada.

¿Alguna idea?

Saludos.
299  Programación / Scripting / Chat con Linux en: 3 Diciembre 2020, 22:25 pm
Buenas:

Hice un pequeño mini chat en consola con C# bajo Windows 10 de siempre. Quiero hacer lo mismo con Script bajo la Raspberry Pi. Como no tengo idea de Script de Linux y tampoco quiero usar MonoDevelop de Linux con C#, pues alguien me podría ayudar adaptar el código de C# a puro Script de Linux si no le importa.

Código C#:
Código
  1. using System;
  2. using System.IO.Ports;
  3. using System.Threading;
  4.  
  5. namespace Introducir_datos_puerto_serie_consola_02
  6. {
  7.    class Program
  8.    {
  9.        static bool _continua;
  10.        // Cree un nuevo objeto SerialPort con la configuración predeterminada.
  11.        static SerialPort Puerto_serie = new SerialPort("COM2");
  12.  
  13.        static void Main(string[] args)
  14.        {
  15.            string nombre;
  16.            string mensaje;
  17.            StringComparer comparaString = StringComparer.OrdinalIgnoreCase;
  18.            Thread readThread = new Thread(Leer);
  19.  
  20.            // Título de la ventana.
  21.            Console.Title = "Enviar datos al puerto serie";
  22.  
  23.            // Tamaño de la ventana, x, y.
  24.            Console.SetWindowSize(70, 25);
  25.  
  26.            // Color de fondo.
  27.            Console.BackgroundColor = ConsoleColor.Blue;
  28.  
  29.            // Color de las letras.
  30.            Console.ForegroundColor = ConsoleColor.Yellow;
  31.  
  32.            // Limpiar pantalla y dejarlo todo gris.
  33.            Console.Clear();
  34.  
  35.            // Visible el cursor.
  36.            Console.CursorVisible = true;
  37.  
  38.            Puerto_serie.BaudRate = 115200;
  39.            Puerto_serie.Parity = Parity.None;
  40.            Puerto_serie.StopBits = StopBits.One;
  41.            Puerto_serie.DataBits = 8;
  42.            Puerto_serie.Handshake = Handshake.None;
  43.            Puerto_serie.RtsEnable = true;
  44.  
  45.            // Establecer los tiempos de espera de lectura / escritura.
  46.            Puerto_serie.ReadTimeout = 500; // 500 // Milisegundos.
  47.            Puerto_serie.WriteTimeout = 500; // 500
  48.  
  49.            // Abrir puerto serie.
  50.            Puerto_serie.Open();
  51.            _continua = true;
  52.            readThread.Start();
  53.  
  54.            // Mostrar texto Nombre y se
  55.            Console.Write("Nombre: ");
  56.  
  57.            // guarda en la variable nombre.
  58.            nombre = Console.ReadLine();
  59.  
  60.            Console.WriteLine("Escriba salir para salir");
  61.  
  62.            while (_continua)
  63.            {
  64.                // Cualquier caracter recibido se guarda en la variable mensaje.
  65.                mensaje = Console.ReadLine();
  66.  
  67.                // Compara salir con el mensaje salir si lo haz escrito igual.
  68.                // ¿Escribiste la palabra salir?
  69.                if (comparaString.Equals("salir", mensaje))
  70.                {
  71.                    // Sí. Entonces, pone esta variable _continue en false.
  72.                    _continua = false;
  73.                }
  74.                // No. Entonces, envía por el puerto serie tu nick
  75.                // y mensaje que haz escrito.
  76.                else
  77.                {
  78.                    Puerto_serie.WriteLine(
  79.                        String.Format("<{0}>: {1}", nombre, mensaje));
  80.                }
  81.            }
  82.  
  83.            // Bloquea el subproceso.
  84.            readThread.Join();
  85.  
  86.            // Cierra el puerto serie.
  87.            Puerto_serie.Close();
  88.  
  89.        }
  90.  
  91.        // Lee mensaje recibido.
  92.        public static void Leer()
  93.        {
  94.            // Si _continue es true se ejecuta todas las instrucciones dentro de while.
  95.            while (_continua)
  96.            {
  97.                try
  98.                {
  99.                    // Almacena en la variable mensaje cualquier caracter o mensaje recibido.
  100.                    string mensaje = Puerto_serie.ReadLine();
  101.  
  102.                    // Muestra en pantalla mensaje recibido.
  103.                    Console.WriteLine(mensaje);
  104.                }
  105.                catch (TimeoutException) { }
  106.            }
  107.        }
  108.    }
  109. }

Seguro que es un cambiazo muy grande para la programación del Script.

Saludos.
300  Media / Multimedia / Re: Descargar o ver vídeo restringido en: 21 Octubre 2020, 22:51 pm
He probado con este que es lo mismo y no sirve, youtube.

https://www.atube.me/es/

Lo que quiero saber si esto es posible de alguna manera.

Saludos.
Páginas: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [30] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ... 261
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines