#define CHANNEL_PSM_UPNP 0x0010\r
#define CHANNEL_PSM_HIDP 0x0011\r
\r
+ #define CHANNEL_SEARCH_LOCALNUMBER 0\r
+ #define CHANNEL_SEARCH_REMOTENUMBER 1\r
+ #define CHANNEL_SEARCH_PSM 2\r
+ \r
#define MAXIMUM_CHANNEL_MTU 255\r
\r
/* Enums: */\r
char PINCode[16]; /**< Pin code required to send or receive in order to authenticate with a remote device. */\r
char Name[]; /**< Name of the local bluetooth device, up to 248 characters. */\r
} Bluetooth_Device_t;\r
+ \r
+ /** Bluetooth stack state information structure, for the containment of the Bluetooth stack state. The values in\r
+ * this structure are set by the Bluetooth stack internally, and should all be treated as read only by the user\r
+ * application.\r
+ */\r
+ typedef struct\r
+ {\r
+ uint8_t CurrentHCIState; /**< Current HCI state machine state. */\r
+ uint8_t NextHCIState; /**< Next HCI state machine state to progress to once the currently issued command completes. */\r
+ bool IsInitialized; /**< Indicates if the Bluetooth stack is currently initialized and ready for connections\r
+ * to or from a remote Bluetooth device.\r
+ */\r
+ uint8_t LocalBDADDR[6]; /**< Local bluetooth adapter's BDADDR, valid when the stack is fully initialized. */\r
+ } Bluetooth_Stack_State_t;\r
\r
/* Includes: */\r
#include "BluetoothHCICommands.h"\r
void Bluetooth_Stack_Init(void);\r
void Bluetooth_Stack_USBTask(void);\r
\r
- bool Bluetooth_ConnectionRequest(uint8_t* RemoteAddress);\r
+ void Bluetooth_StackInitialized(void);\r
+ bool Bluetooth_ConnectionRequest(const uint8_t* RemoteAddress);\r
void Bluetooth_ConnectionComplete(void);\r
void Bluetooth_DisconnectionComplete(void);\r
- bool Bluetooth_ChannelConnectionRequest(uint16_t PSM);\r
- void Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t* Channel);\r
- Bluetooth_Channel_t* Bluetooth_GetChannelData(uint16_t ChannelNumber, bool SearchByRemoteChannel);\r
- Bluetooth_Channel_t* Bluetooth_OpenChannel(uint16_t PSM);\r
- void Bluetooth_CloseChannel(Bluetooth_Channel_t* Channel);\r
- uint8_t Bluetooth_SendPacket(void* Data, uint16_t DataLen, Bluetooth_Channel_t* Channel);\r
+ bool Bluetooth_ChannelConnectionRequest(const uint16_t PSM);\r
+ void Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t* const Channel);\r
+ Bluetooth_Channel_t* Bluetooth_GetChannelData(const uint16_t SearchValue, const uint8_t SearchKey);\r
+ Bluetooth_Channel_t* Bluetooth_OpenChannel(const uint16_t PSM);\r
+ void Bluetooth_CloseChannel(Bluetooth_Channel_t* const Channel);\r
+ uint8_t Bluetooth_SendPacket(void* Data, uint16_t DataLen, Bluetooth_Channel_t* const Channel);\r
\r
/* External Variables: */\r
- extern Bluetooth_Device_t Bluetooth_DeviceConfiguration;\r
- extern Bluetooth_Connection_t Bluetooth_Connection;\r
+ extern Bluetooth_Device_t Bluetooth_DeviceConfiguration;\r
+ extern Bluetooth_Connection_t Bluetooth_Connection;\r
+ extern Bluetooth_Stack_State_t Bluetooth_State;\r
\r
#endif\r