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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.