Visual Basic 6- Probleme mit der seriellen Schnittstelle- Im Unterforum Off-Topic - Beschreibung: Alles andere was nirgendwo reinpasst
Autor |
Visual Basic 6- Probleme mit der seriellen Schnittstelle- |
|
|
|
|
BID = 536756
Endhülse Neu hier
Beiträge: 38 Wohnort: Nms
|
|
Hallo.
Ich sende von meiner C-Control Daten an meinen Pc.
Wenn ich ein Byte sende verarbeite ich es in VB6.
Also: 1Byte (byteport[1])-> 8 Schaltzustände, zB Schalter (1-8)
Schalteränderungen werden sofort am Bildschirm angezeigt, das klappt.
Wenn ich nun ein zweites Byte(byteport[2]) sende um weitere 8 Schaltzustände, zB LED (9-16) zu erhalten, taucht mein Problem auf.
Die Daten des 2ten Bytes überschreiben die Werte des ersten Bytes.
mein Problem: Die Daten die von MScomm1.input kommen, müssen in zwei Variablen geschrieben werden.
Wie wird das programmiert?
Tipps, Links, Codes...
ich bin für alles dankbar |
|
BID = 536769
HeinzVogel Schreibmaschine
Beiträge: 1580 Wohnort: Welt
|
|
wo problem:
- variablen definieren
- werte einlesen
- weiterverarbeiten
poste doch mal das was du bisher hast, dann ist das ganze auch nachvollziehbarer
_________________
Nein, Frau Bundeskanzlerin. Dezidiert Nein. |
|
BID = 536779
Endhülse Neu hier
Beiträge: 38 Wohnort: Nms
|
Hier ein wenig Code.
Mit diesem Code kann ich das erste Byte auslesen (Variable Buffer).
Dann wandle ich das Byte in Bits um und zeige diese in VB an.
Wenn sich das Byte ändern sollte (Schalter an/aus)wird es sofort angezeigt.
Soweit so gut.
Nun kommt aber das zweite Byte (Ausgänge: Bit 9-16)
welches das erste Byte überschreibt... (kann man mit folgen?????)
Also brauche ich doch eine 2te Variable -> Buffer2 <- ,richtig!?
Public Sub MSComm1_OnComm()
Dim Buffer As Byte 'Gesendeter Wert
Dim Wert As String
Select Case MSComm1.CommEvent
Case comOverrun
MsgBox "Overrun"
Case comRxOver
MsgBox "RxOver"
Case comEvReceive
'Auswertung
Buffer = Asc(MSComm1.Input) 'Werte von der CControl in ASC umwandeln
''''''''''''''''''''''''''''''''''''''''''''''''
ByteWert = Buffer
Dim NoNull As Boolean 'Byte lesen
Text5.Text = GetBits(Val(ByteWert), NoNull, 16, BTT)
Text6.Text = Buffer 'KONTROLLANZEIGE
'''''''''''''''''''''''''''''''''''''''''''''''''''
'Eingänge auslesen und anzeigen
txt01.Text = Right(Text5, 1)
txt02.Text = Mid(Text5, 7, 1)
txt03.Text = Mid(Text5, 6, 1)
txt04.Text = Mid(Text5, 5, 1)
txt05.Text = Mid(Text5, 4, 1)
txt06.Text = Mid(Text5, 3, 1)
txt07.Text = Mid(Text5, 2, 1)
txt08.Text = Mid(Text5, 1, 1)
'Ausgänge auslesen und anzeigen
txt09.Text = Right(Text5, 1)
txt10.Text = Mid(Text5, 7, 1)
txt11.Text = Mid(Text5, 6, 1)
txt12.Text = Mid(Text5, 5, 1)
txt13.Text = Mid(Text5, 4, 1)
txt14.Text = Mid(Text5, 3, 1)
txt15.Text = Mid(Text5, 2, 1)
txt16.Text = Mid(Text5, 1, 1)
End Select
|
BID = 536807
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Mit deinem Kode kann man leider nicht sonderlich viel anfangen.
Normalerweise schickt man, wenn man nicht nur ein Byte schickt, nicht einfach beide Bytes nacheinander, sondern verpackt sie in ein Paket. Da gibts dann ein Startbyte, ein Stoppbyte und ggf. eine Prüfsumme oder ähnliches. Sodass das auswertende Programm die Daten auch richtig zuordnen kann.
Nun, da du asynchron arbeitest, und schon jedes ankommende Byte ein Event auslöst, musst du dir, z.B. statisch merken, was als nächstes zu tun ist.
Oder, du stellst die Schwelle zum Auslösen des Receiver-Events auf 2 Byte ein. Wenn du Glück hast, steht dort an der ersten Position auch das zuerst gesendete Byte - das muss aber nicht so sein. Damit die Daten dennoch richtig zugeordnet werden können, musst du dir ein entsprechendes Protokoll ausdenken. Das kann rein softwaretechnisch sein, oder du nutzt noch handshakeleitungen dazu.
_________________
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag heute wurden bisher 0 Beiträge verfasst © x sparkkelsputz Besucher : 182415961 Heute : 458 Gestern : 7490 Online : 286 28.11.2024 6:01 0 Besucher in den letzten 60 Sekunden ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0504419803619
|