Hallo liebe Leute!
Nun wirds schwer....ich bin schon ziemlich weit mit meinem Programm für
die Messung der Lichtschranken. Nun habe ich eine Frage zu Visual Basic.
So ist nun der Stand der Dinge. Sobald man in meinem VB-Programm auf
"Connect" klickt und anschließend am Mikrocontroller-Board auf
"Connect"-Taste drückt, dann sendet der Controller ein "J" an das
VB-Programm, was bedeutet, dass das Board an den PC angeschlossen ist.
Sobald man nun auf die Schaltfläche "Hole Daten" im VB-Programm klickt,
soll er nun die einzelnen Daten (Registerwerte des Timers bzw. Variablen
der Timer-Überläufe) schicken. Ich habe es nun so gemacht: Ich sende
jetzt erstmal character (sprich Zeichen). Das könnte jetzt z.B. so
aussehen:
A x B x C x D
"A" soll in die textbox1 geschrieben werden. Sobald IMMER ein "x"
gesendet wird, soll auf die Textbox2, Textbox3, usw. die Werte im
VB-Programm ausgegeben werden. Nur, wie schreibe ich " sobald IRGENDWAS
UND ein X UND IRGENDWAS kommt, springe zur nächsten Textbox"
Danke!!
ach, was ich noch vergessen habe, was wahrscheinlich aber nicht allzu
wichtig ist...Um die Daten vom Mikrocontroller-Board zu holen, muss man
an diesem Board auf die "Send-Taste" drücken. Ich will nämlich nichts
vom PC aus an den controller senden, das würde zu weit gehen.
hm, habe zwar gesucht aber nicht wirklich was gefunden.
Aber es ist ja im prinzip kein String, den mein Mikrocontroller sendet
eben nicht auf einmal die Daten raus, sondern "schickt, frägt ob senden
bereit, schickt das "x", frägt ob senden bereit, schickt das
nächste...."
danke
habe es jetzt erstmal mit Word versucht:
Option Explicit
Dim wdApp As Object
Dim doc As Object
Private Sub Command1_Click() 'Word starten
On Error Resume Next
Set wdApp = CreateObject("Word.Application.8") 'Word öffnen
wdApp.Visible = True 'Word sichtbar machen?
Set doc = wdApp.Documents.Add 'Neues Word-Dokument erstellen
doc.Range.InsertAfter "Hallo" & vbCrLf '"Hallo" einfügen und Cursor an
Anfang in neue Zeile
End Sub
Private Sub Command2_Click() 'Word beenden
doc.SaveAs "C:\test.doc" 'Speichere Datei (Var für Textbox: "Path")
wdApp.Quit 'Word schließen
End Sub
> Könntest du jedoch den von dir geschickten Code> kommentieren, da ich ihn auch verstehen möchte ;-)
Der Code ist schon eine recht gute Dokumentation. Ich wüsste auch nicht
was genau ich daran noch kommentieren könnte. Und das Denken wollte ich
Dir eigentlich nicht abnehmen ;)
Besser ist, Du würdest den Code einfach mal durch den Simulator
schicken.
Die Funktion automat_input braucht als Parameter ('s') die Zeichen die
der µC sendet. Eins nach dem Anderen.
Eins noch: Die Textboxen müssen alle 'textbox' heissen, und brauchen ein
Index.
Gruß, Feadi
also...verstanden hab ichs jetzt, aber ich weiß nicht mit welchem Objekt
ich die Funktion ausführen soll. Timer? Schaltfläche? Wenn ichs jedoch
mit einer schaltfläche ausführe, dann muss ja genau in diesem moment vom
Controller der string gesendet werden oder? Sprich wenn ichs so
ausführe:
Call Automat_input(mscomm1.input)
habe textbox1-4 mit textbox(0) bist textbox(3) benannt.
funktioniert wiegeagt nicht.
Könntest mir noch einen schritt helfen??
Danke!
ich drücke wigesagt am Mikrocontroller eine Taste, und nachdem ich die
gedrückt habe, schickt der Controller postwendend den String
"126x47x28x277"
und den soll er dann auf die 4 Textboxen (textbox(0)-textbox(3))
aufteilen
danke!
So, diesen Code habe ich gerade getestet. Die Textbox 'Text2' habe ich
zum testen von automat_input verwendet.
Das MSComm Steuerelement ruft die MSComm1_OnComm Funktion auf, wenn
Daten zum lesen bereit sind. Dort musst Du automat_input füttern.
Dein µC muss an den String noch ein '\n' drannhängen: "12x34x56x78\n"
wäre dann ein gültiger String. Das '\n' Zeichen wird benötigt damit die
automat_input Funktion weiß wo der String aufhört.
Gruß, Feadi