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
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 void Main(string[] args) { string nombre; string mensaje; StringComparer comparaString = StringComparer.OrdinalIgnoreCase; // 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.