Calculadora puerto de comunicaciones

Iniciado por Meta, Julio 28, 2020, 07:36:44 AM

Tema anterior - Siguiente tema

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

Julio 28, 2020, 07:36:44 AM Ultima modificación: Julio 28, 2020, 08:17:11 AM por Gabriela
Hola:

Quiero crear en modo consola dos programas.

Programa 1, hace como si fuera el hyper Terminal de Windows, que usa el puerto serie.Introduzco por ejemplo, el valor 4 + 2, pulse Enter, lo envía por el puerto serie esos datos al Programa 2.

Programa 2, recibe datos del puerto serie por parte del Programa 1 y devuelve los datos calculados como en este caso, 4 + 2 = 6.

Ejemplo de como hacerlo.

Tengo dos programas abiertos en cada ordenador o PC en el cual se comunica por el puerto serie, tienen el protocolo 9600 y el Programa 1 tiene el COM1 y el Programa 2 tiene el COM2.

1) Teniendo los dos programas arrancados o ejecutados, el Programa 1 me pide que introduzca algún valor o fórmula matemática sencilla como este. Envío 1 + 4 y luego pulso Enter.

2) Esa información 1 + 4 es enviado al puerto serie desde el Programa 1 y le llega al Programa 2, en el cual detecta un valor matemático que en este caso es 1 + 4, lo calcula y devuelve este resultado 1 + 4 = 5 al Programa 1.

3) El Programa 1 recibe los datos y muestra en pantalla esto: 1 + 4 = 5.

Los dos programas, por supuesto, usan el mismo protocolo.
Código: php
         // Cree un nuevo objeto SerialPort con la configuración predeterminada.
            SerialPort Puerto_serie = new SerialPort("COM4");

            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; // Milisegundos.
            Puerto_serie.WriteTimeout = 500;

            // Detecta cualquier dato recibido.
            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

            Puerto_serie.Open(); // Abrir puerto.

¿Es posible hacerlo?

Saludos.