[VB.NET] - Buffer seriale non sincrono

martedì 15 settembre 2009 - 12.24

mcounts Profilo | Newbie

Ciao a tutti

Ho un problema, sto usando vb.net 2008 express
sto andando a leggere dei dati in seriale da un plc, premetto che il lato plc è corretto, ho fatto un test con hyper terminal e risponde bene.
il plc mi invia 30 bytes di dati ciclicamente, cioè invia, si mette in ascolto, dopo che io ho risposto invia di nuovo.
Le caratteristiche della mia seriale sono:

Baudrate = 9600
DataBits = 8
Readbuffersize = 30 (ho provato anche ad aumentarlo ma non cambia nulla)
Readtimeout = 5000
Writebuffersize = 30
writetimeout = 5000

faccio la lettura del buffer intercettando l'evento
SerialPort1_DataReceived
e lo leggo in questo modo:

SerialPort1.Read(letto, 0, 30)

o provato anche ad eseguire la lettura in altra maniera :

For i = 0 To 29 letto(i) = SerialPort1.ReadByte Next

il problema è che nel mio buffer di ingresso non trovo mai i dati nella sequenza corretta nell'array di destinazione, cioè, trovo la sequenza di dati spostata di alcune posizioni.

Esempio :

array corretto = [ 1,2,3,4,5,6,7,8]
array che trovo = [0,0,1,2,3,4,5,6] oppure [0,0,0,0,1,2,3,4].

Sembra un problema di sincronizzazione....

Help!!!!
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5