forked from mfulz_github/qmk_firmware
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.
This commit is contained in:
parent
6276d5f82a
commit
00fa6aa2db
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue