From 00fa6aa2db9caed0e2f09b7009b343a0fdae8178 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 11 Jul 2010 07:38:18 +0000 Subject: Oops - ACL layer Bluetooth_SendPacket() function should check and allow NULL channels, since that indicates a control channel request. Fix up Doxgen documentation for the Bluetooth stack code. --- .../Incomplete/BluetoothHost/BluetoothEvents.c | 27 +++++++++++++++------- .../BluetoothHost/Lib/BluetoothACLPackets.c | 12 +++++----- Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c | 8 +++---- 3 files changed, 29 insertions(+), 18 deletions(-) (limited to 'Demos/Host/Incomplete') diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c b/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c index 82e347fc3..b523b46e3 100644 --- a/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c +++ b/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c @@ -122,7 +122,7 @@ bool Bluetooth_ChannelConnectionRequest(const uint16_t PSM) /** Bluetooth stack callback event for when a Bluetooth ACL channel has been fully created and configured, * either at the request of the local device, or the remote device. * - * \param[in] Channel Bluetooth ACL data channel information structure for the channel that can now be used + * \param[in] ACLChannel Bluetooth ACL data channel information structure for the channel that can now be used */ void Bluetooth_ChannelOpened(Bluetooth_Channel_t* const ACLChannel) { @@ -134,9 +134,9 @@ void Bluetooth_ChannelOpened(Bluetooth_Channel_t* const ACLChannel) /** Bluetooth stack callback event for a non-signal ACL packet reception. This callback fires once a connection * to a remote Bluetooth device has been made, and the remote device has sent a non-signalling ACL packet. * - * \param[in] Data Pointer to a buffer where the received data is stored - * \param[in] DataLen Length of the packet data, in bytes - * \param[in] Channel Bluetooth ACL data channel information structure for the packet's destination channel + * \param[in] Data Pointer to a buffer where the received data is stored + * \param[in] DataLen Length of the packet data, in bytes + * \param[in] ACLChannel Bluetooth ACL data channel information structure for the packet's destination channel */ void Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t* const ACLChannel) { @@ -154,17 +154,23 @@ void Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t* } } +/** RFCOMM layer callback for event for when a RFCOMM logical channel has been fully opened and configured between + * the local and remote device. Once open, this RFCOMM channel can be read from and written to freely until is it + * closed by either end. + * + * \param[in] RFCOMMChannel RFCOMM channel that was opened + */ void RFCOMM_ChannelOpened(RFCOMM_Channel_t* const RFCOMMChannel) { /* Save the serial port RFCOMM logical channel for later use */ SerialChannel_RFCOMM = RFCOMMChannel; } -/** RFCOMM layer callback for when a packet is received on an open RFCOMM channel. +/** RFCOMM layer callback event for when a packet is received on an open RFCOMM channel. * - * \param[in] Channel RFCOMM channel that the data was directed to - * \param[in] DataLen Length of the received data, in bytes - * \param[in] Data Pointer to a buffer where the received data is stored + * \param[in] ACLChannel RFCOMM ACL channel that the data was directed to + * \param[in] DataLen Length of the received data, in bytes + * \param[in] Data Pointer to a buffer where the received data is stored */ void RFCOMM_DataReceived(RFCOMM_Channel_t* const ACLChannel, uint16_t DataLen, const uint8_t* Data) { @@ -176,6 +182,11 @@ void RFCOMM_DataReceived(RFCOMM_Channel_t* const ACLChannel, uint16_t DataLen, c RFCOMM_SendData(DataLen, Data, SerialChannel_RFCOMM, SerialChannel_ACL); } +/** RFCOMM layer callback event for when the remote device has updated the channel terminal control signals + * for a particular RFCOMM channel. + * + * \param[in] RFCOMMChannel RFCOMM logical channel whose signals were altered + */ void RFCOMM_ChannelSignalsReceived(RFCOMM_Channel_t* const RFCOMMChannel) { // Currently do nothing in response to the remote device sending new terminal control signals diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c index b8686893a..989eba07c 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c @@ -246,10 +246,10 @@ Bluetooth_Channel_t* Bluetooth_GetChannelData(const uint16_t SearchValue, const /** Sends a packet to the remote device on the specified channel. * - * \param[in] Data Pointer to a buffer where the data is to be sourced from - * \param[in] DataLen Length of the data to send - * \param[in] Channel Channel information structure containing the destination channel's information, NULL to send - * to the remote device's signalling channel + * \param[in] Data Pointer to a buffer where the data is to be sourced from + * \param[in] DataLen Length of the data to send + * \param[in] ACLChannel ACL channel information structure containing the destination channel's information, NULL + * to send to the remote device's signalling channel * * \return A value from the \ref BT_SendPacket_ErrorCodes_t enum */ @@ -263,7 +263,7 @@ uint8_t Bluetooth_SendPacket(void* Data, const uint16_t DataLen, Bluetooth_Chann return BT_SENDPACKET_NotConnected; /* If the destination channel is not the signalling channel and it is not currently fully open, abort */ - if ((ACLChannel == NULL) || (ACLChannel->State != BT_Channel_Open)) + if ((ACLChannel != NULL) && (ACLChannel->State != BT_Channel_Open)) return BT_SENDPACKET_ChannelNotOpen; /* Fill out the packet's header from the remote device connection information structure */ @@ -366,7 +366,7 @@ Bluetooth_Channel_t* Bluetooth_OpenChannel(const uint16_t PSM) * returned channel is unusable by the user application upon return however the channel is not completely * closed until its State element has progressed to the Closed state. * - * \param[in,out] Channel Channel information structure of the channel to close + * \param[in,out] ACLChannel ACL channel information structure of the channel to close */ void Bluetooth_CloseChannel(Bluetooth_Channel_t* const ACLChannel) { diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c b/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c index 1c55959fb..ce2ea48dc 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c @@ -474,10 +474,10 @@ static bool SDP_SearchServiceTable(uint8_t UUIDList[][UUID_SIZE_BYTES], const ui /** Recursively upwraps the given locally stored attribute (in PROGMEM space), searching for UUIDs to match against * the given UUID list. As matches are found, they are indicated in the UUIDMatch flag list. * - * \param[in] UUIDList List of UUIDs which must be matched within the service attribute table - * \param[in] TotalUUIDs Total number of UUIDs stored in the UUID list - * \param[in, out] UUIDMatch Array of flags indicating which UUIDs in the list have already been matched - * \param[in] CurrAttribute Pointer to the current attribute to search through + * \param[in] UUIDList List of UUIDs which must be matched within the service attribute table + * \param[in] TotalUUIDs Total number of UUIDs stored in the UUID list + * \param[in, out] UUIDMatchFlags Array of flags indicating which UUIDs in the list have already been matched + * \param[in] CurrAttribute Pointer to the current attribute to search through * * \return True if all the UUIDs given in the UUID list appear in the given attribute table, false otherwise */ -- cgit v1.2.3