Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/02/2015, 21:24
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 7 años, 10 meses
Puntos: 52
Respuesta: Crear puerto serie.

Tenes un error en el codigo en la linea:

Código C#:
Ver original
  1. private void Recepcion(object sender, SerialDataReceivedEventHandler e)

En primer lugar, el event handler que declara la clase System.IO.Port.SerialPort para el evento DataRecieved tiene la siguiente firma:

Código C#:
Ver original
  1. public delegate void SerialDataReceivedEventHandler(object sender, SerialDataReceivedEventArgs e);

Con lo cual el segundo argumento "e" es de tipo SerialDataReceivedEventArgs y no SerialDataReceivedEventHandler como lo estas declarando en tu codigo. Tenes que cambiar la firma del metodo Recepcion por lo siguiente:

Código C#:
Ver original
  1. private void Recepcion(object sender, SerialDataReceivedEventArgs e)

En segundo lugar, C# infiere automaticamente los delegados al usar +=, con lo cual utilizar new y el tipo de delegado es absolutamente innecesario y redundante. Te sugiero que cambies esto:

Código C#:
Ver original
  1. serialPort1.DataReceived += new SerialDataReceivedEventHandler(Recepcion);

Por esto:

Código C#:
Ver original
  1. serialPort1.DataReceived += Recepcion;

----------------------------------------

Adicionalmente y como te mencioné en un post anterior, el RichTextBox de WPF no es simplemente un "control para mostrar texto", es un editor de FlowDocuments, si lo que quieres es mostrar texto en varios colores y formatos, sin que el usuario pueda editarlo (read only), con un simple TextBlock te alcanza.

Por ultimo, estas mezclando el codigo de presentation (UI) con el codigo de IO (SerialPort) que no tienen nada que ver. Te sugiero (nuevamente) que investigues acerca de DataBinding y como hacer las cosas de manera correcta en WPF y en general.