const uint8_t* FrameData = (const uint8_t*)Data + sizeof(RFCOMM_Header_t);
uint16_t FrameDataLen = RFCOMM_GetFrameDataLength(FrameData);
+ /* Adjust the frame data pointer to skip over the variable size field */
FrameData += (FrameDataLen < 128) ? 1 : 2;
/* Decode the RFCOMM frame type from the header */
RFCOMM_SendFrame(RFCOMM_CONTROL_DLCI, false, RFCOMM_Frame_UIH, sizeof(RFCOMM_Command_t), &Response, Channel);
break;
+ default:
+ BT_RFCOMM_DEBUG(1, "<< Unknown Command");
}
}
static uint8_t RFCOMM_GetFCSValue(const void* FrameStart, uint8_t Length)
{
- const uint8_t* CurrPos = FrameStart;
- uint8_t FCS = 0xFF;
+ uint8_t FCS = 0xFF;
for (uint8_t i = 0; i < Length; i++)
- FCS = pgm_read_byte(&CRC8_Table[FCS ^ *(CurrPos++)]);
+ FCS = pgm_read_byte(&CRC8_Table[FCS ^ ((uint8_t*)FrameStart)[i]]);
return ~FCS;
}