23 #ifndef INCLUDED_GR_PACKET_SINK_H
24 #define INCLUDED_GR_PACKET_SINK_H
66 enum state_t {STATE_SYNC_SEARCH, STATE_HAVE_SYNC, STATE_HAVE_HEADER};
68 static const int MAX_PKT_LEN = 4096;
69 static const int HEADERBITLEN = 32;
72 unsigned long long d_sync_vector;
73 unsigned int d_threshold;
77 unsigned long long d_shift_reg;
79 unsigned int d_header;
80 int d_headerbitlen_cnt;
82 unsigned char d_packet[MAX_PKT_LEN];
83 unsigned char d_packet_byte;
84 int d_packet_byte_index;
101 void enter_have_sync();
102 void enter_have_header(
int payload_len);
104 int slice(
float x) {
return x > 0 ? 1 : 0; }
109 return ((d_header >> 16) ^ (d_header & 0xffff)) == 0;
112 int header_payload_len()
115 int t = (d_header >> 16) & 0xffff;
122 int work(
int noutput_items,
128 bool carrier_sensed()
const
130 return d_state != STATE_SYNC_SEARCH;