switch (FrameHeader->FrameType & ~FRAME_POLL_FINAL)\r
{\r
case RFCOMM_Frame_SABM:\r
- BT_RFCOMM_DEBUG(1, "<< SABM Received");\r
+ RFCOMM_ProcessSABM(FrameHeader, Channel);\r
break;\r
case RFCOMM_Frame_UA:\r
- BT_RFCOMM_DEBUG(1, "<< UA Received");\r
+ RFCOMM_ProcessUA(FrameHeader, Channel);\r
break;\r
case RFCOMM_Frame_DM:\r
- BT_RFCOMM_DEBUG(1, "<< DM Received");\r
+ RFCOMM_ProcessDM(FrameHeader, Channel);\r
break;\r
case RFCOMM_Frame_DISC:\r
- BT_RFCOMM_DEBUG(1, "<< DISC Received");\r
+ RFCOMM_ProcessDISC(FrameHeader, Channel);\r
break;\r
case RFCOMM_Frame_UIH:\r
- BT_RFCOMM_DEBUG(1, "<< UIH Received");\r
+ RFCOMM_ProcessUIH(FrameHeader, Channel);\r
break;\r
}\r
}\r
\r
+static void RFCOMM_ProcessSABM(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)\r
+{\r
+ uint8_t* CurrBufferPos = ((uint8_t*)FrameHeader + sizeof(RFCOMM_Header_t));\r
+ uint16_t DataLen = RFCOMM_GetFrameDataLength(&CurrBufferPos);\r
+\r
+ BT_RFCOMM_DEBUG(1, "<< SABM Received");\r
+ BT_RFCOMM_DEBUG(2, "-- Data Length 0x%04X", DataLen);\r
+\r
+ for (uint16_t i = 0; i < DataLen; i++)\r
+ printf("0x%02X ", CurrBufferPos[i]);\r
+ printf("\r\n");\r
+}\r
+\r
+static void RFCOMM_ProcessUA(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)\r
+{\r
+ BT_RFCOMM_DEBUG(1, "<< UA Received");\r
+}\r
+\r
+static void RFCOMM_ProcessDM(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)\r
+{\r
+ BT_RFCOMM_DEBUG(1, "<< DM Received");\r
+}\r
+\r
+static void RFCOMM_ProcessDISC(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)\r
+{\r
+ BT_RFCOMM_DEBUG(1, "<< DISC Received");\r
+}\r
+\r
+static void RFCOMM_ProcessUIH(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)\r
+{\r
+ BT_RFCOMM_DEBUG(1, "<< UIH Received");\r
+}\r
+\r
static uint16_t RFCOMM_GetFrameDataLength(void** BufferPos)\r
{\r
uint8_t FirstOctet = *((uint8_t*)*BufferPos);\r