Ik heb volgend testprogramma gemaakt. Als ik op een knop druk moet er een karakter (of later een nummer uit een tekstfile) worden doorgestuurd naar de seriële poort, gevolgd door ESC + s
De data die ik uitstuur wil ik om te testen laten zien in een tekstvak txtGetal.
Ik heb slechts 1 com poort op deze PC. Ik heb pin 2 +3 (RxD en TxD) verbonden voor de test. In hyperterminal kan ik controleren dat data die ik verstuur ook werkelijk ontvangen wordt.
Het probleem nu: Ik ontvang pas iets in het tekstvak als ik 2x op de knop druk. Na de eerst druk wordt het tekstvak leeggemaakt. Na de 2de druk verschijnt de data er.
Werk ik echter stap voor stap met de debugger, dan verschijnt de data wel direct na de 1ste druk op de knop.
In een ander topic hier kwam dit probleem ook voor. De persoon had dit opgelost door de connectie met de com-poort in form_load te plaatsen (zoals ik nu doe, zonder resultaat echter).
Gebruik ik RThreshold = 1 en gebruik ik het onComm event, dan wordt het comEvReceive ook pas getriggerd na 2x drukken op de knop (1x bij debuggen)
Weet iemand waar hier de fout kan zitten?
edit: als ik het volgende doe: MSComm1.Output = "test nummer 1 en nummer2" dan wordt er bij de 1ste klik op de knop wel "test num" verstuurd en ontvangen (onvollodige string - maar de rest volgt bij de 2de klik --> "mer 1 en nummer2test num")
edit 2: en bij het debuggen werkt dit natuurlijk wel perfect (wel na 2x klikken)
De data die ik uitstuur wil ik om te testen laten zien in een tekstvak txtGetal.
code:
1
2
3
4
5
6
7
8
9
| Private Sub Form_Load()
'indien de poort nog niet open is -> instellen & openen
If MSComm1.PortOpen = False Then
MSComm1.Handshaking = comNone
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
End If
End Sub |
code:
1
2
3
4
5
| Private Sub cmdZendData_Click()
'getal 8 (=chr 56) uitsturen, gevolgd door ESC en "s" (chr 27 en 115)
MSComm1.Output = Chr$(56) & Chr$(27) & Chr$(115)
txtGetal.Text = MSComm1.Input
End sub |
Ik heb slechts 1 com poort op deze PC. Ik heb pin 2 +3 (RxD en TxD) verbonden voor de test. In hyperterminal kan ik controleren dat data die ik verstuur ook werkelijk ontvangen wordt.
Het probleem nu: Ik ontvang pas iets in het tekstvak als ik 2x op de knop druk. Na de eerst druk wordt het tekstvak leeggemaakt. Na de 2de druk verschijnt de data er.
Werk ik echter stap voor stap met de debugger, dan verschijnt de data wel direct na de 1ste druk op de knop.
In een ander topic hier kwam dit probleem ook voor. De persoon had dit opgelost door de connectie met de com-poort in form_load te plaatsen (zoals ik nu doe, zonder resultaat echter).
Gebruik ik RThreshold = 1 en gebruik ik het onComm event, dan wordt het comEvReceive ook pas getriggerd na 2x drukken op de knop (1x bij debuggen)
Weet iemand waar hier de fout kan zitten?
edit: als ik het volgende doe: MSComm1.Output = "test nummer 1 en nummer2" dan wordt er bij de 1ste klik op de knop wel "test num" verstuurd en ontvangen (onvollodige string - maar de rest volgt bij de 2de klik --> "mer 1 en nummer2test num")
edit 2: en bij het debuggen werkt dit natuurlijk wel perfect (wel na 2x klikken)
[ Voor 22% gewijzigd door mmy841 op 12-04-2005 10:17 ]