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]); }
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]); }