Serport RxBuffer Overrun

  • 1
  • 2
  • Page 1 of 2
jomixl
Benutzer
Avatar
Gender:
Posts: 225
Registered: 02 / 2008
Subject:

Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 12:06  ·  #1
Hallo Rolf,
ist es möglich beim Serport RxBuffer einen Überlauf zu detektieren?
also nur ein Flag, keine weitere Aktion.

mfg
Joachim
jomixl
Benutzer
Avatar
Gender:
Posts: 225
Registered: 02 / 2008
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 14:50  ·  #2
hallo,
hab jetz was gefunden,
PipeFull scheint den Überlauf anzuzeigen

Grüße
Joachim
jomixl
Benutzer
Avatar
Gender:
Posts: 225
Registered: 02 / 2008
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 16:03  ·  #3
nochmal,
hab mich wohl zu früh gefreut,
mit PipeFull(rxBuffer) lässt sich wohl kein Überlauf detektieren.
Gibt es da noch eine andere Möglichkeit?

Gruß Joachim
Harald_K
 
Avatar
 
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 17:58  ·  #4
du kannst die Variable _rxcount (byte) abfragen - da steht die Anzahl der Zeichen im Puffer drin. Wenn du deinen Puffer 1 Zeichen länger deklarierst als benötigt weißt du, daß wenn _rxcount genauso groß wie die pufferlänge ist ein Zeichen "verlorengegangen" ist -

ok, eigentlich ist es noch da, aber noch ein Zeichen ist dann wirklich verlorengegangen ...

ähnliches Prob gbs übrigens da schonmal:
topic.php?p=21735#real21735
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 18:19  ·  #5
Hallo Jo,

dieses overrun Problem ist grundsätzlich bei einer ser. Schnittstelle vorhanden.
Auch beim PC ist der Input Buffer nicht unendlich gross....

Dazu gab es schon immer diese Handshake Leitungen RTS, CTS etc.
Besser ist da ein kleines Handshake zu implementieren. Ein Sender schickt eine
bestimmte Anzahl von Daten und erwartet dann vom Empfänger ein ok, z.B. ACK
bevor er weitermachen kann. So machts der Rest der Welt :-)

Oder es werden Strings geschickt mit einem CR/LF am Ende wenn die Kommunikation
in ASCII erfolgt. Blind drauf losschiessen ist beim RS232 unhöflich....

rolf
jomixl
Benutzer
Avatar
Gender:
Posts: 225
Registered: 02 / 2008
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 19:12  ·  #6
Hallo zusammen,
das mit den Puffern und dem Handshake ist mir schon alles klar.
Ich hab gerade ein kleines Problem und da würde mir schon reichen wenn ich wüßte dass es von einem
Überlauf kommt.
was macht eigentlich der _rxcount bei einem Überlauf?
Pufferlänge ist bei mir 255

Gruß und Dank
Joachim
Harald_K
 
Avatar
 
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 09.11.2015 - 19:23  ·  #7
denke mal daß der einfach stehenbleibt ...

bei 255er Pufferlänge hast du mit nem Byte natürlich keine Chance - aber wenn du sagst, 255 ist Überlauf, dann hast du immer noch 254 Zeichen effektiv nutzbaren Puffer, und das sollte ja wohl reichen ...
AVRfan
Benutzer
Avatar
Gender: n/a
Age: 68
Posts: 16
Registered: 11 / 2009
Subject:

Re: Serport RxBuffer Overrun

 · 
Posted: 10.11.2015 - 14:29  ·  #8
Hallo,
ein Overrun ist immer von Übel !!!
Egal wie sich ein System verhält, es gehen Zeichen verloren.
Da hilft es auch nicht viel zu wissen, dass ein Überlauf statt gefunden hat.
Ganz einfach, ein Overrun darf einfach nicht stattfinden.
Handshake, CRLF usw. hilft da viel weiter. Nicht die Symptome kurieren
wollen, sondern die Ursache beseitigen.
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   139   153 · Page-Gen-Time: 0.032518s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI