Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Visual Basic serijska komunikacija/ Pomoc

[es] :: Visual Basic 6 :: Visual Basic serijska komunikacija/ Pomoc

[ Pregleda: 406 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Zoran325

Član broj: 179220
Poruke: 2
*.rcub.bg.ac.yu.



Profil

icon Visual Basic serijska komunikacija/ Pomoc30.04.2008. u 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]
30.04.2008. u 13:53 

Aleksandar Vasic
Čačak

Član broj: 91692
Poruke: 502
*.eunet.yu.

Jabber: aleksandar.vasic@elitesecurity.org
Sajt: www.vasictech.net


Profil

icon Re: Visual Basic serijska komunikacija/ Pomoc30.04.2008. u 17:36
pogledaj ovaj primer shto je rajko dao mozda ce ti pomoci


http://www.elitesecurity.org/p1925021
30.04.2008. u 17:36 

stefanpn
Stefan Kostic
Student, VPS
Paracin (Blace - FAX)

Član broj: 172809
Poruke: 293
79.101.176.*

Sajt: www.stefanpn.co.nr


Profil

icon Re: Visual Basic serijska komunikacija/ Pomoc05.05.2008. u 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]
Da sam znao da je internet ovako dobar ja bih to postavio jos pre 30 godina.
05.05.2008. u 23:49 

Vlade Maksimovic
Gornji Milanovac

Član broj: 30342
Poruke: 50
*.beogrid.net.

Sajt: www.linkedin.com/in/maxog..


Profil

icon Re: Visual Basic serijska komunikacija/ Pomoc15.05.2008. u 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

5676985C0635C3EB79BAFDB6A7C7A016A81DC6BFCF6DE0B91D4EB35DE3771B
15.05.2008. u 20:11 

galahad
Slobodan Todorov
Happy Freelancer :)
Novi Sad

Član broj: 20613
Poruke: 53
*.ADSL.panline.net.

Jabber: galahad@elitesecurity.org
ICQ: 52020296
Sajt: www.todorowww.net


Profil

icon Re: Visual Basic serijska komunikacija/ Pomoc16.05.2008. u 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...
Bilo koje telo koje lebdi u prostoru zadrzace to stanje sve dok ne postane svesno svog stanja.
16.05.2008. u 09:33 

[es] :: Visual Basic 6 :: Visual Basic serijska komunikacija/ Pomoc

[ Pregleda: 406 | Odgovora: 4 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.