Problemi con la seriale

mercoledì 09 aprile 2008 - 09.33

cable Profilo | Junior Member

Ciao a tutti,
ho un problema con la trasmissione seriale utilizzando VB2005.
Io ho un ciclo nel quale invio una stringa(di 7byte) in seriale e ho il loop finchè non raggiungo un determinato valore.
Va tutto bene finchè il valore (l'unico che cambia nella stringa da inviare, il quarto byte) non raggiunge il valore 128 decimale, da qui non trasmette più quello che voglio io e quindi l'apparecchio che deve rispondere non mi risponde più!

Inizialmente pensavo che fosse il tipo di dati che usavo(byte) ma ho controllato e dovrebbe prendere valori da 0 a 255, quindi non dovrebbero esserci problemi, che però ci sono!!!!!

Aspetto consigli.
Grazie in anticipo per l'aiuto

aiedail92 Profilo | Expert

Ciao

Probabilmente l'errore deriva dal fatto che, dovendo passare un array di byte come stringa, l'hai codificata con codifica ASCII, che riconosce solo i byte numerati da 0 a 127. Per risolvere il problema prova a codificare la stringa con codifica Default (Ansi):

Encoding.Default.GetString(bytes)

Luca

cable Profilo | Junior Member

Eccezionale.
Grazie1000 Luca, sembra proprio funzioni bene.

Ho messo questo codice

Me.SerialPort1.Encoding = System.Text.Encoding.Default

nel Form Load del form dove ho l'elemento SerialPort1 e sembra vada .Ti sembra corretto metterlo nel Form Load o pensi che possa dare problemi.

Grazie 1000 ancora .

Ciao ciao
Mauro

aiedail92 Profilo | Expert

Credo che impostare la proprietà nel costruttore (ciò che fa il designer) o all'evento Load, ai fini pratici non cambi molto... Comunque se preferisci lasciare tutto nel costruttore, ti basta digitare "public sub new" nel file di codice della tua Form e premere invio; Visual Studio crea automaticamente la funzione chiamando InitiailzeComponent(); è dopo quella istruzione che puoi aggiungere la tua per impostare la proprietà Encoding della SerialPort.

Luca

cable Profilo | Junior Member

Perfetto, funziona a dovere.

Grazie ancora Luca (anche per la velocità delle risposte)

Ciao
Mauro
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