PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual Basic 2010 & RN Controll



CN84
30.06.2011, 15:28
Hallo,
ich möchte über Visual Basic meine RN Controll steuern. Also ich kann über Visual Basic an RN Controll daten senden durch den Befehl SerialPort1.Write(). Das klappt super und der Controll reagiert auch darauf z.b LED AN/AUS. Und der RN Controll könnte ich auch daten an Visual Basic senden mit print befehlt (Bascom AVR). z.b auf VB Textbox erschein den Text. Und jetzt komm meine eigentliche probleme. Ich möchte das wenn ich durch print befehl den Visual Basic Programm steuern. Also z.b wenn ich print "Fertig" senden dann sollte das VB Programm z.b den Button den farbe rot färben. Und das geht irgendwie nicht :( weil anscheinend sendet meine controller an Programme ja nur byte und nicht string und dadurch könnte ich nicht bei dem programm abfragen z.b if else. Hab ihr eine Idee wie es geht?

rideyourstyle
30.06.2011, 18:03
Man kann zum Beispiel readline machen. Somit wird eine String gelesen, bis das Zeichen für das Ende des String empfangen wird.

Irgenwie will die Formatierung für den code da nicht Klappen. Schau mal bei

http://msdn.microsoft.com/en-us/library/7ya7y41k.aspx

das Codebeispiel unten an. Das sollte dir helfen können!

Sonst könntest du auch nur ein einzelnes Zeichen als Befehle verwenden. zB:

0x01 für "mach das"
0x02 für "mach was anderes"

CN84
30.06.2011, 18:48
also erst mal danke für deine antwort :o
naja ich habe schon als Text bekomm ins meine VB Textbox so sieht meine Code für empfangen aus


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If SerialPort1.BytesToRead > 0 Then
Do
TextBox4.AppendText(Chr(SerialPort1.ReadByte))
TextBox4.ScrollToCaret()
If SerialPort1.BytesToRead = 0 Then
Exit Do
End If
Loop
End If
End Sub


dann sende ich vom rn controll mit den print befehl z.b print "Fertig"
und dann will ich wenn er den string z.b "Fertig" anzeigt auf meine TextBox dann sollte der z.b Button rot färben



If TextBox4.Text = "Fertig" Then
Button1.BackColor = Color.Red
End If


aber so geht es leider nicht :(



Sonst könntest du auch nur ein einzelnes Zeichen als Befehle verwenden. zB:

0x01 für "mach das"
0x02 für "mach was anderes"


wie muss ich da heran gehen? sorry bin total newbie :(

rideyourstyle
01.07.2011, 11:34
Das mit den "Kurzbefehlen" habe ich so gedacht:

Beispiel:
Für den Befehl, der bei dir jetzt "Fertig" heist sendest du die Zahl 1
Für einen anderen Befehle, zB "Start" sendest du die Zahl 2


Ich kenne VB nicht so genau, aber ich denke der Stingvergleich kann so nicht funktioniern.





Dim TestStr1 As String = "ABCD"
Dim TestStr2 As String = "abcd"
Dim TestComp As Integer

' The two strings sort equally. Returns 0.
TestComp = StrComp(TestStr1, TestStr2, CompareMethod.Text)




Das hab ich von da: http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.strings.strcomp.aspx

Ich denke so müsste es funktionieren

CN84
03.07.2011, 21:54
danke rideryourstlye ^^,
es klappt jetzt bei mir