this software.\r
*/\r
\r
+/*\r
+ TODO: Make SendPacket respect receiver's MTU\r
+ TODO: Make ReceivePacket stitch together MTU fragments (?)\r
+ TODO: Add channel opened/closed callbacks\r
+ */\r
+\r
#define INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C\r
#include "BluetoothACLPackets.h"\r
\r
\r
Bluetooth_SendPacket(&PacketData, sizeof(PacketData), NULL);\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Configuration Request", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Configuration Request");\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", PacketData.ConfigurationRequest.DestinationChannel);\r
}\r
}\r
Pipe_Read_Stream_LE(&ACLPacketHeader, sizeof(ACLPacketHeader));\r
Pipe_Read_Stream_LE(&DataHeader, sizeof(DataHeader));\r
\r
- BT_ACL_DEBUG(2, "", NULL);\r
- BT_ACL_DEBUG(2, "Packet Received", NULL);\r
+ BT_ACL_DEBUG(2, "");\r
+ BT_ACL_DEBUG(2, "Packet Received");\r
BT_ACL_DEBUG(2, "-- Connection Handle: 0x%04X", (ACLPacketHeader.ConnectionHandle & 0x0FFF));\r
BT_ACL_DEBUG(2, "-- Data Length: 0x%04X", ACLPacketHeader.DataLength);\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DataHeader.DestinationChannel);\r
Bluetooth_Signal_InformationReq(&SignalCommandHeader);\r
break;\r
case BT_SIGNAL_COMMAND_REJECT:\r
- BT_ACL_DEBUG(1, "<< Command Reject", NULL);\r
+ BT_ACL_DEBUG(1, "<< Command Reject");\r
\r
uint16_t RejectReason;\r
Pipe_Read_Stream_LE(&RejectReason, sizeof(RejectReason));\r
Pipe_ClearIN();\r
Pipe_Freeze();\r
\r
- Bluetooth_PacketReceived(PacketData, DataHeader.PayloadLength, Bluetooth_GetChannelData(DataHeader.DestinationChannel, false));\r
+ Bluetooth_PacketReceived(PacketData, DataHeader.PayloadLength,\r
+ Bluetooth_GetChannelData(DataHeader.DestinationChannel, CHANNEL_SEARCH_LOCALNUMBER));\r
}\r
}\r
\r
\r
Pipe_Freeze();\r
\r
- BT_ACL_DEBUG(2, "", NULL);\r
- BT_ACL_DEBUG(2, "Packet Sent", NULL);\r
+ BT_ACL_DEBUG(2, "");\r
+ BT_ACL_DEBUG(2, "Packet Sent");\r
BT_ACL_DEBUG(2, "-- Connection Handle: 0x%04X", (ACLPacketHeader.ConnectionHandle & 0x0FFF));\r
BT_ACL_DEBUG(2, "-- Data Length: 0x%04X", ACLPacketHeader.DataLength);\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DataHeader.DestinationChannel);\r
\r
Bluetooth_SendPacket(&PacketData, sizeof(PacketData), NULL);\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Connection Request", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Connection Request");\r
BT_ACL_DEBUG(2, "-- PSM 0x%04X", PacketData.ConnectionRequest.PSM);\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", PacketData.ConnectionRequest.SourceChannel);\r
\r
\r
Bluetooth_SendPacket(&PacketData, sizeof(PacketData), NULL);\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Disconnection Request", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Disconnection Request");\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", PacketData.DisconnectionRequest.DestinationChannel); \r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", PacketData.DisconnectionRequest.SourceChannel); \r
}\r
Pipe_ClearIN();\r
Pipe_Freeze();\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Connection Request", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Connection Request");\r
BT_ACL_DEBUG(2, "-- PSM: 0x%04X", ConnectionRequest.PSM);\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConnectionRequest.SourceChannel);\r
\r
/* Try to retrieve the existing channel's information structure if it exists */\r
- Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionRequest.SourceChannel, true);\r
+ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionRequest.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);\r
\r
/* If an existing channel item with the correct remote channel number was not found, find a free channel entry */\r
if (ChannelData == NULL)\r
\r
Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Connection Response", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Connection Response");\r
BT_ACL_DEBUG(2, "-- Result: 0x%02X", ResponsePacket.ConnectionResponse.Result);\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ResponsePacket.ConnectionResponse.DestinationChannel);\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ResponsePacket.ConnectionResponse.SourceChannel);\r
Pipe_ClearIN();\r
Pipe_Freeze();\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Connection Response", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Connection Response");\r
BT_ACL_DEBUG(2, "-- Result: 0x%02X", ConnectionResponse.Result); \r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConnectionResponse.SourceChannel); \r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ConnectionResponse.DestinationChannel); \r
\r
/* Search for the referenced channel in the channel information list */\r
- Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionResponse.SourceChannel, false);\r
+ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionResponse.SourceChannel, CHANNEL_SEARCH_LOCALNUMBER);\r
\r
/* Only progress if the referenced channel data was found */\r
if (ChannelData != NULL)\r
Pipe_Freeze();\r
\r
/* Search for the referenced channel in the channel information list */\r
- Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationRequest.DestinationChannel, false);\r
+ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationRequest.DestinationChannel, CHANNEL_SEARCH_LOCALNUMBER);\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Configuration Request", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Configuration Request");\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ConfigurationRequest.DestinationChannel);\r
BT_ACL_DEBUG(2, "-- Remote MTU: 0x%04X", ChannelData->RemoteMTU);\r
BT_ACL_DEBUG(2, "-- Options Len: 0x%04X", OptionsLen);\r
}\r
}\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Configuration Response", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Configuration Response");\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ResponsePacket.ConfigurationResponse.SourceChannel);\r
BT_ACL_DEBUG(2, "-- Result: 0x%02X", ResponsePacket.ConfigurationResponse.Result);\r
}\r
Pipe_ClearIN();\r
Pipe_Freeze();\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Configuration Response", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Configuration Response");\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConfigurationResponse.SourceChannel);\r
BT_ACL_DEBUG(2, "-- Result: 0x%02X", ConfigurationResponse.Result);\r
\r
/* Search for the referenced channel in the channel information list */\r
- Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationResponse.SourceChannel, true);\r
+ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationResponse.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);\r
\r
/* Only update the channel's state if it was found in the channel list */\r
if (ChannelData != NULL)\r
\r
Pipe_Read_Stream_LE(&DisconnectionRequest, sizeof(DisconnectionRequest));\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Disconnection Request", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Disconnection Request");\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DisconnectionRequest.DestinationChannel);\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", DisconnectionRequest.SourceChannel);\r
\r
Pipe_Freeze();\r
\r
/* Search for the referenced channel in the channel information list */\r
- Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(DisconnectionRequest.SourceChannel, true);\r
+ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(DisconnectionRequest.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);\r
\r
struct\r
{\r
if (ChannelData != NULL)\r
ChannelData->State = Channel_Closed;\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Disconnection Response", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Disconnection Response");\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ResponsePacket.DisconnectionResponse.SourceChannel);\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ResponsePacket.DisconnectionResponse.DestinationChannel);\r
}\r
\r
Pipe_Read_Stream_LE(&DisconnectionResponse, sizeof(DisconnectionResponse));\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Disconnection Response", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Disconnection Response");\r
BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DisconnectionResponse.DestinationChannel);\r
BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", DisconnectionResponse.SourceChannel);\r
\r
Pipe_Freeze();\r
\r
/* Search for the referenced channel in the channel information list */\r
- Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(DisconnectionResponse.SourceChannel, true);\r
+ Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(DisconnectionResponse.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);\r
\r
/* If the channel was found in the channel list, close it */ \r
if (ChannelData != NULL)\r
*/\r
static inline void Bluetooth_Signal_EchoReq(const BT_Signal_Header_t* const SignalCommandHeader)\r
{\r
- BT_ACL_DEBUG(1, "<< L2CAP Echo Request", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Echo Request");\r
\r
Pipe_ClearIN();\r
Pipe_Freeze();\r
\r
Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Echo Response", NULL);\r
+ BT_ACL_DEBUG(1, ">> L2CAP Echo Response");\r
}\r
\r
/** Internal Bluetooth stack Signal Command processing routine for an Information Request command.\r
\r
Pipe_Read_Stream_LE(&InformationRequest, sizeof(InformationRequest));\r
\r
- BT_ACL_DEBUG(1, "<< L2CAP Information Request", NULL);\r
+ BT_ACL_DEBUG(1, "<< L2CAP Information Request");\r
BT_ACL_DEBUG(2, "-- Info Type: 0x%04X", InformationRequest.InfoType);\r
\r
Pipe_ClearIN();\r
\r
Bluetooth_SendPacket(&ResponsePacket, (sizeof(ResponsePacket) - sizeof(ResponsePacket.Data) + DataLen), NULL);\r
\r
- BT_ACL_DEBUG(1, ">> L2CAP Information Response", NULL); \r
+ BT_ACL_DEBUG(1, ">> L2CAP Information Response"); \r
BT_ACL_DEBUG(2, "-- Result: 0x%02X", ResponsePacket.InformationResponse.Result);\r
}\r