» »

Visual Basic 6 branje RS232

Visual Basic 6 branje RS232

cila22 ::

Upam, da je tu kakšen expert za Visual Basic, ker imam sledeč problem in nikakor ne najdem rešitve:
Ko preberem RS232 port na katerega sem poslal vrednosti: 000 220 111 000, mi prebere in izpiše v textbox vrednost 02201110, kje so manjkajoče ničle? Pridejo pa zagotovo, ker sem pogledal z Docklightom in mi pokaže pravilno vrednost, ampak nikakor ne morem prepričati visual basica, da mi jih pokaže. Rabim pa to funkcionalnost zaradi tega, ker se mi drugače spremeni št. mest prejete vrednosti.
Kdor visoko leta,ne pade daleč od drevesa

majlo ::

To si iz vb - ja pošiljal na drugi računalnik ali v kako napravo.

Pred časom sem nekaj čaral v vb.net z tehtnicami, kjer sem samo bral, kaj mi je tehtnica pošiljala (ta je nonstop pošiljala podatke), pa vem da velikokrat nisem dobil podatka v enem kosu, oz sem moral imeti buffer, kjer sem sestavljal podatek (sem pa v stringu dobival start char in end char, tako da ni bilo prevelikega problema.)

Poizkusi večkrat zaporedoma pošiljati oz sprejeti isti podatek pa javi.

LP

il ::

Preveri tip in format spremenljivk, ki jih uporabljaš pri branju in "konvertiranju" v textbox.

cila22 ::

majlo:To sem v VBju sprejemal iz drugega računalnika, kasneje iz naprave.
Nič ni izginilo, problem je le v tem, ker sam od sebe poenostavi 000 na 0, pa bi rad to nekako zaobšel.
il: spremenljivke so String. konvertiram pa v textbox z Asc(MSComm1.Input)
Kdor visoko leta,ne pade daleč od drevesa

darkolord ::

Pokaži malo več kode.

cila22 ::

Private Sub Form_Load()

With MSComm1

'make sure the serial port is not open (by this program)
If .PortOpen Then .PortOpen = False
'set the active serial port
.CommPort = 1

'set the badurate,parity,databits,stopbits for the connection
.Settings = "38400,N,8,1"
'set the DRT and RTS flags
.DTREnable = True
.RTSEnable = True
'enable the oncomm event for every reveived character
.RThreshold = 1
'disable the oncomm event for send characters
.SThreshold = 0
'open the serial port
.PortOpen = True
End With 'MSComm1


With Text1
.Locked = True
.Text = ""
End With 'Text1

End Sub


Private Sub MSComm1_OnComm()
Dim strInput As String

With MSComm1
'test for incoming event
Select Case .CommEvent
Case comEvReceive
'display incoming event data to displaying textbox
strInput = .Input
Text1.SelText = Asc(strInput)
End Select
End With 'MSComm1

End Sub
Kdor visoko leta,ne pade daleč od drevesa

darkolord ::

Zakaj pa uporabljaš funkcijo Asc?

Malajlo ::

Res, zakaj. Če že asc, potem pretvori v chr (ali kako se to naredi v vb6).

(sicer sem si podobnim razbijal glavo pred leti, ampak v čisto drugem IDE)

il ::

Poskusi z:
strInput = CStr(Format(MSComm1.Input, "000"))

cila22 ::

Fantje, sem že rešil. Hvala za trud.

Lp
Kdor visoko leta,ne pade daleč od drevesa


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

vb.net: dynamic textbox

Oddelek: Programiranje
51180 (1070) saule
»

visual basic 2008 express edition

Oddelek: Programiranje
221812 (1239) sel
»

COM in Visual Basic

Oddelek: Programiranje
222170 (1631) pexo
»

[VB] Komunikacija s serijskimi napravami

Oddelek: Programiranje
412303 (1577) mNeRo
»

VB6 - ne zaključi proces programa - pomoč !!!

Oddelek: Programiranje
131389 (1230) Mavrik

Več podobnih tem