Exemplo n.º 1
0
void btLePacketEncode(uint8_t* packet, uint8_t len, uint8_t chan){
  //length is of packet, including crc. pre-populate crc in packet with initial crc value!
  uint8_t i, dataLen = len - 3;

  btLeCrc(packet, dataLen, packet + dataLen);
  for(i = 0; i < 3; i++, dataLen++) packet[dataLen] = swapbits(packet[dataLen]);
  btLeWhiten(packet, len, btLeWhitenStart(chan));
  for(i = 0; i < len; i++) packet[i] = swapbits(packet[i]);
}
Exemplo n.º 2
0
void btLePacketEncode(uint8_t* packet, uint8_t len, uint8_t chan){
// Assemble the packet to be transmitted
// Length is of packet, including crc. pre-populate crc in packet with initial crc value!
uint8_t i, dataLen = len - 3;


packet[len - 3] = 0x55; //CRC start value: 0x555555
packet[len - 2] = 0x55;
packet[len - 1] = 0x55;

btLeCrc(packet, dataLen, packet + dataLen);

//for(i = 0; i < 3; i++, dataLen++)
//	packet[dataLen] = swapbits(packet[dataLen]);

if (ONE_CHANNEL)
{	
// faster array based whitening
for(i = 0; i < len; i++) 
	packet[i] ^=ble_whiten_37[i];
}
else // lfsr based
btLeWhiten(packet, len, whitenstart[chan]);	
}