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. ;)