Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 3 Enero 2017, 12:44 pm



Título: Contador de Byte[]
Publicado por: Meta en 3 Enero 2017, 12:44 pm
Hola:

Quiero saber que al entrar datos por el puerto serie me cuente los byte recibidos y los alacene en un array tipo byte[]

¿Alguna idea?

El programa sin acabar que tengo hecho por ahora es este.

Código
  1. using System;
  2. using System.IO;
  3. using System.IO.Ports;
  4. using System.Text;
  5.  
  6. namespace Recibir_archivo_desde_Arduino_consola
  7. {
  8.    class Program
  9.    {
  10.        public static string Recibidos = "";
  11.        //public static byte[] datosArray = Encoding.ASCII.GetBytes(Recibidos);
  12.        public static byte[] datosArray = Encoding.ASCII.GetBytes(Recibidos);
  13.  
  14.        static void Main(string[] args)
  15.        {
  16.            string COM = "";
  17.  
  18.            // Tamaño ventana consola.
  19.            Console.WindowWidth = 55; // X. Ancho.
  20.            Console.WindowHeight = 15; // Y. Alto.
  21.            Console.Title = "Recoger foto desde Arduino y crearlo en el disco duro"; // Título de la ventana.
  22.  
  23.            // Crear un nuevo objeto SerialPort con la configuración predeterminada.
  24.            SerialPort Puerto_serie = new SerialPort();
  25.  
  26.            // Configuración.
  27.            Console.Write(@"
  28. Introduzca un número para seleccionar puerto COM.
  29. Por ejemplo el 4, sería COM4.
  30.  
  31. Puerto: ");
  32.            COM = Console.ReadLine(); // Escribir el número del puerto.
  33.            Console.Clear();
  34.  
  35.            Puerto_serie.PortName = "COM" + COM; // Número del puerto serie.
  36.  
  37.  
  38.            Puerto_serie.BaudRate = 115200; // Baudios.
  39.            Puerto_serie.Parity = Parity.None; // Paridad.
  40.            Puerto_serie.DataBits = 8; // Bits de datos.
  41.            Puerto_serie.StopBits = StopBits.Two; // Bits de parada.
  42.            Puerto_serie.Handshake = Handshake.None; // Control de flujo.
  43.  
  44.            // Establecer la lectura / escritura de los tiempos de espera.
  45.            Puerto_serie.ReadTimeout = 500;
  46.            Puerto_serie.WriteTimeout = 500;
  47.  
  48.            try
  49.            {
  50.                Puerto_serie.Open(); // Abrir el puerto serie.
  51.            }
  52.  
  53.            catch (IOException)
  54.            {
  55.                Console.ForegroundColor = ConsoleColor.Red; // Texto en rojo.
  56.                Console.CursorVisible = false;
  57.                Console.SetCursorPosition(16, 6);
  58.                Console.WriteLine(@"El puerto " + Puerto_serie.PortName + @" no existe
  59.                o no lo encuentra.");
  60.            }
  61.  
  62.            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
  63.  
  64.            Console.Read();
  65.            Puerto_serie.Close(); // Cerrar puerto.
  66.        }
  67.  
  68.        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
  69.  
  70.        {
  71.            SerialPort sp = (SerialPort)sender;
  72.            int ByteLeidos = sp.Read(datosArray, 0, 28256);
  73.  
  74.            Console.Write(ByteLeidos);
  75.        }
  76.    }
  77. }

El código no está bien.