Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[C++ / Windows] Bluetooth seriele poort achterhalen

Pagina: 1
Acties:
  • 161 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste mede-tweakers...Ik zit met het volgende probleem:

Wij zijn bezig een applicatie te ontwikkelen dat van meerdere medische apparaten in real-time data binnenhaalt. Elk apparaat wordt gewoon in Windows aangemeld en krijgt vervolgens 2 COM-poorten toegewezen (inkomend/uitgaand). Inkomend is volledig overbodig... alle data kunnen we uitlezen op de uitgaande COM-poort.

Probleem is als volgt:
Wij willen het gebruikersgemak van de software verhogen door een actuele lijst van vebonden medische bluetooth-apparaten te tonen i.p.v. handmatig een COM-poort selecteren.

Een zoektocht in het register leek het volgende op te leveren:

In HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM staan de seriele poorten. BT-poorten zijn aangegeven als \Device\BthModem0, \Device\BthModem1 etc.
Onder HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT staan verscheidene sleutels met bijvoorbeeld “Nonin_Medical_Inc._500844” als waarde (naam device)

Verder zoekend in het register:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHMODEM\Enum
Hier zijn sleutels te vinden als: BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}\7&2c332dbf&0&00A0960DC46E_C00000002, oftewel {ID1}\ID2.

Ook vonden we toen:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\LocalServices \{ID1}\ GETAL
met in de sleutel een key "ServiceName" met waarde "Nonin_Medical_Inc._XXXXXXX" te vinden.

Onder HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\BTHENUM\{ID1}\ ID2 \Device Parameters
is in de key "PortName" een waarde als COM10 te vinden.

Voila! Probleem opgelost. _/-\o_ Zodra we echter meerdere apparaten aansluiten gaat dit verhaal niet meer op, en staan in het register soms ineens de inkomende COM-poorten en bij andere wel de uitgaande.

Op MSDN is niks te ontdekken over de mapping van bluetooth-apparaten aan COM-poorten... Google weet een hoop over dit verhaal te vertellen betrekkende Windows CE, maar niet over 2000/XP/Vista.

Toch moet het te achterhalen zijn, want de windows-bluetooth verkenner kan je zo de apparaatnamen tonen met bijbehorende COM-poorten.

Wie oh wie heeft enig idee waar ik de juiste mapping kan achterhalen..

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Dat is werk voor de SetupAPI. Niet in de war raken van de naam, overigens.
Een aanverwante nuttige API is de Configuration Manager API.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein