INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serieller Empfang mit Timeout



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

04.11.2009, 17:44 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2009 18:20 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Serieller Empfang mit Timeout
Für die Synchronisation gibt es im Wesentlichen 2 Möglichkeiten:
a) Der Sender, der die 62 Byte sendet, arbeite als Slave. D.h er sendet jedes Paket nur nach Aufforderung, und Du liest dann genau 62 Byte ein. Der Vorteil ist, daß der Slave dann jedes Byte von 0..255 senden darf.
b) Der Sender sendet frei ohne Aufforderung alle 250ms. Dann muß das Ende eines Paketes durch ein besonderes Byte, genannt "TermChar", markiert sein. Standard ist n = 0xA. Das hat aber eine gravierende Einschränkung zur Folge, denn TermChar darf natülich nicht im normalen Datenstrom vorkommen. Alle Zahlen müssen ASCII-Codiert übertragen werden, d.h für ein Zahlenbyte, z.B Dezimal "255", muß "FF" gesendet werden, also 2 ASCII-Zeichen.
Die Einstellung zu b) wäre: End Read on TermChar aktivieren, zu lesende Bytes größer als 62 (Voreinstellung 1000 kann gelassen werden), Timeout gößere als 250 (10000 kann gelassen werden)

Wenn Du aber b) nimmst und Dein Datenstrom keinen Termchar enthält und das auch nicht von Dir geändert werden aknn, dann ist guter Rat teuer

Edit
@Jens
Zitat:wenn dein Paket immer 62 Bytes groß ist, dann lies doch immer 62 Zeichen aus, notfalls halt mit größerem Time-Out.
Wie ich schon sagte, funktioniert das sicher nur im Slave-Modus. Ansonsten kann es passieren, daß man zu Beginn der Übertragun ab dem 23. byte in der Datenstom hineinhört und bis zum 22. Byte des nächsten Paketes liest. Das wiederholt sich dann auf immer und ewig.

Aber mit zuätzlicher Intelligenz ist die Synchronisierung machbar. Z.B immer nur 1 byte einlesen, Timeaout kleiner als die Pause zwischen den Datenpaketen einstellen, und wenn es zum Timeut kommt, das als Ende eines Datenpaketes erkennen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Serieller Empfang mit Timeout - marc10k - 04.11.2009, 16:09
Serieller Empfang mit Timeout - Achim - 04.11.2009, 16:21
Serieller Empfang mit Timeout - jg - 04.11.2009, 16:21
Serieller Empfang mit Timeout - Lucki - 04.11.2009 17:44
Serieller Empfang mit Timeout - marc10k - 05.11.2009, 08:40
Serieller Empfang mit Timeout - jg - 05.11.2009, 08:56
Serieller Empfang mit Timeout - Lucki - 05.11.2009, 09:36

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Überlauffehler bei serieller Schnittstelle DominikPl 14 11.207 29.05.2018 11:51
Letzter Beitrag: Kiesch
  Polling über USB RAW - Timeout funktioniert nicht MirkoB 3 5.074 06.09.2017 15:18
Letzter Beitrag: MirkoB
  Fehlermeldung bei serieller Schnittstelle Lab-Girl 3 5.967 02.02.2016 17:12
Letzter Beitrag: IchSelbst
  TimeOut error 6101 patriote00 15 13.819 18.12.2015 14:55
Letzter Beitrag: patriote00
  Synchrone Datenerfassung von Serieller Schnittstelle und DAQ darkbeppo 5 7.035 17.12.2014 12:46
Letzter Beitrag: GerdW
  VISA: Timeout Error (1073807339) TobSTAR 4 9.575 03.07.2014 09:22
Letzter Beitrag: TobSTAR

Gehe zu: