PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual Basic Erfahrungen mit der Port DLL von H.J.Berndt ges



JensB
07.10.2004, 23:47
Hi zusammen

ich versuche mich seit geraumer Zeit mit VB, speziell mit der RS232 programmierung, da ich meinen Roboter damit steuern wollte, das klappt über die Unterroutine sendbyte auch ganz gut. Jetzt habe ich folgende Problemstellung:

Jetzt möchte ich Daten von meiner C-Control lesen und bei einem bestimmten bytewert grafisch (z.B. durch das erscheinen eines roten kleinen Kreises) anzeigen lassen. wie mache ich das?

Kann mir jemand helfen?

Gruß Jens


PS: Vielleicht habt Ihr ja auch ´n paar nette Linktips.

Javik
08.10.2004, 19:11
Hallö !
Ich hab mir mal ein Terminal für meine C-Control Programmiert. Ich habs so gemacht, dass ich der C-Control ein bestimmte Zahl(in dem Fall 21) geschrieben habe und diese soblad sie die erhalten hat den gewünschten output macht. derweil warted der Pc.





Private Sub Kommunikation
If com.PortOpen = True Then
com.Output = Chr(21) 'senden der Zahl 21
Call break 'warten auf C-control
empf = Asc(com.Input) 'sobald was da ist den wert in Ascii Konvertieren und in der Var empf speichern


'HIER kommt die auswertung der Variablen rein ! Also zb wenn se 1 ist dann soll er ein kästchen rot färben oder so... :

If empf=1 then
lblugr(0).BackColor=vbred
else
lblugr(0).BackColor=vbblack
Endif


Else
MsgBox "Port ist nicht geöffnet"
End If
End Sub

Public Sub break() ' warted darauf das die C-Control was zurückschreibt
Do
DoEvents
Loop Until com.InBufferCount > 0
End Sub


Ich hoffe damit ist deine Frage beantworted ?!

Gruß Javik

JensB
27.10.2004, 15:09
Hallo Javik, leider nicht, das liegt aber nicht an Dir sondern an der DLL, da kann man nämlich RX gar nicht mit auslesen, habe ich jetzt gelesen, also nochmal der Aufruf zum Posten.

Gruß Jens

Pascal
27.10.2004, 15:36
ich versteh nicht ganz, wieso du ne extra port dll unter VB verwenden willst, wenn du nur die serielle Schnittstelle verwenden willst, es gibt da nämlich ein (ich geh zumindest davon aus) Standartsteuerelement namens "Microsoft Comm Control", mit dem man sehr einfach Daten über serielle Schnittstelle senden und empfangen kann

ein einfaches Programm zum Datensenden benötigt sogar weniger als normale 10 Zeilen Code, beim Empfangen siehts wahrscheinlich ähnlich aus, nur hab ich das nicht benötigt, also auch noch nicht richtig ausprobiert

JensB
28.10.2004, 00:09
Hi Pascal,

danke für Deine Antwort. Es mag vielleicht verwunderlich sein, aber ich habe nicht viel Lektüre für VB, also habe ich mir das Buch von Burkhard Kainka gekauft(VB in der Praxis aus der Reihe Elektronik am PC), weil ich eigentlich auf dem Gebiet VB Newbie bin. Das Buch ist auch nicht schlecht, man bekommt eine Art Crashkurs so nach dem Try Error Try again Prinzip. Jedenfalls wird in dem Buch eine eigene, von dem besagten Herrn Berndt geschriebene DLL und natürlich ein dazu passendes Modul benutz. So sendet der Befehl "Sendbyte R" ein Byte mit dem Wert von R (0-255). Also bis hierhin alles no prob. Command Buttons sind ebenfalls kein prob. Das Einzige was eben nicht geht ist das Auslesen von RXD. RXD (hab ich jetzt gelesen) kann nur zum Empfang eines seriellen Signals, nicht aber zu dessen Verwertung genutzt werden,irgendwie warscheinlich als Clock gedacht....
Die eigentliche Thematik des Buches konzentriert sich eher auf die anderen Leitungen der RS232 Schnittstelle.

Da ich einen Großteil des Projektes mit dieser DLL bereits fertiggestellt habe wollte ich eigentlich nicht mehr mit was anderem anfangen, allerdings probier ich mal Infos über Deine Methode zu erhalten, vielleicht kann ich damit nochn bissl mehr schaffe.

Gruß Jens

Andy1988
28.10.2004, 00:44
Ich hab mir n kleines Prog gebaut, mit dem ich nen Akkustatus über nen A/D Wandler an nem Mega 16 grafisch darstellen kann. Das ganze ist allerdings über das Microsoft Comm Control programmiert. Find ich nunmal einfacher, als noch ne DLL ;)

Ich habs aber kaum kommentiert. Ich habs nich für nötig gehalten *g*
Hier is der Link:
http://board.gsm-modding.de/thread.php?goto=lastpost&threadid=1571

Und hier mal n Bild:
http://andy.gsm-modding-board.de/batterie.jpg

Das ganze wird hoffentlich bald in C++ unter Linux laufen! *hrhr*

Pascal
28.10.2004, 07:17
du musst nur unter Projekt/Komponenten das Steuerelement "MS Comm Control" anwählen und einbinden, dann unter Eigenschaften des Steuerelements ein paar Einstellungen vornehmen(Baudrate usw. wenn man was daran ändern will), dann noch ein paar Befehle (wie .portopen) und dann müsste man senden und empfangen können

(allerdings kann ich jetzt nicht nachschauen, weil ich momentan in der Schule bin(Freistunden sind praktisch...))