ReadTo VB.net Maximal 4 Zeichen?

Gast #2152088
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
Gast #2152108
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.
Gast #2152142
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
Gast #2152155
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren