I'm looking into the feasibility of sending vendor-specific BCCMD messages
to a CSR bluetooth modem via HCI, using the BCSP transport, and handling the
vendor-specific HCI events that result.

I think this could best be done by using the HCI_CustomCode_In extension to
send the messages to the vendor-specifc opcode group. I think that's its
function, but I'm not sure if I've interpreted the documentation properly.

I also need to handle receiving vendor-specific events. Currently, the
hcibcsp.cpp implementation of HCI_ReadPacket will fail to handle these
messages (which will be received on BCSP channel 2). Returning FALSE will
cause the bluetooth stack to shut down.

It should be feasible to modify hcibcsp.cpp to handle these packets, but not
return, and wait for the next packet. My modified code could signal an event
so that my application code could do appropriate things. I can only receive
these packets if the bluetooth stack is actually blocked on HCI_ReadPacket,
but that should effectively be all the time.

Has anyone tried a similiar implementation, or have any idea if this should
work? Is there a better way to send and receive BCCMD commands through the
stack?

RE: CSR vendor-specific commands over BCSP transport by gregsco

gregsco
Mon Aug 01 19:03:07 CDT 2005

You have two options:
1) Use the HCI extension mechanism that you pointed out. Keep in mind that
your extension layer must be loaded in device.exe as it needs to be in the
same process as the BT stack.
2) Just modify the BCSP driver to do handle this (no HCI extension layer
needed)

I think #2 may be easier. Either way should work though.

Greg Scott
Software Design Engineer, Windows CE
Microsoft Corporation
_____________________________________________________________
This posting is provided "AS IS" with no warranties, and confers no rights.
_____________________________________________________________

--------------------
| From: "Josh Karabin" <gkarabin@vocollect.com>
| Subject: CSR vendor-specific commands over BCSP transport
| Date: Thu, 28 Jul 2005 17:19:16 -0400
| Lines: 24
| Organization: Vocollect, Inc.
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2527
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
| Message-ID: <el47Do7kFHA.2904@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.windowsce.platbuilder
| NNTP-Posting-Host: host1.vocollect.com 209.166.178.1
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl microsoft.public.windowsce.platbuilder:22486
| X-Tomcat-NG: microsoft.public.windowsce.platbuilder
|
| I'm looking into the feasibility of sending vendor-specific BCCMD
messages
| to a CSR bluetooth modem via HCI, using the BCSP transport, and handling
the
| vendor-specific HCI events that result.
|
| I think this could best be done by using the HCI_CustomCode_In extension
to
| send the messages to the vendor-specifc opcode group. I think that's its
| function, but I'm not sure if I've interpreted the documentation properly.
|
| I also need to handle receiving vendor-specific events. Currently, the
| hcibcsp.cpp implementation of HCI_ReadPacket will fail to handle these
| messages (which will be received on BCSP channel 2). Returning FALSE will
| cause the bluetooth stack to shut down.
|
| It should be feasible to modify hcibcsp.cpp to handle these packets, but
not
| return, and wait for the next packet. My modified code could signal an
event
| so that my application code could do appropriate things. I can only
receive
| these packets if the bluetooth stack is actually blocked on
HCI_ReadPacket,
| but that should effectively be all the time.
|
| Has anyone tried a similiar implementation, or have any idea if this
should
| work? Is there a better way to send and receive BCCMD commands through
the
| stack?
|
|
|