19 #ifndef GNSS_SDR_LABSAT23_SOURCE_H 20 #define GNSS_SDR_LABSAT23_SOURCE_H 24 #include <gnuradio/block.h> 40 using labsat23_source_sptr = gnss_shared_ptr<labsat23_source>;
42 labsat23_source_sptr labsat23_make_source_sptr(
43 const char *signal_file_basename,
44 const std::vector<int> &channel_selector,
46 bool digital_io_enabled);
57 int general_work(
int noutput_items,
58 gr_vector_int &ninput_items,
59 gr_vector_const_void_star &input_items,
60 gr_vector_void_star &output_items);
63 friend labsat23_source_sptr labsat23_make_source_sptr(
64 const char *signal_file_basename,
65 const std::vector<int> &channel_selector,
67 bool digital_io_enabled);
70 const std::vector<int> &channel_selector,
72 bool digital_io_enabled);
74 std::string generate_filename();
77 int getBit(uint8_t byte,
int position);
78 int read_ls3w_ini(
const std::string &filename);
79 int number_of_samples_per_ls3w_register()
const;
81 void decode_samples_one_channel(int16_t input_short, gr_complex *out,
int type);
82 void decode_ls3w_register(uint64_t input, std::vector<gr_complex *> &out, std::size_t output_pointer)
const;
84 std::ifstream binary_input_file;
85 std::string d_signal_file_basename;
87 std::vector<int> d_channel_selector_config;
88 int d_current_file_number;
89 uint8_t d_labsat_version;
90 uint8_t d_channel_selector;
92 uint8_t d_bits_per_sample;
96 std::string d_ls3w_OSC;
97 std::vector<int> d_ls3w_selected_channel_offset;
100 int32_t d_ls3w_CHN{};
101 int32_t d_ls3w_SFT{};
102 int32_t d_ls3w_CFA{};
103 int32_t d_ls3w_CFB{};
104 int32_t d_ls3w_CFC{};
105 int32_t d_ls3w_BWA{};
106 int32_t d_ls3w_BWB{};
107 int32_t d_ls3w_BWC{};
108 int d_ls3w_spare_bits{};
109 int d_ls3w_samples_per_register{};
110 bool d_is_ls3w =
false;
111 bool d_ls3w_digital_io_enabled =
false;
117 #endif // GNSS_SDR_LABSAT23_SOURCE_H Interface of a thread-safe std::queue.
This interface represents a GNSS block.
This class implements conversion between Labsat 2, 3 and 3 Wideband formats to gr_complex.