X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/071e02c6b6b4837fa9cf0b6d4c749994e02638d7..55d7e1e65bccd6b4c44802cf971f39eb05e6e57a:/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h?ds=sidebyside diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h index cc0160ff7..894c37003 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h @@ -28,6 +28,11 @@ this software. */ +/** \file + * + * Header file for BluetoothACLPackets.c. + */ + #ifndef _BLUETOOTH_ACLPACKETS_ #define _BLUETOOTH_ACLPACKETS_ @@ -45,12 +50,18 @@ /* Macros: */ #define BT_ACL_DEBUG(l, s, ...) do { if (ACL_DEBUG_LEVEL >= l) printf_P(PSTR("(ACL) " s "\r\n"), ##__VA_ARGS__); } while (0) #define ACL_DEBUG_LEVEL 0 - + + /** Lowest possible channel number for L2CAP data channels. */ #define BT_CHANNELNUMBER_BASEOFFSET 0x0040 + /** Bluetooth specification defined channel number for signalling commands. */ #define BT_CHANNEL_SIGNALING 0x0001 + + /** Bluetooth specification defined channel number for connectionless data. */ #define BT_CHANNEL_CONNECTIONLESS 0x0002 + #define BT_ACL_FIRST_AUTOFLUSH (1 << 13) + #define BT_SIGNAL_COMMAND_REJECT 0x01 #define BT_SIGNAL_CONNECTION_REQUEST 0x02 #define BT_SIGNAL_CONNECTION_RESPONSE 0x03 @@ -78,87 +89,99 @@ #define BT_CONFIGURATION_UNKNOWNOPTIONS 0x0003 #define BT_CONFIG_OPTION_MTU 1 - - #define BT_ACL_FIRST_AUTOFLUSH (1 << 13) - + /* Type Defines: */ + /** Bluetooth ACL header structure, common to all ACL data packets. */ typedef struct { - uint16_t ConnectionHandle; - uint16_t DataLength; + uint16_t ConnectionHandle; /**< Unique device connection handle of the ACL packet */ + uint16_t DataLength; /**< Length of the packet payload, in bytes */ } BT_ACL_Header_t; + /** Bluetooth ACL data packet header structure, for ACL packets containing L2CAP data. */ typedef struct { - uint16_t PayloadLength; - uint16_t DestinationChannel; + uint16_t PayloadLength; /**< Size of the data payload, in bytes */ + uint16_t DestinationChannel; /**< Destination channel in the device the data is directed to */ } BT_DataPacket_Header_t; + /** Bluetooth signalling command header structure, for all ACL packets containing a signalling command. */ typedef struct { - uint8_t Code; - uint8_t Identifier; - uint16_t Length; + uint8_t Code; /**< Signal code, a BT_SIGNAL_* mask value */ + uint8_t Identifier; /**< Unique signal command identifier to link requests and responses */ + uint16_t Length; /**< Length of the signalling command data, in bytes */ } BT_Signal_Header_t; + /** Connection Request signalling command structure, for channel connection requests. */ typedef struct { - uint16_t PSM; - uint16_t SourceChannel; + uint16_t PSM; /**< Type of data the channel will carry, a CHANNEL_PSM_* mask value */ + uint16_t SourceChannel; /**< Channel source on the sending device this channel will link to */ } BT_Signal_ConnectionReq_t; + /** Connection response signalling command structure, for responses to channel connection requests. */ typedef struct { - uint16_t DestinationChannel; - uint16_t SourceChannel; - uint16_t Result; - uint16_t Status; + uint16_t DestinationChannel; /**< Destination device channel that the connection request was processed on */ + uint16_t SourceChannel; /**< Source device channel address that the connection request came from */ + uint16_t Result; /**< Connection result, a BT_CONNECTION_* mask value */ + uint16_t Status; /**< Status of the request if the result was set to the Pending value */ } BT_Signal_ConnectionResp_t; + /** Disconnection request signalling command structure, for channel disconnection requests. */ typedef struct { - uint16_t DestinationChannel; - uint16_t SourceChannel; + uint16_t DestinationChannel; /**< Destination channel address which is to be disconnected */ + uint16_t SourceChannel; /**< Source channel address which is to be disconnected */ } BT_Signal_DisconnectionReq_t; + /** Disconnection response signalling command structure, for responses to channel disconnection requests. */ typedef struct { - uint16_t DestinationChannel; - uint16_t SourceChannel; + uint16_t DestinationChannel; /**< Destination channel address which was disconnected */ + uint16_t SourceChannel; /**< Source channel address which was disconnected */ } BT_Signal_DisconnectionResp_t; + /** Configuration Request signalling command structure, for channel configuration requests. */ typedef struct { - uint16_t DestinationChannel; - uint16_t Flags; + uint16_t DestinationChannel; /**< Destination channel address which is to be disconnected */ + uint16_t Flags; /**< Configuration flags for the request, including command continuation */ } BT_Signal_ConfigurationReq_t; + /** Configuration Response signalling command structure, for responses to channel configuration requests. */ typedef struct { - uint16_t SourceChannel; - uint16_t Flags; - uint16_t Result; + uint16_t SourceChannel; /**< Source channel that the configuration request was directed at */ + uint16_t Flags; /**< Configuration flags for the response, including response continuation */ + uint16_t Result; /**< Configuration result, a BT_CONFIGURATION_* mask value */ } BT_Signal_ConfigurationResp_t; + /** Information Request signalling command structure, for device information requests. */ typedef struct { - uint16_t InfoType; + uint16_t InfoType; /**< Data type that is being requested, a BT_INFOREQ_* mask value */ } BT_Signal_InformationReq_t; + /** Information Response signalling command structure, for responses to information requests. */ typedef struct { - uint16_t InfoType; - uint16_t Result; + uint16_t InfoType; /**< Data type that was requested, a BT_INFOREQ_* mask value */ + uint16_t Result; /**< Result of the request, a BT_INFORMATION_* mask value */ } BT_Signal_InformationResp_t; + /** Configuration Option header structure, placed at the start of each option in a Channel Configuration + * request's options list. + */ typedef struct { - uint8_t Type; - uint8_t Length; + uint8_t Type; /**< Option type, a BT_CONFIG_OPTION_* mask value */ + uint8_t Length; /**< Length of the option's value, in bytes */ } BT_Config_Option_Header_t; /* Function Prototypes: */ - void Bluetooth_ACLTask(void); + void Bluetooth_ACLTask(void); #if defined(INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C) static void Bluetooth_ProcessIncommingACLPackets(void);