GNU Radio 3.7.1 C++ API
|
process received bits looking for packet sync, header, and process bits into packet More...
#include <packet_sink.h>
Public Types | |
typedef boost::shared_ptr < packet_sink > | sptr |
Public Member Functions | |
virtual bool | carrier_sensed () const =0 |
return true if we detect carrier | |
Static Public Member Functions | |
static sptr | make (const std::vector< unsigned char > &sync_vector, msg_queue::sptr target_queue, int threshold=-1) |
process received bits looking for packet sync, header, and process bits into packet
input: stream of symbols to be sliced.
output: none. Pushes assembled packet into target queue
The packet sink takes in a stream of binary symbols that are sliced around 0. The bits are then checked for the sync_vector
to determine find and decode the packet. It then expects a fixed length header of 2 16-bit shorts containing the payload length, followed by the payload. If the 2 16-bit shorts are not identical, this packet is ignored. Better algs are welcome.
This block is not very useful anymore as it only works with 2-level modulations such as BPSK or GMSK. The block can generally be replaced with a correlate access code and frame sink blocks.
virtual bool gr::digital::packet_sink::carrier_sensed | ( | ) | const [pure virtual] |
return true if we detect carrier
static sptr gr::digital::packet_sink::make | ( | const std::vector< unsigned char > & | sync_vector, |
msg_queue::sptr | target_queue, | ||
int | threshold = -1 |
||
) | [static] |
Make a packet_sink block.
sync_vector | The synchronization vector as a vector of 1's and 0's. |
target_queue | The message queue that packets are sent to. |
threshold | Number of bits that can be incorrect in the sync_vector . |