![]() |
Problema invio codici ASCII via seriale VB 2010 Express
Salve a tutti,
Sto cercando di usare la porta seriale con VB 2010 express, di cui sono un neofita, ed ho questo problema: se invio dei codici ASCII da 0 a 127 tutto ok, se provo quelli da 128 a 255 l'uscita (controllata con l'oscilloscopio) è sempre la stessa, come se si potessero usare solo i primi 7 bit, anche se nelle impostazioni della porta la lunghezza del dato è settata a 8 bit. Vi posto la parte di codice che non va Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click SendSerialData(Chr(192)) End Sub Sub SendSerialData(ByVal data As String) ' Send strings to a serial port. Using com1 As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM1") com1.Write(data) End Using End Sub Grazie in anticipo |
Mi tengo ben lontano dal VB ;) ma sei sicuro che passare un chr ad una funzione che si aspetta una String non faccia danni?
|
Vb 8 e successivi 'vedono' male comunque l'utilizzo di chr.
Indipendentemente da questo la sintassi che usi per l'invio è errata. Il comando write ha una sintassi specifica: Cito dalle MSDN di Microsoft: Citazione:
Quindi la sintassi prevede comunque: SerialPort.write(buffer,count,offset) Dove: SerialPort è ovviamente la tua porta seriale (che tu, almeno da quello che vedo, invochi dagli eventi. Puoi anche utilizzare l'oggetto che trovi nella casella degli strumenti) buffer = sono i byte che devi inviare e NECESSARIAMENTE devi indicare offset (integer) = dove parte l'array count (integer) = e dove si conclude Quindi (premettendo che tu abbia già impostato TUTTI i parametri della seriale) dovrebbe essere questo (non ho con me il mio pc e vado a memoria) prova questo: Codice:
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click Ciao Antonio |
Grazie ragazzi,
in realtà mi sto avventurando in una convesione di un programma da QB45 a VB, nel codice sono presenti delle comunicazioni verso un micro mediante un protocollo che prevede dei caratteri speciali di inizio e fine stringa (AC e CA rispettivamente). In QB la cosa è semplice, si fa Print #1, Chr$(&HAC). Pensavo che anche VB "digerisse" bene questo comando, ma mi sbagliavo. Farò altre prove sulla base dei vostri suggerimenti! Ciao Franco |
Citazione:
In bocca al lupo! Ciao Antonio |
Tutti gli orari sono GMT. Adesso sono le: 04.11.05. |
Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.