Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/01/2017, 07:22
REHome
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Contar las tramas de byte recibidas

Buenos días a todos y a todas:

Mirando un código mejor que el mio en este enlace
, en el cual tiene este código.

Código:
using System;
using System.IO.Ports;

class PortDataReceived
{
    public static void Main()
    {
        SerialPort mySerialPort = new SerialPort("COM1");

        mySerialPort.BaudRate = 9600;
        mySerialPort.Parity = Parity.None;
        mySerialPort.StopBits = StopBits.One;
        mySerialPort.DataBits = 8;
        mySerialPort.Handshake = Handshake.None;
        mySerialPort.RtsEnable = true;

        mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

        mySerialPort.Open();

        Console.WriteLine("Press any key to continue...");
        Console.WriteLine();
        Console.ReadKey();
        mySerialPort.Close();
    }

    private static void DataReceivedHandler(
                        object sender,
                        SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string indata = sp.ReadExisting();
        Console.WriteLine("Data Received:");
        Console.Write(indata);
    }
}
Para empezar con código de lo más básico y limpio uso el de arriba y no nos volvemos locos.

Abajo con este código hay que usar este:
Código:
        private static void DataReceivedHandler( object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string indata = sp.Read();
            Console.WriteLine("Dato recibido:");
            Console.Write(indata);
        }
Sustituyendo ReadExisting(); por Read();


Me interesa contar los datos que vienen desde el puerto serie. No se manejar el Read(). A parte de contar los bytes recibidos en Hexadecimal, que se almacene en memoria en un array de byte[].

Cuando tenga los bytes recibidos en memoria y bien contados que lo muestre en la consola. Esos datos los quiero pasar al disco duro y se hace con esto.

Ecribir archivo en disco.

Código:
File.WriteAllBytes("fotón.jpg", datosArray); // Crear archivo en el disco duro.
Luego si acto seguido, pues ejecutarlo con.

Código:
Process.Start("fotón.jpg"); // Ejecutar visualizador de imágenes.
Eso es todo lo que quierlo lograr y llevo timepo sin llevarme una rosca.

¿Cómo se hace?

Saludos a todos y a todas, que lo pasen bien a los largo del 2017. ;)
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar