[ Zoran325 @ 30.04.2008. 13:53 ] @
Code:

Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.Settings = "1200,N,8,1"
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
MSComm1.RThreshold = 1

End Sub

Private Sub MSComm1_OnComm()
Dim Temperature As Variant

If MSComm1.CommEvent = comEvReceive Then
Temperature = MSComm1.Input
Text1.Text = Text1.Text + CStr(Temperature)
Text2.Text = Text2.Text + Format$(Now, "hh:mm:ss dd/mm/yy")
End If

End Sub


Kada stavim RTreshold 2 tada mi ispisuje neke karaktere u text1 (? itd) ali tada
mi se CommEvent desava svakih 10 s sto mi ne odgovara posto mi se podatak salje svakih 5 s
Kada stavim da mi je RTreshold 1 kao sto bi trebao jer saljem jednobajtni podatak
tada mi se ne pojavljuje nista u text1


[Ovu poruku je menjao Aleksandar Ružičić dana 30.04.2008. u 15:30 GMT+1]
[ Aleksandar Vasic @ 30.04.2008. 17:36 ] @
pogledaj ovaj primer shto je rajko dao mozda ce ti pomoci


http://www.elitesecurity.org/p1925021
[ stefanpn @ 05.05.2008. 23:49 ] @
Dobijas neke sljg!#@@ karaktere zato sto port otvaras binarno, pa ti verovatno i salje ASCII vrednosti a ne binarne vrednosti.
Promeni:

Text1.Text = Text1.Text + CStr(Temperature)

U:

Text1.Text = Text1.Text + Chr$(Temperature)

[Ovu poruku je menjao stefanpn dana 06.05.2008. u 13:02 GMT+1]
[ Vlade Maksimovic @ 15.05.2008. 20:11 ] @
Nisam baš najbolje razumeo. Jer ti i šalješ i primaš nešto sa serijskog porta?

RTreshold mislim da utiče samo kada šalješ podatak na serijski port, da bi ti uvek poslao sve a ne da šalje po 1 ili 2 bajta možeš njegovu vrednost postaviti na:
MSComm1.RThreshold = len(text3.text)
stim što ti je text3 tekst boks iz koga šalješ podatke

Code:

Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.Settings = "1200,N,8,1"
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
MSComm1.RThreshold = 1

End Sub

Private Sub MSComm1_OnComm()
Dim Temperature As Variant

If MSComm1.CommEvent = comEvReceive Then
Temperature = MSComm1.Input
Text1.Text = Text1.Text + CStr(Temperature)
Text2.Text = Text2.Text + Format$(Now, "hh:mm:ss dd/mm/yy")
End If

End Sub


Ovo bi trebalo da ti je sve OK, stim što ne znam zašta će ti:
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary

Ja bih ovo tvoje napisao na sledeći način:

Code:

Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.Settings = "1200,N,8,1"
MSComm1.PortOpen = True

End Sub

Private Sub MSComm1_OnComm()
Dim Temperature As Variant

Select Case MSCOmm1.CommEvent
Case comEvReceive
          Temperature = MSComm1.Input
          Text1.Text = Text1.Text + CStr(Temperature)
          Text2.Text = Text2.Text + Format$(Now, "hh:mm:ss dd/mm/yy")
end Select
End If

End Sub
[ galahad @ 16.05.2008. 09:33 ] @
Ono shto Stefan reche je tachno, otvarash port u binarnom modu, i dobijash ASCII vrednosti... RThreshold vrednost govori portu da okine Comm event na svaki broj primljenih karaktera... Ako je RThreshold = 2, Comm event tje biti pozivan svaki put kad input buffer na portu ima 2 karaktera... Ako tjesh da primash svaki bajt, stavi ovu vrednost na 1... Mozhesh i da pokushash sa InputLen = 1... Tako tjesh dobijati samo 1 bajt, koliko i treba... Stavi i SThreshold = 1, tako tje da shalje za svaki bajt koji se nadje u output buffer-u...