diff options
Diffstat (limited to 'Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h')
-rw-r--r-- | Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h | 45 |
1 files changed, 13 insertions, 32 deletions
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h index 355331ae8..68f0cf1fb 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h @@ -47,6 +47,7 @@ #include <LUFA/Drivers/Peripheral/SerialStream.h> #include "BluetoothStack.h" + #include "RFCOMMControl.h" /* Macros: */ #define BT_RFCOMM_DEBUG(l, s, ...) do { if (RFCOMM_DEBUG_LEVEL >= l) printf_P(PSTR("(RFCOMM) " s "\r\n"), ##__VA_ARGS__); } while (0) @@ -55,9 +56,8 @@ #define FRAME_POLL_FINAL (1 << 4) #define RFCOMM_CONTROL_DLCI 0 - #define RFCOMM_MAX_OPEN_CHANNELS 5 - + /* Enums: */ /** Enum for the types of RFCOMM frames which can be exchanged on a Bluetooth channel. */ enum RFCOMM_Frame_Types_t @@ -69,18 +69,6 @@ RFCOMM_Frame_UIH = 0xEF, /**< Unnumbered Information with Header check Field */ }; - enum RFCOMM_Control_Commands_t - { - RFCOMM_Control_Test = (0x20 >> 2), - RFCOMM_Control_FlowControlEnable = (0xA0 >> 2), - RFCOMM_Control_FlowControlDisable = (0x60 >> 2), - RFCOMM_Control_ModemStatus = (0xE0 >> 2), - RFCOMM_Control_RemotePortNegotiation = (0x90 >> 2), - RFCOMM_Control_RemoteLineStatus = (0x50 >> 2), - RFCOMM_Control_DLCParameterNegotiation = (0x80 >> 2), - RFCOMM_Control_NonSupportedCommand = (0x10 >> 2), - }; - /* Type Defines: */ typedef struct { @@ -97,21 +85,22 @@ typedef struct { - unsigned char EA : 1; - unsigned char CR : 1; - unsigned char Command : 6; - } RFCOMM_Command_t; - - typedef struct - { uint8_t DLCI; bool Configured; } RFCOMM_Channel_t; + + /* External Variables: */ + extern RFCOMM_Channel_t RFCOMM_Channels[RFCOMM_MAX_OPEN_CHANNELS]; /* Function Prototypes: */ - void RFCOMM_Initialize(void); - void RFCOMM_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel); + void RFCOMM_Initialize(void); + void RFCOMM_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel); + RFCOMM_Channel_t* RFCOMM_GetChannelData(const uint8_t DLCI); + uint16_t RFCOMM_GetFrameDataLength(const uint8_t* const BufferPos); + void RFCOMM_SendFrame(const uint8_t DLCI, const bool CommandResponse, const uint8_t Control, + const uint16_t DataLen, const void* Data, Bluetooth_Channel_t* const Channel); + #if defined(INCLUDE_FROM_RFCOMM_C) static void RFCOMM_ProcessDM(const RFCOMM_Address_t* const FrameAddress, Bluetooth_Channel_t* const Channel); static void RFCOMM_ProcessDISC(const RFCOMM_Address_t* const FrameAddress, Bluetooth_Channel_t* const Channel); @@ -120,15 +109,7 @@ static void RFCOMM_ProcessUIH(const RFCOMM_Address_t* const FrameAddress, const uint16_t FrameLength, const uint8_t* FrameData, Bluetooth_Channel_t* const Channel); - static void RFCOMM_ProcessControlCommand(const uint8_t* Command, Bluetooth_Channel_t* const Channel); - - static void RFCOMM_SendFrame(const uint8_t DLCI, const bool CommandResponse, const uint8_t Control, - const uint16_t DataLen, const void* Data, Bluetooth_Channel_t* const Channel); - - static uint8_t RFCOMM_GetFCSValue(const void* FrameStart, uint8_t Length); - static uint16_t RFCOMM_GetFrameDataLength(const uint8_t* const BufferPos); - - RFCOMM_Channel_t* RFCOMM_GetChannelData(const uint8_t DLCI); + static uint8_t RFCOMM_GetFCSValue(const void* FrameStart, uint8_t Length); #endif #endif |