Chat con Linux

Iniciado por Meta, 3 Diciembre 2020, 22:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

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 (csharp) [Seleccionar]
using System;
using System.IO.Ports;
using System.Threading;

namespace Introducir_datos_puerto_serie_consola_02
{
    class Program
    {
        static bool _continua;
        // Cree un nuevo objeto SerialPort con la configuración predeterminada.
        static SerialPort Puerto_serie = new SerialPort("COM2");

        static void Main(string[] args)
        {
            string nombre;
            string mensaje;
            StringComparer comparaString = StringComparer.OrdinalIgnoreCase;
            Thread readThread = new Thread(Leer);

            // Título de la ventana.
            Console.Title = "Enviar datos al puerto serie";

            // Tamaño de la ventana, x, y.
            Console.SetWindowSize(70, 25);

            // Color de fondo.
            Console.BackgroundColor = ConsoleColor.Blue;

            // Color de las letras.
            Console.ForegroundColor = ConsoleColor.Yellow;

            // Limpiar pantalla y dejarlo todo gris.
            Console.Clear();

            // Visible el cursor.
            Console.CursorVisible = true;

            Puerto_serie.BaudRate = 115200;
            Puerto_serie.Parity = Parity.None;
            Puerto_serie.StopBits = StopBits.One;
            Puerto_serie.DataBits = 8;
            Puerto_serie.Handshake = Handshake.None;
            Puerto_serie.RtsEnable = true;

            // Establecer los tiempos de espera de lectura / escritura.
            Puerto_serie.ReadTimeout = 500; // 500 // Milisegundos.
            Puerto_serie.WriteTimeout = 500; // 500

            // Abrir puerto serie.
            Puerto_serie.Open();
            _continua = true;
            readThread.Start();

            // Mostrar texto Nombre y se
            Console.Write("Nombre: ");

            // guarda en la variable nombre.
            nombre = Console.ReadLine();

            Console.WriteLine("Escriba salir para salir");

            while (_continua)
            {
                // Cualquier caracter recibido se guarda en la variable mensaje.
                mensaje = Console.ReadLine();

                // Compara salir con el mensaje salir si lo haz escrito igual.
                // ¿Escribiste la palabra salir?
                if (comparaString.Equals("salir", mensaje))
                {
                    // Sí. Entonces, pone esta variable _continue en false.
                    _continua = false;
                }
                // No. Entonces, envía por el puerto serie tu nick
                // y mensaje que haz escrito.
                else
                {
                    Puerto_serie.WriteLine(
                        String.Format("<{0}>: {1}", nombre, mensaje));
                }
            }

            // Bloquea el subproceso.
            readThread.Join();

            // Cierra el puerto serie.
            Puerto_serie.Close();

        }

        // Lee mensaje recibido.
        public static void Leer()
        {
            // Si _continue es true se ejecuta todas las instrucciones dentro de while.
            while (_continua)
            {
                try
                {
                    // Almacena en la variable mensaje cualquier caracter o mensaje recibido.
                    string mensaje = Puerto_serie.ReadLine();

                    // Muestra en pantalla mensaje recibido.
                    Console.WriteLine(mensaje);
                }
                catch (TimeoutException) { }
            }
        }
    }
}


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

Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/