/*!
* \brief Given a stream of bits and access_code flags, assemble packets.
- * \ingroup sink
+ * \ingroup sink_blk
*
* input: stream of bytes from gr_correlate_access_code_bb
* output: none. Pushes assembled packet into target queue
unsigned char d_packet_byte; // byte being assembled
int d_packet_byte_index; // which bit of d_packet_byte we're working on
int d_packetlen; // length of packet
+ int d_packet_whitener_offset; // offset into whitener string to use
int d_packetlen_cnt; // how many so far
protected:
void enter_search();
void enter_have_sync();
- void enter_have_header(int payload_len);
+ void enter_have_header(int payload_len, int whitener_offset);
bool header_ok()
{
return ((d_header >> 16) ^ (d_header & 0xffff)) == 0;
}
- int header_payload_len()
+ void header_payload(int *len, int *offset)
{
// header consists of two 16-bit shorts in network byte order
- int t = (d_header >> 16) & 0xffff;
- return t;
+ // payload length is lower 12 bits
+ // whitener offset is upper 4 bits
+ *len = (d_header >> 16) & 0x0fff;
+ *offset = (d_header >> 28) & 0x000f;
}
public: