|
| |

VB.NET - Ein- und Umsteiger| Re: Array über Schleife füllen und dann per Serialport senden | |  | | Autor: Preisser | | Datum: 05.12.11 09:04 |
| Hallo,
also, beim Senden von Daten werden immer Bytes gesendet (8 Bit, Wert von 0-255). Strings dagegen bestehen aus Unicode-Characters (16 Bit pro Zeichen), die unter Verwendung einer bestimmten Kodierung (z.B. ASCII, UTF-8, W-1252 usw.) in Bytes konvertiert werden können.
Der SerialPort verwendet beim Senden standardmäßig ASCII.
Soweit ich dich verstehe, hast du in einem String Bytewerte vorliegen, die als Hex-Zahlen dargestellt sind, und beim Senden sollen Bytes mit den dargestellten Werten gesendet werden.
Wenn du jedoch direkt den String mit SerialPort1.Write(...) sendest, wird der String unter Verwendung von ASCII in Bytes umgewandelt.
Bei deinem Beispielstring "01060003" bedeutet dies, dass das erste Zeichen, also "0", in ein Byte umgewandelt wird - aus einer ASCII-Tabelle kann man sehen, dass das Zeichen "0" durch ein Byte mit dem Hex-Wert 30 dargestellt wird; das Zeichen "1" durch den Wert 31, "6" durch den Wert 36 usw. Deshalb entsteht logischerweise die Bytefolge (Hex) 30, 31, 30, 36, ...
Da du anscheinend aber die Bytes senden willst, deren Werte als Hex-Zahlen im String dargestellt werden, müsstest du stattdessen die Zahlen im String als Hex-Zahl parsen, um sie zu versenden (z.B. per Convert.ToByte()).
Dim byteBuffer As Byte() = New Byte(0) {} 'Buffer mit 1 Byte
For x = 0 To Telegramm.Length \ 2 - 1
byteBuffer(0) = Convert.ToByte(Telegramm.Substring(x * 2, 2), _
16)
SerialPort1.Write(byteBuffer, 0, byteBuffer.Length)
NextEffizienter wäre es jedoch, die Daten gleich in einem Byte-Array zu haben (und dann z.B. dieses komplett zu versenden statt die einzelnen Bytes in einer Schleife), da man dann nicht extra die Strings als Zahlen parsen muss.
Beitrag wurde zuletzt am 05.12.11 um 09:25:03 editiert. |  |
 | 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 Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
| |
|
Copyright ©2000-2025 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
|
|