Forum: PC-Programmierung VisualBasic6: Zahlen vom Mikrocontroller empfangen


von Karsten (Gast)


Lesenswert?

Hallo Experten,
ich benutze BASCOM und VisualBasic6.
(Beides aus guten Gründen und mit Erfolg und Freude - das müssen wir 
also nicht diskutieren..)

Nun muss ich Zahlenwerte vom Mikrocontroller zum PC übertragen.

Auf dem Mikrocontroller schreibe ich jeweils
1.)
PRINT "T"; temperatur
oder "V"; ventilsteuerung

2.) Auf dem PC im Terminalprogramm erscheint wie gewünscht zum Beispiel
T18
T18
T18
T18
V120
T18
T19
T19
usw.

3.) Im VisualBasic6 möchte ich das nun einlesen und je nach "Header" (T, 
V,..) in verschiedene Textboxen einsortieren
Ich versuche nun erst einmal überhaupt etwas vernünftiges in EINE 
Textbox zu bekommen.
Ich versuche das mit  MSComm1.CommEvent
Vgl. unter anderem:
http://www.activevb.de/tutorials/tut_com/com.html

Ich bin mir sicher, dass sehr viele von Euch das schon erfolgreich 
gemacht haben aber irgendwie finde ich auch im Internet nicht die Lösung

Ich bekomme bis jetzt zum Beispiel  den gesendeten String und davnach 
zwei schwarze Striche in die Textbox  ( in etwa so:  T18!!  )

Wie bekomme ich also einzelne Zahlen mit Header vom Mikrocontroller in 
das VisualBasic?
Es müßte doch auf Mikrocontrollerseite eigentlich   PRINT "T";temperatur 
usw. ausreichen.
Wie empfange ich das so in VisalBasic6 dass ich das je nach Header als 
Zahl habe, die ich im VisualBAsic weiterverarbeiten kann und die ich am 
Ende in eine Textbox (je nach Header) schreibe.
Das Ganze natürlich am liebsten für Ganzzahlen und auch für Kommazahlen.
Da haben doch bestimmt viele von Euch Erfahrungen. Über kleine 
Beispiele/Ansätze würde ich mich sehr freuen.
Karsten

: Verschoben durch User
von weinbauer (Gast)


Lesenswert?

die zwei Striche sind <CR> und <LF>, die bascom bei der Printausgabe 
automatisch anhängt, kann unterdrückt werden, indem man hinter der Print 
"x" ein ; hängt, also print "x";

von Karsten (Gast)


Lesenswert?

Hallo Weinbauer,
ja - so etwas dachte ich mir schon.. Was ich nicht verstehe
- Kann ich das auch so wie ich es jetzt sende senden und das CrLf dann 
im VisualBasic entfernen?
- Wie mache ich im VisualBasic eine ZAHL?  Übertragen wird das doch als 
String..?
- Wie geht das mit Kommazahlen?
- Wird nicht jedesmal nur EIN Zeichen gesendet und empfangen? Wie wird 
aus den einzeln gesendeten Zeichen ein String im VisualBasic, den ich 
dann in eine Zahl umwandeln kann
- Hat jemand ein einfaches VisualBAsic6 Beispiel für so einen Empfang 
oder einen Link?
Karsten

von Marco F. (m8_killer)


Lesenswert?

Hi,

Es gibt in vb6 die befehle right() mid() und left() um zeichenketten zu 
bearbeiten.
Mit denen kannst du die zeichenketten ohne cr und lf in die textbox 
schreiben.

Gruss

von Karsten (Gast)


Lesenswert?

ja - habe ich nur noch nicht geschafft. Ich bin anscheinend zu dumm 
dafür bisher. Dewegen wäre ein kleine Beispiel schön von jemandem, der 
diese Standard-Thematik schon erfolgreich gemacht hat.

von Karsten (Gast)


Lesenswert?

ergänzend:
Bei mir landet in der Textbox zur Zeit leider auch nicht immer nur ein 
"Datensatz" sondern zum Teil mehrere:   T19!! !T19!!  !T19!!   oder so 
ähnlich. Ich habe noch nicht verstanden, an welcher Stelle VisualBasi 
merkt, dass es sich jeweils um einen Datensatz zum Beispiel  T19 
handelt

von Klaus D. (kolisson)


Lesenswert?

Karsten schrieb:
> Dewegen wäre ein kleine Beispiel schön von jemandem


Pseudocode:
le = len(inputstring)
le = le -2
neuerstring = left(inputstring,le)

Gruss k

von Karsten (Gast)


Lesenswert?

Vielen Dank, Klaus.
Ich suche jetzt noch ein Beispiel der VisualBasic Empfangsroutine:
1
Private Sub MSComm1_OnComm()
2
  Select Case MSComm1.CommEvent
3
    Case comOverrun:   MsgBox "Datenverlust!"
4
    Case comRxOver:    MsgBox "Datenverlust!"
5
    Case comEvReceive: 
6
              ...   =  MSComm1.Input
7
              ..........
8
              ..........
9
10
  End Select
11
End Sub

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

Karsten schrieb:
> Dewegen wäre ein kleine Beispiel schön von jemandem, der
> diese Standard-Thematik schon erfolgreich gemacht hat.

Ich mach' das immer zeichenweise:
1
Private Sub uart_OnComm()
2
'ein Zeichen wurde empfangen
3
  uartrx = uartrx & uart.Input
4
  p1 = InStr(1, uartrx, "CV:")
5
  p2 = InStr(1, uartrx, "Dez:")
6
  p3 = InStr(1, uartrx, ">")
7
  If p3 > 0 Then
8
    If p1 > 0 Then
9
      cvn = Val(Mid(uartrx, p1 + 3, 3))
10
      cvw = Val(Mid(uartrx, p2 + 4, 3))
11
      uartok = True
12
      List1.AddItem uartrx
13
      uartrx = ""
14
    End If
15
  End If
16
End Sub

Da dies aus dem Kontext gerissen ist, hänge ich den kompletten Quältext 
mal an. Das Protokoll der Übertragung wird hier erklärt:
http://www.hanneslux.de/planet5b/planet5-lokfahrtregler_v02.html
Der Absatz "PC-Interface zum Einstellen der Parameter" (zielmich weit 
unten) erklärt den Befehlssatz, auf den der AVR reagiert und antwortet.

Viel Erfolg...

...

von Karsten (Gast)


Lesenswert?

Hallo Hannes,
herzlichen Dank - aber:  puhhh.. das muss ich erst einmal 
nachvollziehen. Ich hatte bisher nur von  MSComm1_OnComm()gelesen.
wenn jemand noch ein einfacheres VB6 Programm hat, bei dem zum Beispiel 
einfach nur eine Temperatur wie 19.4 vom AVR zu VisualBasic6 übertragen 
und dort angezeigt wird freue ich mich weiterhin über Beispiele.
Karsten

von nanocontroller (Gast)


Lesenswert?

Also das Prinzip ist,
- zeilenweise einlesen, damit du weisst, wann Zahl endet
- vergleich nach t oder v (erster buchstabe)
- zahlenwert extrahieren (stringfunktionen)
- und zahlenwert-string nach int konvertieren, dafür gibts funktionen

von Udo S. (urschmitt)


Lesenswert?

Karsten schrieb:
> ich benutze BASCOM und VisualBasic6.
> (Beides aus guten Gründen und mit Erfolg und Freude - das müssen wir
> also nicht diskutieren..)

Karsten schrieb:
> Ich bin mir sicher, dass sehr viele von Euch das schon erfolgreich
> gemacht haben aber irgendwie finde ich auch im Internet nicht die Lösung

Karsten schrieb:
> Das Ganze natürlich am liebsten für Ganzzahlen und auch für Kommazahlen.
> Da haben doch bestimmt viele von Euch Erfahrungen. Über kleine
> Beispiele/Ansätze würde ich mich sehr freuen.

Karsten schrieb:
> - Hat jemand ein einfaches VisualBAsic6 Beispiel für so einen Empfang
> oder einen Link?

Karsten schrieb:
> Ich suche jetzt noch ein Beispiel der VisualBasic Empfangsroutine:

Karsten schrieb:
> wenn jemand noch ein einfacheres VB6 Programm hat, bei dem zum Beispiel
> einfach nur eine Temperatur wie 19.4 vom AVR zu VisualBasic6 übertragen
> und dort angezeigt wird freue ich mich weiterhin über Beispiele.

Sorry Karsten, ohne dir nahe treten zu wollen, aber "programmieren" tust 
du eigentlich nicht selbst sondern für mich stellt sich das so dar als 
lässt du hier programmieren.
Du hast so viele Hinweise und auch Beispiele bekommen, versuche doch mal 
zu verstehen WAS da im Computer passiert und WIE so ein Programm 
funktioniert.
Dann kannst du das auf dein Problem übertragen und die Beispiele 
entsprechend ändern erweitern.

von Hannes L. (hannes)


Lesenswert?

Udo Schmitt schrieb:
> das auf dein Problem übertragen und die Beispiele
> entsprechend ändern erweitern.

Genau diesem Zweck diente mein Beitrag, Hilfe zur Selbsthilfe...

...

von Karsten (Gast)


Lesenswert?

Hallo Udo,
ich hatte gehofft, es würde nicht (wieder) zu Grundsatzdiskussionen 
kommen.
Zitieren kannst Du wirklich gut.
Und einige haben grobe Hinweise gegeben - wofür ich auch dankbar bin 
aber es sind eben nur Pseudocode-artige Hinweise und ich benötige 
VisualBAsic.
Hannes Lux hat als einziger bisher wirklich ein Beispiel gegeben. Das 
will ich jetzt ja auch verstehen. Mich wundert nur, dass das wieder ganz 
anders ist als das was ich bisher so in Tutorials gefunden hatte.
Und: Du willst es nicht - aber Du trittst mir zu nahe: Ich kann sehr gut 
programmieren und tue das auch eifrig. Im BASCOM bin ich ziemlich fit. 
Mit VisualBasic habe ich bisher einige kleinere Programme gemacht. Mehr 
brauchte ich auf der PC-Seite damit noch nicht. Vom PC aus den AVR 
steuern klappt auch wunderbar. Nur jetzt bin ich eben an der Thematik, 
dass ich ein paar Werte vom AVR am PC anzeigen möchte. Hab eich eben 
vorher noch nicht gemacht. Da ist doch wohl der normale Weg, dass man im 
Internet sucht. Habe ich ausführlich getan. Dass man selbst probiert. 
Bin ich ja dabei. Und dass man sich helfen läßt. Was ist daran schlimm?
Ich versuche ja auch, das zu verstehen.
DEIN Beitrag hilft mir nun gerade einmal überhaupt nicht weiter. Du 
könntest Dich positiv herausheben wenn Du nicht so einen Meta-Beitrag 
schreiben würdest sondern mir einen guten Link oder ein kleines 
Beispielprogramm geben würdest. Wenn Du das nicht kannst dann brauche 
ich Deinen Beitrag nicht weil er mir einfach nicht hilft.
Vielleicht gibt es ja doch noch jemanden außer Dir, der mir Hinweise 
geben kann.  Keine Sorge: Ich passe das dann schon selbst an meine 
Umgebung an. Aber es geht mir erst einmal um die Basis des seriellen 
Empfangs. Und ich denke, dass sehr viele das schon gemacht haben werden.
Ich hab eübrigens auch drei Bücher bezüglich VisualBasic6 aber leider 
ist die serielle Verbindung dort nicht behandelt.
Bitte jetzt keine Meta-Diskussion mehr. Wenn jemand ein kleines Beispiel 
oder einen Link für mich hat dann freue ich mich. Alle anderen mögen 
bitte einfach schweigen  :-)
Karsten

von Werner P. (Gast)


Lesenswert?

Dann mal ein Beispiel
1
Private Sub MSComm1_OnComm()
2
  Static buffer As String
3
  Dim s As String
4
  Dim st As Integer
5
  Dim Temperatur As Integer
6
  Dim Ventil As Integer
7
  
8
  Select Case MSComm1.CommEvent
9
      Case comOverrun:   MsgBox "Error Overrun!"
10
      Case comRxOver:    MsgBox "Error RxOver!"
11
      Case comEvReceive:
12
        ' Ok, wir haben Daten bekommen. Die hängen wir erst mal an den buffer ran
13
        buffer = buffer & MSComm1.Input
14
        ' Wir suchen die Position von CRLF im buffer. Ist st > 0 dann haben wir die Position
15
        st = InStr(buffer, vbCrLf)
16
        While st > 0
17
          ' Alles links von CRLF nach s
18
          s = Left(buffer, st - 1)
19
          ' Alles rechts von CRLF nach buffer
20
          buffer = Mid(buffer, st + 2)
21
          
22
          ' Prüfen ob erstes Zeichen T bzw. V
23
          If Left(s, 1) = "T" Then
24
            ' Ok. erstes Zeichen ist T. String in Integer umwandeln
25
            Temperatur = Val(Mid(s, 2))
26
          ElseIf Left(s, 1) = "V" Then
27
            ' Ok. erstes Zeichen ist V. String in Integer umwandeln
28
            Ventil = Val(Mid(s, 2))
29
          End If
30
          ' Wir suchen weiter nach CRLF
31
          st = InStr(buffer, vbCrLf)
32
        Wend
33
    End Select
34
End Sub

von Karsten (Gast)


Lesenswert?

WOW!
Lieber Werner  ..  :-)
das sieht ja perfekt aus!  Das kann ich auch gut nachvollziehen. So 
werde ich das ausprobieren. Ich hoffe, ich kann nachher eine 
Erfolgsmeldung geben.
Viiiieeeelen Dank auf jeden Fall.
Karsten

von Karl H. (kbuchegg)


Lesenswert?

Karsten schrieb:

> ähnlich. Ich habe noch nicht verstanden, an welcher Stelle VisualBasi
> merkt, dass es sich jeweils um einen Datensatz zum Beispiel  T19
> handelt


Genau da liegt der springende Punkt.
Die Antwort lautet: Zunächst mal - gar nicht.

Es ist dein Bier aus dem Buchstabenstrom die Einzelteile 
herauszufischen! UNd genau aus dem Grund hast du die beiden Zeichen CR 
und LF in diesem Strom. Damit dein Programm daran erkennen kann, wo ein 
Datensatz im Buchstabenstrom endet. Aber das muss dein Programm machen. 
Visual Basic ist das völlig egal. Für VB hört die Welt dort auf, wo es 
deinem Programm die nächste Buchstabensequenz übergibt, die es seit der 
letzten Befragung empfangen und gesammelt hat.

von Karsten (Gast)


Lesenswert?

ahh .. so langsam wird alles klarer. Vielen Dank

von Uwe (Gast)


Lesenswert?

Denk dir ein Protokoll aus und programmier das auf beiden Seiten.
Kommunikationsprotokoll sollte einige Treffer bei goo** haben

von Werner P. (Gast)


Lesenswert?

Uwe schrieb:
> Denk dir ein Protokoll aus und programmier das auf beiden Seiten.

Wozu? Er hat doch quasi schon ein Protokoll.

Datensatz beginnt mit T oder V. Danach kommt der Wert. Abschluss ist 
CRLF.

Bevor er mit einem "eigenen" Protokoll anfängt muss er erst mal 
verstehen wie die Kommunikation funktioniert.

von Uwe (Gast)


Lesenswert?

Genau deshalb soll er ja mal nach Protokoll googln und erkennen was er 
hat und was fehlt und warum man sowas macht.

von Karsten (Gast)


Lesenswert?

Ich denke auch, als "Protokoll" sollte es doch schon reichen. Ein 
"Header" und am Ende CrLf. Wenn es nötig wäre könnte ich ja auch noch 
ein Endezeichen anhängen - zum Beispiel $ - aber ich wüßte nicht, was 
das für Vorteile bringen sollte. Es muss ja auch möglich sein, den 
Datenstrom so zu nehmen wie er ist. Das ist ja in anderen Situationen 
auch so. Ich will das ja auch eigentlich nicht alles neu erfinden. Genau 
das, was ich hier machen möchte haben ja schon tausende vor mir gemacht.

von Zaungast (Gast)


Lesenswert?

Das was er hat ist als Protokoll schon vollkommen ausreichend. Texte 
über Protokolle im Internet nachzulessen würde das ganze nur deutlich 
verkomplizieren, zumal mit Sicherheit der Großteil der verfügbaren 
Protokollbeschreibungen fürs Netzwerk gedacht sind.

Einen kleinen Tip hätte ich allerdings dennoch:

Wenn Du von Deiner Textbox die Eigenschaft "Multiline" auf True setzt, 
dann werden Deine Texte auch ganz sauber nach einem Zeilenumbruch 
(Cr+Lf) in eine neue Zeile umbrochen, ohne dass es diese beiden 
Klötzchen gibt.

Allerdings - da du je nach T oder V in unterschiedliche Textboxen gehen 
möchtest - kommst Du um das Aufsplitten der empfangenen Daten leider 
nicht herum. Aber dafür ist oben ja bereits ein Beispiel zu finden.
:-)

Grüßle,
Torsten.

von Karsten (Gast)


Lesenswert?

Hallo Torsten,
das mit Multiline versuche ich auch mal. Vielleicht kann mir das 
nützlich sein, um für den einen oder anderen Wert die letzten Werte 
anzuzeigen und dann nach z.B. 5 Werten die Textbox wieder zu leeren. 
Wäre ja hier und da auch nützlich. (Klar..dann kann man das auch als 
nächstes so machen, dass immer der älteste Wert rausfliegt usw... aber 
erst muss die Basis jetzt klappen dann die Feinheiten. Danke für den 
Hinweis mit Multiline.
Karsten

von Klaus D. (kolisson)


Lesenswert?

@ Autor: Karsten (Gast)
ich find das prima, dass du mit VB6 anfängst.
Das ist die letzte  Programmiersprache von Gates, die noch
verständlich ist.
Danach kamen die ausgestorbenen Saurier und dann diese Typen ,
die auf C, C+ , C++ , und C-Rail to Rail geeicht waren..


da ich auch ein VB6 Fan bin, kann ich dir wohl helfen.

wenn du also mit Autor: Werner P. (wpfundstein) und seinem Code
nicht klar kommst, werden wir das gerne erarbeiten.


Gruss klaus

von Karsten (Gast)


Lesenswert?

Hallo Klaus,
meinst Du das ernst? Hört sich ja sehr gut an. Tatsächlich hatte ich mir 
als ich ein paar kleine Dinge auf dem PC machen wollte VB6 (mühsam) 
legal (!) besorgt weil 1.) die moderneren Versionen , die ich testweise 
installiert hatte mir viel zu groß waren und die erzeugten Programme 
irgendwie sehr hohe Anforderungen hatten und weil ich 2.) wenig Lust 
hatte, das Ganze objektorientierte zu lernen nur um ein paar kleine 
Tools für mich zu schreiben und weil es 3.) BASCOM sehr sehr ähnlich 
ist. Ich bin wie eingangs gesagt ganz zufrieden damit.
Habe heute noch einmal in meinen vier (!) Büchern zu VB6 nachgesehen. 
Erstaunlicherweise ist in keinem der Bücher die Sache mit der seriellen 
Schnittstelle beschrieben. Auch in den Tutorials im Internet nicht so 
richtig. Erstaunlich.
Leider habe ich nun heute abend doch nicht soo viel Zeit zum Testen weil 
meine Tochter morgen Geburtstag hat und ich mit vorbereiten muss..

Meine ersten Schnell-Tests sind sehr vielversprechend:
Als erstes habe ich mal auf Multiline einhgestellt. Interessanterweise 
kamen die Strings nicht ganz sauber an. Teilweise wurde noch EIN Strich 
angezeigt.  Sah aber insgesamt schon etwas besser aus.
Dann habe ich den Teil von Werner hineinkopiert..und  Sieht wirklich 
absolut sauber aus!!  Herzlichen Dank, Werner!! Die Zahlen werden 
tatsächlich jetzt sauber auf bisher zwei Textboxen verteilt. Ich freue 
mich sehr!
Wenn ich Verbinden anklicke wird allerdings im Moment noch   Error 
Overrun!  angezeigt.  Das muss ich als nächstes noch wegbekommen und 
dann noch mit Kommazahlen versuchen. Dann geht es nur noch um 
Feinheiten.

So sieht mein Testcode zur Zeit aus:

1
Public Function PortTest(COMPortNummer As Integer) As Boolean
2
'einen com-Port testen
3
  MSComm1.CommPort = COMPortNummer
4
  On Error Resume Next
5
  MSComm1.PortOpen = True
6
  If Err = 0 Then
7
    PortTest = True
8
    MSComm1.PortOpen = False
9
  Else
10
    PortTest = False
11
    MSComm1.PortOpen = False
12
  End If
13
End Function
14
15
16
Private Sub Command1_Click()
17
'Nummer des com-Ports:
18
MSComm1.CommPort = Text1.Text
19
' Baud:
20
' Beispiel: "4800,N,8,1"
21
MSComm1.Settings = Text2.Text + ",N,8,1"
22
'Port oeffnen:
23
  On Error Resume Next
24
  MSComm1.PortOpen = True
25
  If Err <> 0 Then
26
    MsgBox "COM" + Text1.Text + " nicht verfügbar"
27
  End If
28
  'Fuer Input:
29
  MSComm1.RThreshold = 1
30
MSComm1.SThreshold = 1
31
MSComm1.InputLen = 0
32
End Sub
33
34
Private Sub Command2_Click()
35
'String zum AVR senden
36
MSComm1.Output = Text3.Text + vbCr
37
End Sub
38
39
Private Sub Command3_Click()
40
'com-Ports durchtesten
41
''wenn verfügbar dann Message anzeigen
42
Dim Portzaehler As Integer
43
For Portzaehler = 1 To 16
44
  If PortTest(Portzaehler) Then
45
    MsgBox "COM" + Str(Portzaehler) + " verfügbar"
46
  End If
47
Next
48
End Sub
49
50
' Empfangen
51
Private Sub MSComm1_OnComm()
52
  Static buffer As String
53
  Dim s As String
54
  Dim st As Integer
55
  Dim Temperatur As Integer
56
  Dim Ventil As Integer
57
  
58
  Select Case MSComm1.CommEvent
59
      Case comOverrun:   MsgBox "Error Overrun!"
60
      Case comRxOver:    MsgBox "Error RxOver!"
61
      Case comEvReceive:
62
        ' Ok, wir haben Daten bekommen. Die hängen wir erst mal an den buffer ran
63
        buffer = buffer & MSComm1.Input
64
        ' Wir suchen die Position von CRLF im buffer. Ist st > 0 dann haben wir die Position
65
        st = InStr(buffer, vbCrLf)
66
        While st > 0
67
          ' Alles links von CRLF nach s
68
          s = Left(buffer, st - 1)
69
          ' Alles rechts von CRLF nach buffer
70
          buffer = Mid(buffer, st + 2)
71
          
72
          ' Prüfen ob erstes Zeichen T bzw. V
73
          If Left(s, 1) = "T" Then
74
            ' Ok. erstes Zeichen ist T. String in Integer umwandeln
75
            Temperatur = Val(Mid(s, 2))
76
            Text4.Text = Temperatur
77
          ElseIf Left(s, 1) = "F" Then
78
            ' Ok. erstes Zeichen ist V. String in Integer umwandeln
79
            Ventil = Val(Mid(s, 2))
80
            Text5.Text = Ventil
81
          End If
82
          ' Wir suchen weiter nach CRLF
83
          st = InStr(buffer, vbCrLf)
84
        Wend
85
    End Select
86
End Sub
87
88
89
Private Sub Form_Unload(Cancel As Integer)
90
'com-Port schliessen wenn Form verlassen wird
91
MSComm1.PortOpen = False
92
End Sub
Muss jetzt erst einmal Gabentisch vorbereiten...

von Karsten (Gast)


Lesenswert?

Soo...  fast perfekt :-)

Der AVR sendet jetzt testweise mit jeweils einem Buchstaben als Header 
eine Ganzzahl (G..), eine andere Ganzzahl (g...), einen Text (T..) oder 
eine Kommazahl (K...). Beispiele:
G123
g123
TText
K123.3
Ich empfange das aus dem seriellen Datenstrom mit VB6, kann im VB mit 
den Zahlen rechnen und verteile die Zahlen bzw. die Strings zur Anzeige 
auf Textfelder entsprechend des Headers.
-> Werner, Du bist der Größte!

Jetzt bekomme ich nur noch beim Öffnen des com-Ports noch die häßliche 
Meldung
  Error  Overrun!

Muss ich hierfür andere Werte angeben:
  MSComm1.RThreshold = 1
  MSComm1.SThreshold = 1
  MSComm1.InputLen = 0
?

So sieht es zur Zeit aus:
1
' Empfangen:
2
Private Sub MSComm1_OnComm()
3
  Static buffer As String
4
  Dim s As String
5
  Dim st As Integer
6
  Dim Temperatur As Integer
7
  Dim Ventil As Integer
8
  Dim kommazahl As Single
9
 
10
  Select Case MSComm1.CommEvent
11
      Case comOverrun:   MsgBox "Error Overrun!"
12
      Case comRxOver:    MsgBox "Error RxOver!"
13
      Case comEvReceive:
14
        ' Ok, wir haben Daten bekommen. Die hängen wir erst mal an den buffer ran
15
        buffer = buffer & MSComm1.Input
16
        ' Wir suchen die Position von CRLF im buffer. Ist st > 0 dann haben wir die Position
17
        st = InStr(buffer, vbCrLf)
18
        While st > 0
19
          ' Alles links von CRLF nach s
20
          s = Left(buffer, st - 1)
21
          ' Alles rechts von CRLF nach buffer
22
          buffer = Mid(buffer, st + 2)
23
          
24
          ' Prüfen  erstes Zeichen:
25
          If Left(s, 1) = "G" Then 'Ganzzahl
26
            ' Erstes Zeichen ist G = Ganzzahl. String in Integer umwandeln
27
            Temperatur = Val(Mid(s, 2)) 'Hinter Header in Zahl umwandeln
28
            Text4.Text = Temperatur
29
            Text5.Text = Temperatur * 2 'testweise umgerechnet in anderes Textfeld
30
            
31
          ElseIf Left(s, 1) = "g" Then 'abgeleitete Ganzzahl
32
            ' Erstes Zeichen ist g. String in Integer umwandeln
33
            Ventil = Val(Mid(s, 2)) 'Hinter Header in Zahl umwandeln
34
            Text5.Text = Ventil
35
            
36
           ElseIf Left(s, 1) = "K" Then
37
            ' Erstes Zeichen ist K. String in Kommazahl umwandeln
38
            s = Mid(s, 2) 'Alles hinter Header  z.B. 75.22233
39
            kommazahl = Val(s)
40
            Text6.Text = kommazahl
41
         
42
            ElseIf Left(s, 1) = "T" Then 'Text
43
            ' Erstes Zeichen ist T = String.
44
            Text7.Text = Mid(s, 2) 'Alles hinter Header ausgeben
45
            
46
          End If
47
          ' Wir suchen weiter nach CRLF
48
          st = InStr(buffer, vbCrLf)
49
        Wend
50
    End Select
51
End Sub
52
53
54
---------------------------
55
Private Sub Command1_Click()
56
'Nummer des com-Ports:
57
MSComm1.CommPort = Text1.Text
58
' Baud:
59
' Beispiel: "4800,N,8,1"
60
MSComm1.Settings = Text2.Text + ",N,8,1"
61
'Port oeffnen:
62
  On Error Resume Next
63
  MSComm1.PortOpen = True
64
  If Err <> 0 Then
65
    MsgBox "COM" + Text1.Text + " nicht verfügbar"
66
  End If
67
  'Fuer Input:
68
  MSComm1.RThreshold = 1
69
  MSComm1.SThreshold = 1
70
  MSComm1.InputLen = 0
71
End Sub

von Klaus D. (kolisson)


Lesenswert?

Hallo Karsten,
ja , ich meine das ernst.
Mein VB6 habe ich seinerzeit für teuer Geld gekauft und wir haben ein
Datenbanksystem entwickelt und verkauft. Aus sicherer Quelle weiss ich,
dass dieses  Programm immer noch im Einsatz ist.
Entwickelt wurde das Programm noch unter Windows 3.11 und es hat seinen
Weg bis in das XP geschafft.


ich muss dir leider sagen, dass die Veröffentlichung deines 
Quelltextetes
nicht viel bringt, da bei VB6 die Forms ja auch eingebunden werden.
Zudem soll man ja hier nicht Quelltexte einstellen, weil es  die 
Lesbarkeit
des Artikels erschwert.


Ich habe hier verschiedene Ansätze zu dem Thema , weiss aber nicht,
wo dein Problem wirklich ist..

Gruss k.

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

Karsten schrieb:
> Wenn jemand ein kleines Beispiel
> oder einen Link für mich hat dann freue ich mich.

Siehe Anhang, ein weiteres Beispiel, wie in VB6 Daten eines AVRs über 
die serielle Schnittstelle empfangen und aufbereitet werden.

> Alle anderen mögen bitte einfach schweigen

Hmmm...

...

von Cyblord -. (cyblord)


Lesenswert?

Klaus De lisson schrieb:

> Ich habe hier verschiedene Ansätze zu dem Thema , weiss aber nicht,
> wo dein Problem wirklich ist..

Sein Problem ist, er kann nicht programmieren.

Und wenn man das nicht kann, kann man es mit keiner Programmiersprache. 
VB mag Anfänger anziehen, da man schnell mal was zusammenklicken kann, 
aber sobald die Aufgabe einen Hauch kompexer wird, spielt das alles 
keine Rolle mehr.
Heute fängt man nicht mehr klein an und lernt programmieren, da wirft 
man vb an und will "mal schnell" mit einem Controller kommunizieren und 
steht natürlich doof im Wald. Aber dafür gibts ja die Foren....

Das Problem ist ja hier noch nichtmal das WIE, sondern das WAS. Da fehlt 
es doch schon am Elementarsten: Repräsenation von Zahlen (Binär->ASCII 
usw.), Stringverarbeitung, funktionsweise serielle Schnittstelle usw 
usw.


gruß cyblord

von Karl H. (kbuchegg)


Lesenswert?

Karsten schrieb:

> Jetzt bekomme ich nur noch beim Öffnen des com-Ports noch die häßliche
> Meldung
>   Error  Overrun!

Hast du schon mal nschgesehen (igitt: Doku lesen), was dir die COM 
mitteilen will, wenn sie overrun meldet?

Sie meint damit: Über die Serielle ist haufenweise Zeugs reingekommen, 
welches ich nicht zwischenspeichern konnte bzw. das keiner abgeholt hat 
und das ich daher verworfen habe.

Schaltest du den AVR ein, dann beginnt der zu senden. Was passiert 
damit? Das wird gesendet und da am PC das Programm noch nicht läuft, 
holt es auch keiner ab. Die Serielle geht in den Zustand 'overrun' - 
Überlauf.

von Klaus D. (kolisson)


Lesenswert?

cyblord ---- schrieb:
> Sein Problem ist, er kann nicht programmieren.

.. und deswegen stellt er ja seine Frage. da musst du das nicht noch
extra herausanalysieren.

k.

von Uwe (Gast)


Lesenswert?

Nach dem Programstart einfach den Puffer leeren z.B. mit einem dummy 
read.
Oder dem µC Bescheid sagen das er senden soll.

von Karsten (Gast)


Lesenswert?

"Nach dem Programstart einfach den Puffer leeren z.B. mit einem dummy 
read."
-> Reicht dafür, direkt nach dem Öffnen des com-Ports einmal

buffer =  MSComm1.Input

zu schreiben?

Oder gibt es einen eleganten Befehl, um den Buffer erst einmal komplett 
zu leeren?

Abgesehen davon läuft jetzt ja alles  :-)

von Cyblord -. (cyblord)


Lesenswert?

Klaus De lisson schrieb:
> cyblord ---- schrieb:
>> Sein Problem ist, er kann nicht programmieren.
>
> .. und deswegen stellt er ja seine Frage. da musst du das nicht noch
> extra herausanalysieren.
>
> k.

Man lernt also in deiner Welt programmieren indem man ein Forum eine 
spezielle Programmieraufgabe lösen lässt? Hab ich wieder was gelernt.

von Klaus D. (kolisson)


Angehängte Dateien:

Lesenswert?

Uwe schrieb:
> Nach dem Programstart einfach den Puffer leeren z.B. mit einem dummy
> read.

Das ist doch Blödsinn. Mit Windows und VB sind die Sachen anders.
Was dir, Autor: Karsten (Gast) , vielleicht noch fehlt ist der
Blick auf das EVENTSystem von Windows. (Event = Ereignis)
Tritt ein Ereignis ein, kann darauf reagiert werden.

evt. ist der Parameter MSComm1.InputLen für dich interessant.
In VB6 gibt es doch eine tolle Hilfefunktion.
Schau mal auf die Controls im angehängten Bild.

Gruss klaus

von Klaus D. (kolisson)


Lesenswert?

cyblord ---- schrieb:
> Man lernt also in deiner Welt programmieren indem man ein Forum eine
> spezielle Programmieraufgabe lösen lässt? Hab ich wieder was gelernt.

Dafür ist ein Forum da.
Ein Auszug aus Wikipedia sollte es dir erklären:

************************************************************
Forum (Kultur), ein realer oder virtueller Ort, wo Meinungen 
untereinander ausgetauscht werden können, Fragen gestellt und 
beantwortet werden können
************************************************************

So einfach ist das

Gruss klaus

von Cyblord -. (cyblord)


Lesenswert?

Klaus De lisson schrieb:
> cyblord ---- schrieb:
>> Man lernt also in deiner Welt programmieren indem man ein Forum eine
>> spezielle Programmieraufgabe lösen lässt? Hab ich wieder was gelernt.
>
> Dafür ist ein Forum da.
Nein, siehe den Beitrag hier, der hat völlig Recht:
Beitrag "Re: Wozu das & Zeichen vor Variable?"

Ohne VB oder sonstige Grundlagen hier mit so einem Problem aufzuschlagen 
ist eine Frechheit und bringt auch niemanden weiter. Codebeispiele gibts 
im Web genug, aber ohne Basiswissen bringen die halt nix.

> So einfach ist das
Leider sind die einfachen Antworten meist auch die falschen.

von Klaus D. (kolisson)


Lesenswert?

cyblord ---- schrieb:
> Leider sind die einfachen Antworten meist auch die falschen.

Wenn alle so denken würden wäre jedes Forum tot.
Es geht hier nicht um deine persönlichen Probleme, die zufällig gerade
hast.
Ich habe z.B. einen Freund , der VB noch besser versteht als ich.
Wenn ich also nicht weiterkomme rufe ich ihn an und 2 Tage später
habe genau das, was ich wollte.

Bin ich deswegen nun ein "Vollarschloch" ?

gruss k.

von Cyblord -. (cyblord)


Lesenswert?

Klaus De lisson schrieb:
> Wenn alle so denken würden wäre jedes Forum tot.
Bestimmt nicht. Ich anderen Foren wird sowas viel schneller abgewürgt.

> Es geht hier nicht um deine persönlichen Probleme, die zufällig gerade
> hast.
Ich sag meine Meinung, dazu ist ein Forum auch da.

> Ich habe z.B. einen Freund , der VB noch besser versteht als ich.
> Wenn ich also nicht weiterkomme rufe ich ihn an und 2 Tage später
> habe genau das, was ich wollte.

Unterschied. Wenn man VB etwas kann, kann man zu einem Problem konkrete 
Fragen stellen. Das hier ist keine konkrete Frage, sondern ein "Ich wil 
XYZ, kann es aber nicht, macht es für mich". Wenn du diesen Unterschied 
intellektuell nicht erfassen kannst, ist das nicht mein Problem.

> Bin ich deswegen nun ein "Vollarschloch" ?
Nette Ausdrucksweise. Zuhause so gelernt? Interessant.

von Klaus D. (kolisson)


Lesenswert?

cyblord ---- schrieb:
>> Bin ich deswegen nun ein "Vollarschloch" ?
> Nette Ausdrucksweise. Zuhause so gelernt? Interessant.

Nun lassem wir es jettzt da stehen und kümmern uns um die Belange
des Fragestellers ?

k,

von Karsten (Gast)


Lesenswert?

Hallo,
Leute vertragt Euch doch. Diese völlig überflüssigen Meta-Diskussionen 
machen den Thread nur schwieriger lesbar..

In meinem Beitrag vom
-----
Autor: Karsten (Gast)
Datum: 10.05.2012 00:32
------

habe ich den Status (dass fast alles super läuft) und das einzige 
verbleibende 'Problem' (comOverrun beim Öffnen des com-Ports) 
dargestellt.

Hat jemand dazu noch einen (letzten) Lösungsvorschlag?

Werner P. (wpfundstein),  Du vielleicht?  Du bist der Einzige, der mich 
hier wirklich signifikant vorangebracht hat.

@cyblord: Halte Dich doch bitte raus. Vielen Dank

Viele Grüße
Karsten

von Cyblord -. (cyblord)


Lesenswert?

Karsten schrieb:
> @cyblord: Halte Dich doch bitte raus. Vielen Dank

Ähm vielleicht hab ich was nicht mitbekommen, aber seit wann bestimmst 
du, wer hier schreiben darf und wer nicht?

Statt hier den Leute was vorschreiben zu wollen solltest du dich 
vielleicht mal an in aller Ruhe an VB setzen und es LERNEN. Ich weiß, 
unmöglicher Vorschlag, geht gar nicht sowas. Wir denken nicht, wie 
Fragen im Forum.

von Karsten (Gast)


Lesenswert?

naja .. ist immerhin 'mein Thread' und ich stelle einfach fachliche 
Fragen.
Solltest Du fachlich konstruktiv etwas beitragen können dann bist Du 
natürlich herzlich willkommen. Da Du aber bisher noch keinerlei 
fachliche Beiträge gebracht hast muss ich bis auf Weiteres davon 
ausgehen, dass Du noch viel weniger Ahnung hast als ich oder 
wahrscheinlich sogar überhaupt keine.
Wenn Du Ahnung hättest dann hättest Du ja auch schon einmal einige von 
den 'vielen Beispielen im Internet' verlinken oder kleine 
Lösungshinweise geben können. Du kannst mich ja gerne davon überzeugen, 
dass Du fachlich etwas drauf hast.

von Werner P. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Karsten,

ich bekomme keinen Overrun Error. Schau Dir mal die beigefügten 
Einstellungen an und nimm folgendes aus Deinem Code raus:
1
MSComm1.RThreshold = 1
2
MSComm1.SThreshold = 1
3
MSComm1.InputLen = 0

Grüße

von Klaus D. (kolisson)


Lesenswert?

Karsten schrieb:
> @cyblord: Halte Dich doch bitte raus. Vielen Dank

Hallo cyblord,
ich hatte den gleichen Eindruck wie der Fragesteller.
"Halt dich raus  !"

Nachdem der Fragesteller nun aber schrieb:
"Werner P. (wpfundstein),  Du vielleicht?  Du bist der Einzige, der mich
hier wirklich signifikant vorangebracht hat."

bin ich richtig eifersüchtig un traurig.

Wir tun uns dann hoffentlich zusammen und lecken unsere Metawunden

k.

von Cyblord -. (cyblord)


Lesenswert?

Klaus De lisson schrieb:
> Hallo cyblord,
> ich hatte den gleichen Eindruck wie der Fragesteller.
> "Halt dich raus  !"
Damit komm ich klar, aber das plenken ist nicht schön das macht mich 
fertig.

> Nachdem der Fragesteller nun aber schrieb:
> "Werner P. (wpfundstein),  Du vielleicht?  Du bist der Einzige, der mich
> hier wirklich signifikant vorangebracht hat."
>
> bin ich richtig eifersüchtig un traurig.

Tja da musst du nur mal schauen warum das so ist. Werner P. hat ihm 
schön einen vollständigen Code hingestellt. Genau das ist es doch was er 
wollte, kein Wunder dass er also so denkt. Wenn du ihm noch schnell sein 
ganzes Programm schreibst und ihm schickst, dann bist du sein neuer 
bester Freund ;-)

> Wir tun uns dann hoffentlich zusammen und lecken unsere Metawunden

Aber klaro

von Udo S. (urschmitt)


Lesenswert?

Tja, habt ihr es bemerkt?
Ich darf mal mein Posting vor gefühlt 100 Beiträgen zitieren:

Udo Schmitt schrieb:
> Sorry Karsten, ohne dir nahe treten zu wollen, aber "programmieren" tust
> du eigentlich nicht selbst sondern für mich stellt sich das so dar als
> lässt du hier programmieren.

von Klaus D. (kolisson)


Lesenswert?

Dann ist das

"Udo Schmitt schrieb:
> Sorry Karsten, ohne dir nahe treten zu wollen, aber "programmieren" tust
> du eigentlich nicht selbst sondern für mich stellt sich das so dar als
> lässt du hier programmieren."

wohl die Wahrheit und ich hatte einen falschen Eindruck.

Nun kann ich nur Metasagen "ich bin froh, das Karsten nicht im
Eingangspost schon geschrieben hat "ich bin 8 Jahre alt und ich will"


Gruss

von Karsten (Gast)


Lesenswert?

@Klaus De lisson: Nein, nein - Du gehörst zu den Guten. Ich habe mich 
sehr über Dein Hilfsangebot gefreut!
Und: Nur zur Ergänzung: Nein - ich bin nicht 8. Ich bin im gestandenen 
Alter, habe ein abgeschlossenes Informatikstudium hinter mir und arbeite 
erfolgreich in einem großen EDV-Unternehmen.
Das ist übrigens die erste Frage, die ich hier im Forum gestelt habe. 
Bisher habe ich also schon so manches auch ohne Forum programiert bzw. 
konfiguriert. Nur bin ich eben kein VB-Kenner und die serielle 
Verbindung AVR-PC baue ich eben zum ersten Mal. Wie es sich gehört hatte 
ich ja auch vorher Internet und Bücher bemüht bevor ich hier angefragt 
hatte. Ich hatte ehrlich gesagt auch gedacht, dass es hier sehr viele 
Leute geben müßte, die das schon tausendmal gemacht haben und die mir 
sofort Links bzw. Lösungen geben könnten/würden. Ich denke, es ist nicht 
sinnvoll für mich, diese Standardsachen im Detail selbst zu erarbeiten 
wenn sie a.) tausendfach vorhanden sind und b.) nicht mein Hauptfokus 
sind sondern nur ein Randthema. Wie gesagt: Für mich ist VB kein 
Selbstzweck sondern nur Hilfsmittel zur Erstllung kleiner Tools. Leider 
habe ich mich aber ja in der Kompetenz der Forum-Teilnehmer getäuscht: 
Sehr viele haben offenbar fachlich nichts drauf sondern können nur 
'klug' daher reden.
Ich werde in die Richtung des Hinweises von   Werner P.  weiterarbeiten. 
Ich denke auch, dass mein letztes 'Problemchen' daran liegt. Und dann 
habe ich das ja auch ausreichend im Griff und baue alles andere drum 
herum selbständig.

von Cyblord -. (cyblord)


Lesenswert?

Karsten schrieb:
> Und: Nur zur Ergänzung: Nein - ich bin nicht 8. Ich bin im gestandenen
> Alter, habe ein abgeschlossenes Informatikstudium hinter mir und arbeite
> erfolgreich in einem großen EDV-Unternehmen.

Informatikstudium? Und dann solche Fragen? Und dann BASCOM? Und dann 
Visual Basic? Verstehe das wer will.
Wie kann man da so ein Eingangspost verfassen? Stringverarbeitung sollte 
doch kein Problem sein. Hast du in "Compilerbau" geschlafen? Reguläre 
Ausdrücke könnte man da auch gut nehmen um das zu zerlegen. Ein 
Informatiker würde zu solchen Lösungen kommen.
Und mach dir mal Gedanken warum dich die Leute für 8 Jahre alt halten.
Uni, FH, BA, Baumschule? Erschreckend. Bei uns wärst du mit solchem 
"Wissen" und einer solchen Heransgehensweise aber nicht weit gekommen.

edit: Kein Witz, ich scrolle gerade immer zwischen deinem letzten und 
deinem ersten Post hin und her und kann es nicht fassen.

gruß cyblord

von Karsten (Gast)


Lesenswert?

@cyblord
edit. Ich scrolle lieber nicht zwischen Deinen Beiträgen hin und her 
weil es nur heiße Luft ist.

von Kick (Gast)


Lesenswert?

@Karsten
Bestimmtes wissen muss man schon haben um mit VB zu programmieren!
String Behandlungen sind das einfachste, und sollte jeder, bevor er mit 
VB großartige Programme schreiben möchte, beherrschen!
Soviel dazu.

Zu deiner Frage:
1. Vb 2008 oder 2010 runterladen (kostet nichts!)
2. Projekt starten
3. Form aufbauen (wo was zeigen, klicken, ...)
4. SerialPort einfügen
5. im event DataReceived:

dim iForI as integer
dim strLine as string
dim strLineSplit() as string

strLineRead = SerPort.ReadLine 'Daten werden gelesen und geleert
strLineSplit = Split(strLine, vbCrLf) 'Datensätze werden aufgeteilt

For iForI = 0 to UBound(strLineSplit)
     select case left(strlineSplit(iForI),1)
          case "K"
               Textbox1.text=mid(strlineSplit(iForI),2) 'Zeige wert,
'zum Rechnen musst du es mit: CDbl(mid(strlineSplit(iForI),2)) 
definieren
          case "G"
               ...

          case "g"
               ...

          case "T"
               ...

          case else
               msgbox "nicht erkant!"   'Zb.
     end select
next iForI

Grundstein ist damit gelegt worden!
Rest ist dein Bier!

Um ganz ehrlich zu sein, auch wenn ich ein Problem habe, zuerst bemühe 
ich mich selber es zu lösen, UND WENN'S NED anders geht (komme nicht 
dahinter, trotz einiger versuche) frage ich!

Ich hoffe dir geholfen zu haben!

von Werner P. (Gast)


Lesenswert?

Kick schrieb:

> 1. Vb 2008 oder 2010 runterladen (kostet nichts!)

und was bringt ihm das wenn er anstelle von VB6 VB2008/2010 verwendet?

von Cyblord -. (cyblord)


Lesenswert?

Werner P. schrieb:
> Kick schrieb:
>
>> 1. Vb 2008 oder 2010 runterladen (kostet nichts!)
>
> und was bringt ihm das wenn er anstelle von VB6 VB2008/2010 verwendet?

VB 6 ist alt wie Steinkohle. Und wenn er VS Express unterlädt, kann er 
gleich mit was besserem (C#) einsteigen und auf VB verzichten. :-p
Tztz nen Informatiker der VB benutzt UND es nicht blickt. Elend.

von Kick (Gast)


Lesenswert?

Wiederum,
außer kritisieren, hast du ned viel mehr geholfen cyblord! :P
sag ihm doch:
C# install
und Ansatz zu der Lösung!

ich bin kein C# Programmierer,
aber ich nehme es an, wenn einer assemblieren kann, kann der eigentlich 
C# besser als VB! oder lieg i da falsch?

2. lass mei VB in ruh :P
es gibt nichts was i mit VB ned machen kann!
Und du wird’s es gar ned merken das es VB war! ;)

von Peter (Gast)


Lesenswert?

>Für mich ist VB kein Selbstzweck sondern nur Hilfsmittel zur Erstllung
>kleiner Tools.

Hohohohoho der Witz ist gut! Mit VB generiert selbst ein mickriges 
Hello-World Programm rund 1.5 MByte an Code und benötigt zudem noch eine 
Runtime-DLL

Gucke Dir mal PureBasic an, das ist wohl wesentlich besser geeignet für 
Deine Zwecke. http://www.purebasic.com/german/index.php
Mit PureBasic ist ein Hello-World.Exe < 8 kByte, und ein echtes, stand 
allone lauffähiges Programm, das keine Runtime-DLL benötigt!)

von Cyblord -. (cyblord)


Lesenswert?

Peter schrieb:
>>Für mich ist VB kein Selbstzweck sondern nur Hilfsmittel zur Erstllung
>>kleiner Tools.
>
> Hohohohoho der Witz ist gut! Mit VB generiert selbst ein mickriges
> Hello-World Programm rund 1.5 MByte an Code und benötigt zudem noch eine
> Runtime-DLL


Du bist nicht mehr UpToDate. VB generiert inzwischen, wie alle Visual 
Studio Applikationen Bytecode für .NET. Es wird also eine .NET 
Laufzeitumgebung gebraucht. Ne poplige .dll bringt da nix mehr.
Welche allerdings auf jedem neueren Windows zu finden sein dürfte, da es 
.NET Anwendungen wie Sand am Meer gibt.
Eure nativen Programme sind nicht mehr Zeitgemäß. .NET oder JVM ist grad 
am Zug. Aufjedenfall ByteCode für Virtuelle Maschinen. Direkt auf der 
CPU wird nix mehr ausgeführt, die Zeiten sind vorbei :-p

Und auch BASIC Dialekte sind nicht jedermans Sache. Dazu kommt das 
"PureBasic" zu nichts auf der Welt irgendwie kompatibel ist. Eine 
winzige Insel. Sowas bringt dir heutzutage nix mehr.

> 2. lass mei VB in ruh :P
> es gibt nichts was i mit VB ned machen kann!
> Und du wird’s es gar ned merken das es VB war! ;)
Aber du wirst es Wissen... Kannst du damit leben?
Aber ernsthaft, VS2010 hat auch ein VB an Bord. Nur VB6 ist eben aaaalt.

gruß cyblord

von Kick (Gast)


Lesenswert?

cyblord ---- schrieb:
> Aber du wirst es Wissen... Kannst du damit leben?
>
> Aber ernsthaft, VS2010 hat auch ein VB an Bord. Nur VB6 ist eben aaaalt.

Seit 1991 bin i mit Basic unterwegs (gwbasic).
Es gab damals schon hunderte sprachen,
jetzt gibt es noch viele mehr,
aber basic ist basic ;)

Dh. ich kann damit leben!
Und meine Kunden ebenfalls! (Die wissen gar nicht was dahinter steckt, 
für die, wie für viele andere die Windows benutzen) zählt nur die 
Oberfläche.

Was sind die Vorteile von den anderen Sprachen:
Geschwindigkeit? - CPU's werden immer schneller, somit kann des ned 
sein!
Prg's Größe? - Heut zu tage redet man über TB, somit kann des ned sein!

Was sind die Vorteile cyblord?

Alt - Neu, unterschied sind die engine's die es treiben.
Willst es klein und schnell haben, greif zu Assembler.
Nur, ist es heut zu tage notwendig?

von Karsten (Gast)


Lesenswert?

Entspannt Euch.
Es läuft jetzt alles.
Danke besonders an Werner P.  und an Klaus De lisson.
Danke auch an Kick.
@cyblord: Du kannst jetzt im nächsten Thread rumätzen.

von Cyblord -. (cyblord)


Lesenswert?

Kick schrieb:
> Was sind die Vorteile cyblord?

Kommt drauf an was du meinst.

VB6-->VS2010: .NET Unterstützung. Deine alten VB6 Programme bekommen 
schnell mal Kompatibilitätsprobleme auf neueren Kisten. Kannste drauf 
warten. Dann natürlich die Entwicklungsoberfläche. Scho VS2010 kommt in 
Sachen Features mit Eclipse nicht mit, aber bei VB6 ists ja noch 
schlimmer. Und Tools werden leider immer wichtiger. Ob Unit-Tests oder 
Repositories ala GIT,SVN usw.

Sonstige Basics:
Geschwindigkeit und Größe interessieren doch heute nicht mehr. Da hat 
man andere Probleme. Multithreading z.B. Und bei den meisten alten und 
modernen Basic Dialekten fehlt die professionelle Unterstützung wie gute 
IDE, Tools usw vollständig. Dazu kommt eben dass du dich da drüber mit 
niemandem Unterhalten kannst. Im Pro Umfeld ein No-Go. Jeder Pro 
Entwickler kann mit C, C++,C#, Java, Ruby und noch andere mehr, was 
anfangen. Diese Sprachen werden von einer breiten Entwicklergemeinde 
benutzt und sind großteils standardisiert. Teilweise über internationale 
Gremien (JCP).
Das geht nur wenn man komplett alleine vor sich hin wurschelt. Sobald da 
ein Mann mehr drüber gucken muss, ist es aus.
Beim Hobby geht das alles, kein Problem. Mein Augenmerk liegt auf der 
prof. Nutzung. Und da geht es nicht.

Das gleiche Problem hast du mit Visual Basic im übrigen auch immer. In 
welchem prof. Umfeld wird das eingesetzt? Da wirst du höchstens 
ausgelacht wenn du damit ankommst. Auch wenn sich Visual C# nicht extrem 
davon unterscheidet, haben sich halt c-artige Sprachkonstrukte 
durchgesetzt.

@Karsten:
Ach dich gibts ja auch noch. Tu uns doch den gefallen und halt dich raus 
wenn Erwachsene reden ja?


gruß cyblord

von Kick (Gast)


Lesenswert?

Da gebe ich dir vollkommen recht cyblord!

Nur, DU schaust es professionell an, und sonnst wer von diesen Jungs die 
es hier posten?

Frage vom Karsten deutete darauf hin dass er kein Profi ist, zumindest 
ned im Bereich vom VB.
Dh. eine einfache Lösung war gefragt.
Gut, gute Lösungen sind gegeben worden, er kam trotzdem ned zu Recht, 
deswegen schrieb i, er soll sich bisserl mehr bemühen.

Aber, wir haben ihm, auch wenn es keine Profi prg's waren, geholfen.
Sei mir bitte ned böse, aber du hast permanent nur gscheit gredet!

Was auch gut ist, die Leute sollen es wissen das es was besser gibt.
Vielleicht zeigt der Karsten auch die Interessen daran.
Nur, wie du es e scho angesprochen hast, hier sind Hobby Bastler.
Die wollen was simples, ohne viel Aufwand.

Man bietet hier seine Meinungen und Lösungen an, auch Kritiken.
Aber nicht, NUR Kritik! ;)

Paar Bsp's tun immer gut ;)

lg
Kick

von Karsten (Gast)


Lesenswert?

Vielleicht wirst Du ja auch irgendwann einmal erwachsen - eines fernen 
Tages. Bei totaler Abwesenheit von sozialer Kompetenz ist das aber eher 
nicht zu erwarten. Schade, dass Leute wie Du es immer wieder schaffen, 
Threads kaputt zu machen. Immerhin wurde mir trotz Deines Schwachsinns 
geholfen und ich habe meine Lösung. Wenn dies ein Moderator liest: Bitte 
den gesamten Thread löschen, damit der Nachwelt cyblord und das alles 
hier erspart bleibt.

von Cyblord -. (cyblord)


Lesenswert?

Das Problem war hier doch gar nicht die Sprache, hab da doch gar nix 
dagegen gesagt. Das Problem ist, dass man vorher die Sprache mal bissle 
lernen sollte. Das ist er eigentlich springende Punkt. Visual Basic ist 
an sich nicht schlecht und man kann damit, wie du richtig sagst, auch 
praktisch alles machen.

@Karsten:
Das war kein Schwachsinn sondern gut gemeinte Ratschläge. Du wolltest es 
nur nicht hören.

gruß cyblord

von Kick (Gast)


Lesenswert?

Stimmt vollkommen!

von Karsten (Gast)


Lesenswert?

Kein einziger Ratschlag kam von cyblord.
Und von 'gut gemeint' ist nichts zu sehen.

von Werner P. (Gast)


Lesenswert?

cyblord ---- schrieb:
> Das gleiche Problem hast du mit Visual Basic im übrigen auch immer. In
> welchem prof. Umfeld wird das eingesetzt? Da wirst du höchstens
> ausgelacht wenn du damit ankommst. Auch wenn sich Visual C# nicht extrem
> davon unterscheidet, haben sich halt c-artige Sprachkonstrukte
> durchgesetzt.

Wir haben vor Jahren (ca. 10) für eine Spedition eine Software mit VB6 
programmiert.

Dem Anwender ist es völlig egal in welcher Sprache programmiert wurde. 
Für den zählt nur das Ergebnis.

Und, das Programm läuft heute noch. Auch unter Windows 7.

von Klaus D. (kolisson)


Lesenswert?

Gruss und Kuss

von Hannes L. (hannes)


Lesenswert?

Klaus De lisson schrieb:
> Gruss und Kuss

Jou... ;-))

...

von Paul Baumann (Gast)


Lesenswert?

Alfounso schrob:
>"push"

Su bringst den Stack durcheinander.

So:POP

RJMP Paul
;-)

von Klaus D. (kolisson)


Lesenswert?

Stack Overflow Terror!

k.

von Karsten (Gast)


Lesenswert?

Danke an alle, die geholfen haben und an alle, die helfen wollten.
Ich habe - trotz cyblord - inzwischen beide Richtungen im Griff.
PC <--> AVR
Zahlen und Texte.
Und ich habe mir eine Version mit VisualBasic6 geschrieben und eine zum 
Vergleich mit VisualBasic10.
Läuft jetzt alles  :-) Damit bin ich für meine Projekte gerüstet.

von Cyblord -. (cyblord)


Lesenswert?

Karsten schrieb:
> Danke an alle, die geholfen haben und an alle, die helfen wollten.
> Ich habe - trotz cyblord - inzwischen beide Richtungen im Griff.

Tja Karsten, ich habe dir nur gesagt wie es ist. Du hast a.) keine 
Ahnung und bist b.) Dreist. Wenn du mit so einer einfachen Wahrheit 
nicht klar kommst dann tut mir das leid, aber da musst du irgendwie 
durch... Vielleicht kommst du ja noch drüber hinweg.

Hast du jetzt eigentlich in 2 Monaten programmieren gelernt oder nur 
endlich nen Dummen gefunden der das für dich macht?

gruß cyblord

von Karsten (Gast)


Lesenswert?

weder noch..   Du schätzt mich einfach nur vollkommen falsch ein denn 
a.) kann ich wahrscheinlich besser programmieren als 80% der Teilnehmer 
hier im Forum und b.) sollte man nicht davon ausgehen wenn jemand an 
einer Stelle eine Frage hat, dass er dann auf allen Gebieten dumm ist. 
Ist ja schön wenn wenigstens DU allwissend bist. Ja - ich habe mir das 
jetzt selbst zusammen gebaut. Keine fertige Lösung gefunden und auch 
keinen gefunden, der das für mich gemacht hat. War ja auch nie meine 
Intention.

von Karl H. (kbuchegg)


Lesenswert?

cyblord - lass es gut sein. Bringt nichts.

von was? (Gast)


Lesenswert?

cyblord ---- schrieb:
> VB6-->VS2010: .NET Unterstützung. Deine alten VB6 Programme bekommen
> schnell mal Kompatibilitätsprobleme auf neueren Kisten.

http://msdn.microsoft.com/en-us/vstudio/ms788708

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.