| |
VB.NET - Ein- und UmsteigerArray ü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 | |
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. | |
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 | |
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("...") | |
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 | |
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. | |
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. | |
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 | |
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 | |
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 | |
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. | |
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 | |
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 | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
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
|
|