From 13d812a7188f0b0ecaa07ee66e376a2c5a88742f Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 3 Jun 2010 08:42:20 +0000 Subject: Delay needed in bluetooth code due to the send function not waiting for the pipe bank to become ready before writing. Add in a call to Pipe_WaitUntilReady() to fix the issue. --- Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c') diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c index 818caac75..698210488 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c @@ -32,7 +32,6 @@ TODO: Make SendPacket respect receiver's MTU TODO: Make ReceivePacket stitch together MTU fragments (?) TODO: Add channel opened/closed callbacks - TODO: Figure out why delay is needed in connection for services */ #define INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C @@ -228,8 +227,10 @@ uint8_t Bluetooth_SendPacket(void* Data, const uint16_t DataLen, Bluetooth_Chann DataHeader.DestinationChannel = (Channel == NULL) ? BT_CHANNEL_SIGNALING : Channel->RemoteNumber; Pipe_SelectPipe(BLUETOOTH_DATA_OUT_PIPE); + + Pipe_WaitUntilReady(); Pipe_Unfreeze(); - + /* Write the packet contents to the pipe so that it can be sent to the remote device */ Pipe_Write_Stream_LE(&ACLPacketHeader, sizeof(ACLPacketHeader)); Pipe_Write_Stream_LE(&DataHeader, sizeof(DataHeader)); @@ -369,8 +370,6 @@ static inline void Bluetooth_Signal_ConnectionReq(const BT_Signal_Header_t* cons BT_ACL_DEBUG(2, "-- PSM: 0x%04X", ConnectionRequest.PSM); BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConnectionRequest.SourceChannel); - _delay_ms(15); // TODO - Determine why this is needed - /* Try to retrieve the existing channel's information structure if it exists */ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionRequest.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER); -- cgit v1.2.3