23 #ifndef INCLUDED_GR_PACKET_SINK_H
24 #define INCLUDED_GR_PACKET_SINK_H
49 enum state_t {STATE_SYNC_SEARCH, STATE_HAVE_SYNC, STATE_HAVE_HEADER};
51 static const int MAX_PKT_LEN = 4096;
52 static const int HEADERBITLEN = 32;
55 unsigned long long d_sync_vector;
56 unsigned int d_threshold;
60 unsigned long long d_shift_reg;
62 unsigned int d_header;
63 int d_headerbitlen_cnt;
65 unsigned char d_packet[MAX_PKT_LEN];
66 unsigned char d_packet_byte;
67 int d_packet_byte_index;
77 void enter_have_sync();
78 void enter_have_header(
int payload_len);
80 int slice(
float x) {
return x > 0 ? 1 : 0; }
85 return ((d_header >> 16) ^ (d_header & 0xffff)) == 0;
88 int header_payload_len()
91 int t = (d_header >> 16) & 0xffff;
98 int work(
int noutput_items,
104 bool carrier_sensed()
const
106 return d_state != STATE_SYNC_SEARCH;