www.mikrocontroller.net

Forum: PC-Programmierung Windows CE, Serielle Schnitstelle, TIMEOUTs


Autor: Johannes Pandis (hdcdst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zuerst einmal hallo an die Foreums Gemeinde, weil dies mein erster 
Beitrag ist.

Ich programmiere auf einem ARM Pannel PC unter Windows CE 5.0. Mein 
Programm muss über die serielle Schnittstelle mit einer Hardware 
kommunizieren, welche alle 25 milli sekunden ein Paket von 11 Bytes mit 
einer übertragungsrate von 9600 baud versendet.
Es geht darum, mich mit dem externen Hardwaremodul zu synchronisieren, 
und auch übertraguns fehler festzustellen.

Die Lösung, welche ich zunächst gefunden habe besteht den Timeout 
feature des windows ce Com-Api's zu verwenden.

Also ich setzte ReadTotalTimeoutConstant auf 30, ReadIntervalTimeout auf 
5 und ReadTotalTimeoutMultiplier auf 0.

Zunächst funktionier mit diesen Werten alles recht einwandfrei, aber 
wenn ich zB. ReadTotalTimeoutConstant auf 70 setze bekomme ich immer 
wieder Timeout-fehler (ReadFile gibt weniger als 11 Bytes als empfangen 
zurück).

Ich habe mich etwas mit den Werten gespielt, und zB. 
ReadTotalTimeoutConstant auf 75 und ReadIntervalTimeout auf 25 gesetzt 
funktionier zum Beispiel wieder.

Zunächst könnte ich mich mit der Tatsache, dass die 30/5 kombination 
welche ich als erstes angegeben habe einwandfrei zu funktionieren 
scheint, zufrieden geben, es kann aber dennoch sein, dass in Zukunft das 
Protokoll geändert wird, und die 30/5 kombination nichtmehr angebracht 
ist, und mir kommt es einfach seltsam vor, dass es bei größeren 
Timeoutwerten nicht funktioniert.

Ich habe jetzt schon längere Zeit im Internet gesucht, aber ich habe 
noch keinerlei angaben gefunden, dass jemand das gleiche, oder ein 
ähnliches Problem gehabt hätte.
Ist vieleicht hier igendjemandem bekannt, ob gewisse kombinationen von 
Timeoutwerten und übertragungsraten und zu lesenden Byte angaben 
problematisch ist.

vielen Dank im Voraus für etwaige Antworten.

mfg.
HdcDst.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.