On Oct 13, 2006, at 4:13 AM, Bubba Giles wrote: On Oct 12, 2006, at 11:36 PM, Ron Wagner wrote: Is there any way to kill the Bluetooth-PDA-Sync serial port? I am using the Bluetooth PacketLogger app to try to debug a service discovery protocol problem, but PacketLogger has a problem with parsing the Bluetooth-PDA-Sync response. When it gets to it's name it lists it as "(?)String is: Blue", then the next line is "DecodeAttributeList size oddly big 25397". I do have Bluetooth-PDA-Sync turned off in the Bluetooth pane of System Preferences.
Turning the Bluetooth-PDA-Sync service off does not actually remove the service, since it is a virtual serial port type service. All that does it make it unconnectable by external clients. They behave this way for a number of reasons I won't bore you with.
You could try doing this to temporarily remove the service:
1. Bluetooth Explorer.app->Local Device panel->Services Tab... look for the Bluetooth-PDA-Sync service entry:
0x0000 = 0x00010004, 0x0001 = { <1101> }, 0x0100 = "Bluetooth-PDA-Sync", 0x0004 = { { <0100> }, { <0003>, 0x03 } }, 0x0005 = { <1002> }, 0x0006 = { 0x656e, 0x006a, 0x0100 }, 0x0009 = { { <1101>, 0x0100 } }
2. Pass the value at key "0x0000" to a Bluetooth SDP API using a tool you've written, like this:
IOBluetoothRemoveServiceWithRecordHandle( 0x00010004 );
Of course, it will reappear when you restart the blued process, but it should be gone temporarily to help you debug your issue.
jason
Thanks to Jason and others who replied privately. Was able to kill the Bluetooth-PDA-Sync serial port.
I was looking for the Mac OS X bluetooth code in the Darwin sources, but apparently it isn't part of Darwin?
The specific question I was looking to answer from the sources has to do with Service Discovery Protocol. I have a device which searches for a named service which is supplied from my software on the Mac. From what I see in PacketLogger, the device is specifying the attribute list as {0100, 0004} for the ServiceSearchAttributeRequest, which is wrong according to the spec as I read it. The spec specifies that the attributes must be in ascending order.
I have a prototype of the same device with firmware written by another party. It correctly specifies the attribute list as {0001,0004,0100} and works fine. The prototype specifies one more attribute than the production model, but that should just limit the search further. The only other difference I can see is that the ServiceSearchPattern of the request is being specified with {00001101} on the new device, and {1101} on the old device that works. These should be equivalent, correct?
If the Mac OS X Bluetooth is part of Darwin could someone point me to it, or if not, could someone with knowledge of the source tell me if the attribute list out of order would cause a complete response not to be returned from the Mac to the device? What I am seeing is the response for only one service being returned when the production device requests the service search. If I remove all other serial ports I get my device returned and connections are made, etc. If I add another serial port or bring back the default Bluetooth-PDA-Sync port, my device isn't returned.
I do plan on contacting the manufacturer on this, but getting their problem corrected will be slow. I just want to make sure I have the correct info before doing so.
Thanks again,
Ron Wagner
Ron Wagner Wagner Technologies LLC 10 Old Farm Road Tolland CT 06084-3918 860-872-0053 |