vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 21.08.12 17:38

Hallo ich habe volgendes Problem und zwar möchte ich ein Array befüllen die daten kommen von der RS232,
egal wie es drehe und wende ich schaffe es nicht, meine Daten in den Array abzu legen ...




For I As Integer = 1 To .BytesToRead
Dim ByteArray() As Byte = {.BaseStream.ReadByte}
PufferString = CRC.ByteToHex(ByteArray)
 
Dim Motoren() As String ' da sollten die daten von pufferstring stehen !!!
Motoren.add(PufferString, 0, PufferString.Length - 1)
Me.Invoke(Datenanzeigen)
Next
Für einen Kleinen Tip wäre ich schon Dankbar ...

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Vento
Datum: 21.08.12 18:22

Was hast du denn schon getestet und was passiert?

Unabhängig davon: Wieso deklarierst du dein Array innerhalb einer For-Next Schleife? Dann wird es mit jedem Durchlauf neu erzeugt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 21.08.12 18:47

hm weil er über die Invoke ja erst zur adresse spring und dann wieder zurück in die For-Next Schleife, würde ich den aufruch nach der for next schleife machen würde ich ja erst recht keine daten bekommen da die daten ja byte für byte übertragen werden und nch dem ende der For-Next Schleife ja die Variable PufferString lehr ist,oder habe ich da einen denk Fehler ...

so in der form wie es hir dargestellt habe geht es über haupt nicht, fehler kein xxx.add kein member von string ..

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: keco
Datum: 21.08.12 19:59

Verwende eine generische Liste, wenn du Elemente zu einer Auflistung hinzufügen willst.
Dim myList As New List(Of String)
myList.Add("...")
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 22.08.12 17:19

ok da hab ich das selbe problem wie mit dem Array, er liest den ersten wert dann beim nächsten mal ersetzt er ihn ... !

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: sv00010
Datum: 22.08.12 18:22

Dim Motoren() As String ' da sollten die daten von pufferstring stehen !!!
Wenn das das Array ist, in welchem die Werte gespeichert werden sollen, dann muss es natürlich vor
der Schleife und nicht darin deklariert werden.
0

Beitrag wurde zuletzt am 22.08.12 um 18:23:29 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Vento
Datum: 22.08.12 18:29

Mein reden. Zur Verständlichkeit würde ich einfach mal einen Haltepunkt setzen und anschauen wie die Variablen, Arrays usw. nach jedem Schritt aussehen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 22.08.12 18:29

ok ich habs jetz mal so versucht da bekomme ich einen Fehler der Sagt das ich auserhalb des Index Liege, was ich aber erlich nicht verstehe ...


Dim ByteIn() As Byte
Dim ByteInII() As Byte
empfange :
         Dim nbToRead As Integer = .BytesToRead
         ReDim ByteIn(nbToRead)
         .Read(ByteIn, 0, nbToRead)
         PufferString = CRC.ByteToHex(ByteIn)
 
         Me.Invoke(Datenanzeigen)
Die Ausagabe :
        ByteInII = ByteIn
        Dim Id As String = CRC.Hex2(ByteInII(3))
        TextBox7.Text = Id
 
        TextBox1.AppendText(PufferString)
        TextBox1.ScrollToCaret()
Kann mir mal da bitte einer Weiterhelfen ?????

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 22.08.12 18:44

ok das sehe ich ein, macht keinen sinn,
jedesmal die Variable neu zu Deklarieren,
andere frage zu melchen member geöhrt .add

wie ich ja schon geschieben habe Läuft es so garnicht...

fehler :
"add" ist kein Member von "String"

???

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 22.08.12 19:20

ok ich bin schon ein stück weiter..
ich habs jetzt so gemacht ...

Empfangen:
                        Dim nbToRead As Integer = .BytesToRead
                        ReDim ByteIn(nbToRead)
                        .Read(ByteIn, 0, nbToRead)
                        PufferString = CRC.ByteToHex(ByteIn)
                        Me.Invoke(Datenanzeigen)
Ausgabe:
        ByteInII = ByteIn
        Dim Id As String = CRC.Hex2(ByteInII(3))
        TextBox7.Text = Id
 
        TextBox1.AppendText(PufferString) '(PufferString)       ' Text am Ende _
          hinzufügen
        TextBox1.ScrollToCaret() ' Scrollen bis zum neuen Text
jetzt bekomme ich den Fehler das er auserhalb des Index ist ...

wenn ich aber mit dem Debuger das ganze kontroliere ,
klappt alles und es kommt keine fehler meldung ???

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: keco
Datum: 22.08.12 19:56

Wieso ignorierst du meinen Beitrag? Da steht, dass du eine Liste verwenden kannst, bei der du mittels .Add deine neuen Elemente hinzufügen kannst.
Dim Motoren As New List(Of String)
Motoren.Add(PufferString)
... oder so.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: sv00010
Datum: 22.08.12 21:05

ByteInII = ByteIn
Mir ist gerade mal etwas aufgefallen.
Arrays sind Verweistypen. Das bedeutet die obrige Zuweisung macht wahrscheinlich nicht das was
du von ihr erwartest.
Es werden nur die Verweise kopiert, was bedeutet, dass wenn du nach der Zuweisung etwas in
ByteInII änderst, es sich auch in ByteIn ändert.
Wenn das nicht so sein soll, was ich vermute, dann musst du das Array kopieren oder klonen, statt es zuzuweisen.
Array.Copy(ByteIn, ByteInII, ByteIn.Length)
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 22.08.12 21:22

hallo zu keco :
ich habs nicht überlesen oder Ignoriert, natülich habe ich es Veresucht, es geht auch, aber es nicht meine absicht nur irgentwelche dinge zu kopieren, ich will einfach nur wissen was ich da falsch mache ...

ok das leuchte mir ein ...

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array über RS232 füllen 
Autor: Michael Profitlich
Datum: 25.08.12 01:17

sollte ich mal schreiben für das alles gut sein soll...
also ich habe einen kontroler über den ich vier motoren separat ansteuern kann
und zwaz über modbus, ich sende ein telegramm 8byte lang und erhalte als antwort ein telegramm
von 49byte, diese möchte ich nun in textboxen darstellen ...

das ganze dient dazu einen kreuztisch anzu steuern ...

so mein problem ist es die empfangen daten von der rs232 zu verarbeiten und darzustellen !!!

Michael MP Profitlich

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel