Put symbol coding into PacketBuilder.

Removes stuffing symbols before placing them into packet buffer.
This commit is contained in:
Jared Boone 2015-09-26 14:15:39 -07:00
parent c936e09702
commit 05badaddda
2 changed files with 7 additions and 1 deletions

View File

@ -30,5 +30,6 @@ void PacketBuilder::configure(size_t new_payload_length) {
void PacketBuilder::reset_state() {
bits_received = 0;
unstuff.reset();
state = State::AccessCodeSearch;
}

View File

@ -26,6 +26,8 @@
#include <cstddef>
#include <bitset>
#include "symbol_coding.hpp"
class PacketBuilder {
public:
void configure(size_t new_payload_length);
@ -45,7 +47,9 @@ public:
case State::Payload:
if( bits_received < payload_length ) {
payload[bits_received++] = symbol;
if( !unstuff.is_stuffing_bit(symbol) ) {
payload[bits_received++] = symbol;
}
} else {
payload_handler(payload, bits_received);
reset_state();
@ -68,6 +72,7 @@ private:
size_t bits_received { 0 };
State state { State::AccessCodeSearch };
std::bitset<256> payload;
symbol_coding::Unstuff unstuff;
void reset_state();
};