X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/7beafc64e2944b3e0bd41f7621bf7dc93855f859..0ea819f7814a9eda0d5bfbb5125abb113634724f:/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c index b4720e584..c4cd5d6da 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c @@ -72,7 +72,6 @@ static bool Bluetooth_GetNextHCIEventHeader(void) } Pipe_Read_Stream_LE(&HCIEventHeader, sizeof(HCIEventHeader)); - Pipe_Freeze(); return true; @@ -81,11 +80,14 @@ static bool Bluetooth_GetNextHCIEventHeader(void) static void Bluetooth_DiscardRemainingHCIEventParameters(void) { Pipe_SelectPipe(BLUETOOTH_EVENTS_PIPE); - Pipe_Unfreeze(); + Pipe_Discard_Stream(HCIEventHeader.ParameterLength); Pipe_ClearIN(); + Pipe_Freeze(); + + HCIEventHeader.ParameterLength = 0; } void Bluetooth_ProcessHCICommands(void) @@ -329,6 +331,10 @@ void Bluetooth_ProcessHCICommands(void) Bluetooth_HCIProcessingState = Bluetooth_Conn_SendPINCode; } + else if (HCIEventHeader.EventCode == EVENT_COMMAND_COMPLETE) + { + BT_DEBUG("(HCI) >> Command Complete", NULL); + } BT_DEBUG("(HCI) -- Unread Event Param Length: %d", HCIEventHeader.ParameterLength); @@ -393,17 +399,6 @@ void Bluetooth_ProcessHCICommands(void) sizeof(Bluetooth_DeviceConfiguration.PINCode)); Bluetooth_SendHCICommand(&PINCodeRequestParams, sizeof(PINCodeRequestParams)); - - do - { - while (!(Bluetooth_GetNextHCIEventHeader())) - { - if (USB_HostState == HOST_STATE_Unattached) - return; - } - - Bluetooth_DiscardRemainingHCIEventParameters(); - } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE); Bluetooth_HCIProcessingState = Bluetooth_PrepareToProcessEvents; break;