So, nachdem ich mir jetzt gerade die Nacht mit dem lustigen Ratespiel "Was macht ein 7650, wenn man mit ihm Bluetooth reden will?" um die Ohren geschlagen habe, glaube ich besser zu verstehen, was passiert. Die Kurzform ist: die Bluetooth-Implementierung im 7650 ist krank, krank, krank!
:flop:
Für die etwas längere Form braucht's noch eine kleine Erklärung vorab (sorry an die, die das alles schon wissen): bei seriellen Verbindungen kann jede Bluetooth-Suite einen COM-Port als Client oder als Host angelegen - bei der 3COM-Software sieht man das recht schön unter "Extras -> COM-Anschlüsse"
Bei einem Host-COM-Port lauscht die Bluetooth-Suite auf ankommende Bluetooth-Verbindungen und schiebt die Daten dann an den COM-Port weiter.
Bei einem Client-COM-Port lauscht die Suite hingegen am COM-Port selbst, und wenn da Daten ankommen, baut sie eine Bluetooth-Verbindung auf (nach eventueller Rückfrage, an welches Gerät) und schickt die Daten dann per Funk weg.
Ende der Vorbemerkung.
Der einfache Weg wäre nun gewesen, im 7650 einen brauchbaren Host einzubauen, und die Nokia-7650-PC-Suite dann einfach auf einen Client-COM-Port schreiben zu lassen und somit ganz simpel bei Bedarf eine Bluetooth-Verbindung aufzubauen. Man hätte sich sogar den blöden mRouter komplett sparen können.
Aber NEIN, das war Nokia doch viiiiieeeeellll zu einfach. Irgendein Held der Programmierung bei Nokia dachte sich wohl, es wäre doch viel lustiger, Host und Client zu vertauschen - der Client ist also im 7650, der Host auf dem PC!
:flop:
Was für Konsequenzen hat das?
1. Man braucht jetzt auf dem PC ein Programm, das ständig am Host-COM-Port lauscht. Das ist eben der allseits beliebte, bescheuerte mRouter.
2. Da nur ein Client eine Verbindung initiieren kann, muss also das 7650 (wo der Client ja jetzt ist) den "ersten Schritt" tun.
Naja, theoretisch zumindest. Ich weiß nicht, was daran so tragisch gewesen wäre, im 7650 einen Menüpunkt "Serielle Verbindung herstellen" einzubauen. Nokia wollte das anscheinend nicht - und jetzt wird's RICHTIG krank!
Wie kriegt man also das 7650 dazu, eine Verbindung zu initiieren, wenn man keinen Menüpunkt dafür hat? Naja, dachte sich derselbe Programmierer wie oben, wir haben ja Bluetooth. Dann bauen wir eben doch einen kleinen Host in's 7650 ein - aber keinen, der einfach so einen serielle Verbindungswunsch von einem Client akzeptieren würde, das wäre ja zu einfach. Nein, der 7650-Host weist jeden Verbindungswunsch einfah umgehend ab, meldet das aber dem eingebauten 7650-Client, der dann seinerseits einen neuen Verbindungswunsch an den Host auf der PC-Seite schickt!
Sagte ich schon, dass das krank, krank, krank ist?
Das erklärt in der Widcomm-Suite die Fehlermeldung, die ich jedesmal kriege, wenn ich eine Verbindung aufbauen will: das 7650 weist den Verbindungswunsch halt einfach ab. Trotzdem steht danach eine Verbindung - allerdings die vom 7650-Client initiierte.
Konkrete Folgerungen daraus:
- die Bluetooth-Suites auf'm PC sind unschuldig an dem ganzen Stress.
- im mRouter sollte nur der COM-Port, den die Bluetooth-Suite als Host-Anschluss verwendet, angekreuzt sein.
- zum Aufbauen der Verbindung genügt es, mit einem beliebigen Programm irgendwas auf denjenigen COM-Port zu schreiben, den die Bluetooth-Suite als Client eingerichtet (und mit dem 7650 verknüpft) hat. Bei mir ist das COM3, ich mache also schlicht im DOS-Fenster ein
echo xxx > com3
und nach ein paar Sekunden zeigt mir das mRouter-Symbol eine Verbindung auf COM4(!), nämlich dem Host-COM-Port, an. Das ist die bisher einfachste Möglichkeit, die ich gefunden habe.
So, jetzt geh' ich in's Bett und träume von blauen Zähnen...
Frohe Weihnachten
Daniel