Problemi con DataReceived in C#

martedì 27 marzo 2007 - 09.25

Francesca1983 Profilo | Newbie



Ciao a tutti,

ho riscontrato quensto problema nella comunicazione con la seriale in VisualStudio c#:

- ho scritto 2 programmi semplicissimi, 1 (su pc1) per l'invio dei dati su porta seriale (invio 1000 byte in un array, dove alla pos [0] ho il carattere 0xaa, alla pos [1000] il carattere 0x0d e le restanti posizioni hanno il carattere 0x41, l'invio avviene all'evento clik di un pulsante "send";
il 2° programma (su pc 2)attiva l'evento DataReceived con l'istruzione:

sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);

e attende i dati e li legge (ReadByte) mettendoli in un array, dopo di chè effettuo un controllo dati per vedere se ho ricevuto: l'inizio "0xaa", la fine "0x0d" e che i caratteri centrali siano "0x41";

HO RISCONTRATO QUESTI PROBLEMI (azionando il debugging con dei breack):

a. prima che mi entri nel metodo sp_DataReceived e vada quindi in esecuzione l'evento devo inviare (clik su "send" pc1) i dati minimo 4volte;

b.quando finalmente sente l'evento mi riceve l'array ma non il fine array "0x0d" ritornandomi quindi il messaggio di "errore pacchetto";

Ho controllato e in invio dati l'array viene spedito correttamente sin dall'inizio, il problema è quindi in ricezione.

Cercando soluzioni ho trovato questo link che mi da un modo per aggirare il problema, ma, da quel che ho capito usa il timer e non l'evento DataReceived, in questo modo non uso una funzionalità che mi torna comoda (2 thread).

http://www.codeproject.com/useritems...SerialPort.asp

Se qualcuno mi potesse aiutare gli sarei infinitamente grata.

Grazie mille in anticipo!!

Frency
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5