Forum: PC-Programmierung ReadTo VB.net Maximal 4 Zeichen?


von Basti (Gast)


Lesenswert?

Hallo,

ich hab nur ne kurze Frage...

Ist schon jemanden aufgefallen, dass man mit dem Serialport 
Steuerelement und beim Empfangen von Zeichen mit der ReadTo Funktion, 
maximal 4 Zeichen als Abschluss verwenden kann?

Das ganze sieht dann so aus:

buffer = Me.SerialPort.ReadTo("XEND") & vbNewLine

so funktioniert es Problemlos... der Abschluss erfolgt hier bei XEND

aber

buffer = Me.SerialPort.ReadTo("XENDL") & vbNewLine

funktioniert nicht mehr... es liegt an dem 5. Buchstaben... mit 1,2,3 
oder 4 gehts...
Die MSDN hat dafür auch keinen Vermerk...



Warum das so wichtig ist?!

Ich sende Floatzahlen im Binärformat hin und her... die sind 4 Byte 
lang... die Chance das mal eine Floatzahl genau mein Endline ist, ist 
zwar sehr gering (wahrscheinlich 1 zu 2^32) aber immerhin Vorhanden...

Weiß jemand warum die Funktion sich so verhält... oder weiß jemand ne 
andere Lösung mit dem Zeichenkettenabschluss?

Schonmal danke für eure Hilfe...

Basti

von Peter II (Gast)


Lesenswert?

keine ahnung ich habe so eine funktion noch nie gebraucht. Ist es 
wirklich so schwern einfach byte-weise die daten zu lesen bis dein 
endezeichen auftaucht und dann die Daten zu verarbeiten?

Kann es eventuell daran liegen das du überhaupt kein "XENDL" sendest? 
Ich halte so ein fehler für wahrscheinlicher als das hier etwas an dem 
aufruf nicht stimmt.

von Basti (Gast)


Lesenswert?

das letzte schließ ich aus, weil ich das mit Readexisting oft genug 
kontrolliert habe... oder einfach mit ReadTo und 4 Zeichen... dann 
bleibt das L immer übrig... können auch andere Buchstabe sein.. egal

und zu erstens muss ich sagen... JA... da ich aus der C Ecke komme und 
mir das String Format noch nicht wirklich gut klar komme... muss mir das 
immer in nen Bytearray umwandeln, damit ich so ähnlich wie in C arbeiten 
kann...
Wenn ich da so halbprofessionell rumtüdel habe ich bedenken, dass das 
Ganze seine Performence verliert... arbeite mit 250k Baud und ner 
ZedGraph Controll...
Meine Prozessorlast liegt zur Zeit zwischen 80 und 90%...
ich hab einen i7 860 und das ZedGraph Controll schafft es irgendwie alle 
8 Kerne so sehr auszulasten das kaum noch reserven sind...

Egal, das ist nen anderes Thema

von Peter II (Gast)


Lesenswert?

Basti schrieb:
> Wenn ich da so halbprofessionell rumtüdel habe ich bedenken, dass das
> Ganze seine Performence verliert... arbeite mit 250k Baud und ner
> ZedGraph Controll...
> Meine Prozessorlast liegt zur Zeit zwischen 80 und 90%...
> ich hab einen i7 860 und das ZedGraph Controll schafft es irgendwie alle
> 8 Kerne so sehr auszulasten das kaum noch reserven sind...

dann hast du ein design fehler. 250k Baud sind 6.000 floats in der 
sekunde - das langweilt sich sogar ein P90.

Es macht auf kein sinn bei jedem neuen Wert die Grafig neu zu berechnen, 
es würde auch 1mal je sekunde reichen.

Wenn du aus der C ecke kommst, sollte dir doch klar sein das hier etwas 
nicht stimmt.

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.