22 #ifndef GNSS_SDR_GNSS_SDR_FPGA_SAMPLE_COUNTER_H 23 #define GNSS_SDR_GNSS_SDR_FPGA_SAMPLE_COUNTER_H 25 #include <gnuradio/block.h> 26 #include <gnuradio/types.h> 29 #if GNURADIO_USES_STD_POINTERS 32 #include <boost/shared_ptr.hpp> 37 #if GNURADIO_USES_STD_POINTERS 38 using gnss_sdr_fpga_sample_counter_sptr = std::shared_ptr<gnss_sdr_fpga_sample_counter>;
40 using gnss_sdr_fpga_sample_counter_sptr = boost::shared_ptr<gnss_sdr_fpga_sample_counter>;
43 gnss_sdr_fpga_sample_counter_sptr gnss_sdr_make_fpga_sample_counter(
double _fs, int32_t _interval_ms);
49 int general_work(
int noutput_items,
50 gr_vector_int &ninput_items,
51 gr_vector_const_void_star &input_items,
52 gr_vector_void_star &output_items);
55 static const uint32_t page_size = 0x10000;
56 static const uint32_t test_reg_sanity_check = 0x55AA;
58 friend gnss_sdr_fpga_sample_counter_sptr gnss_sdr_make_fpga_sample_counter(
double _fs, int32_t _interval_ms);
60 uint32_t test_register(uint32_t writeval);
61 void configure_samples_per_output(uint32_t interval);
62 void close_device(
void);
63 void open_device(
void);
66 void wait_for_interrupt(
void);
68 volatile uint32_t *map_base;
69 std::string device_name =
"/dev/uio2";
72 uint64_t sample_counter;
73 uint64_t last_sample_counter;
74 uint64_t current_T_rx_ms;
76 uint32_t samples_per_output;
77 uint32_t samples_per_report;
82 uint32_t current_days;
83 int32_t report_interval_ms;
86 bool flag_enable_send_msg;
93 #endif // GNSS_SDR_GNSS_SDR_FPGA_SAMPLE_COUNTER_H