24.10.2013 7 Tage im Oktober Tag 4. Katastrophentag. Fing eigentlich ganz flüssig an. Ich beschloss die Verbindung zwischen CBTBlue (Bluetooth Empfang) und CBTSession (Rennlogik) zu erstellen. Die Klasse heißt CBTCU und regelt die Kommunikation mit der CU. Dazu verwaltet sie eine Schlange von Abfragen. Warum eine Schlange, warum kein Huhn oder Pferd ? Das liegt darin, dass es zwei Arten von Abfragen gibt. Die eine zyklisch und sooft wie möglich um die CU zu fragen ob es denn eine Statusänderung gibt. Und die anderen, die der Versionsabfrage dienen oder zum setzen von Parametern. Das passiert irgendwann mal, dann wenn mans braucht. Damit die Abfragen nicht wild durcheinander galoppieren und die eine Gackert, bevor die andere fertig ist, wird jede Abfrage in eine Schlange geschrieben und diese dann in Seelenruhe abgearbeitet. Sollte eine Abfrage abgehandelt worden sein und die Schlange leer sein, so wird gleich eine neue Statusabfrage abgeschickt. Die Abfragen haben eine einen Klasse CBTTask. Die Klasse handelt den ganzen Transfer ab. Sie sendet ihren "Inhalt" über CBTBlue und wartet auf eine Antwort. Sollte sie nicht rechtzeitig eintreffen erzeugt CBTTask einen Timeout. Ansonsten analysiert sie die Antwort und meldet entsprechend einen Fehler oder OK. Die Routinen waren in etwa 4 Stunden geschrieben und dann begann der Test. Seitdem suche ich für den Grund, warum die Abfragen sehr sehr langsam sind. Nach einiger Zeit läuft die Übertragung plötzlich schnell. Keine Ahnung warum. Ich geb's auf. Ich muss da drüber schlafen. Wahrscheinlich habe ich was ganz Einfaches übersehen. Das Gute daran ist, dass 7 Stunden Programmieren/Fehlersuchen nur eine halbe Stunde Schreiben gegenüber steht. Das Schlechte daran, nun das scheint offensichtlich. |