46 sddc_rf_mode_t GetRFMode();
47 virtual sddc_rf_mode_t GetBestRFMode(uint64_t freq) = 0;
48 virtual sddc_err_t SetRFMode(sddc_rf_mode_t mode) = 0;
51 uint32_t GetADCSampleRate();
52 sddc_err_t SetADCSampleRate(uint32_t samplefreq);
53 virtual const std::array<float, 2> GetADCSampleRateLimits() = 0;
57 sddc_err_t SetBiasT_HF (
bool new_state);
59 sddc_err_t SetBiasT_VHF(
bool new_state);
68 uint32_t GetCenterFrequency_HF ();
69 uint32_t GetCenterFrequency_VHF();
73 sddc_err_t SetDither(
bool new_state);
75 sddc_err_t SetPGA (
bool new_state);
77 sddc_err_t SetRand(
bool new_state);
80 sddc_err_t StartStream() {
return Fx3->Control(STARTFX3) ? ERR_SUCCESS : ERR_FX3_TRANSFER_FAILED; }
81 sddc_err_t StopStream () {
return Fx3->Control(STOPFX3) ? ERR_SUCCESS : ERR_FX3_TRANSFER_FAILED; }
84 sddc_err_t SetGPIO (uint32_t mask);
85 sddc_err_t UnsetGPIO(uint32_t mask);
86 sddc_err_t
SetLED (sddc_leds_t led,
bool on);
88 bool ReadDebugTrace(uint8_t* pdata, uint8_t len) {
return Fx3->ReadDebugTrace(pdata, len); }
92 virtual const char* GetName() = 0;
93 virtual float getGain() = 0;
96 virtual sddc_err_t SetCenterFrequency_HF (uint32_t freq) = 0;
97 virtual sddc_err_t SetCenterFrequency_VHF(uint32_t freq) = 0;
98 virtual uint32_t GetTunerFrequency_HF() = 0;
99 virtual uint32_t GetTunerFrequency_VHF() = 0;
102 virtual std::vector<float> GetRFSteps_HF () = 0;
103 virtual std::vector<float> GetRFSteps_VHF() = 0;
104 virtual sddc_err_t SetRFAttenuation_HF (
size_t attIndex) = 0;
105 virtual sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex) = 0;
108 virtual std::vector<float> GetIFSteps_HF () = 0;
109 virtual std::vector<float> GetIFSteps_VHF() = 0;
110 virtual sddc_err_t SetIFGain_HF (
size_t attIndex) = 0;
111 virtual sddc_err_t SetIFGain_VHF (
size_t attIndex) = 0;
118 uint32_t sampleRate = 0;
119 sddc_rf_mode_t currentRFMode = NOMODE;
121 bool stateDither =
false;
122 bool statePGA =
false;
123 bool stateRand =
false;
124 bool stateBiasT_HF =
false;
125 bool stateBiasT_VHF =
false;
127 uint16_t attenuationHFStep = 0;
128 uint16_t attenuationVHFStep = 0;
129 uint16_t gainHFStep = 0;
130 uint16_t gainVHFStep = 0;
132 uint32_t freqLO_HF = 0;
133 uint32_t freqLO_VHF = 0;
140 const char* GetName()
override {
return "BBRF103"; }
141 float getGain()
override {
return BBRF103_GAINFACTOR; }
143 const std::array<float, 2> GetADCSampleRateLimits()
override;
146 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
147 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
148 uint32_t GetTunerFrequency_HF()
override;
149 uint32_t GetTunerFrequency_VHF()
override;
152 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
153 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
154 std::vector<float> GetRFSteps_HF ()
override;
155 std::vector<float> GetRFSteps_VHF()
override;
156 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
157 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
160 std::vector<float> GetIFSteps_HF ()
override;
161 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
162 std::vector<float> GetIFSteps_VHF()
override;
163 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
166 static const std::vector<float> rf_steps_vhf;
167 static const std::vector<float> rf_steps_hf;
168 static const std::vector<float> if_steps_vhf;
181 const char* GetName()
override {
return "RX888 mkII"; }
182 float getGain()
override {
return RX888mk2_GAINFACTOR; }
184 const std::array<float, 2> GetADCSampleRateLimits()
override;
186 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
187 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
188 uint32_t GetTunerFrequency_HF()
override;
189 uint32_t GetTunerFrequency_VHF()
override;
192 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
193 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
194 std::vector<float> GetRFSteps_HF()
override;
195 std::vector<float> GetRFSteps_VHF()
override;
196 sddc_err_t SetRFAttenuation_HF(
size_t attIndex)
override;
197 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
200 std::vector<float> GetIFSteps_HF ()
override;
201 std::vector<float> GetIFSteps_VHF()
override;
202 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
203 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
206 std::vector<float> rf_steps_hf = std::vector<float>(64, 0);
207 std::vector<float> if_steps_hf = std::vector<float>(127, 0);
208 static const std::vector<float> rf_steps_vhf;
209 static const std::vector<float> if_steps_vhf;
215 const char* GetName()
override {
return "RX888 mkIII"; }
216 float getGain()
override {
return RX888mk2_GAINFACTOR; }
218 const std::array<float, 2> GetADCSampleRateLimits()
override;
221 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
222 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
223 uint32_t GetTunerFrequency_HF()
override;
224 uint32_t GetTunerFrequency_VHF()
override;
227 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
228 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
229 std::vector<float> GetRFSteps_HF ()
override;
230 std::vector<float> GetRFSteps_VHF()
override;
231 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
232 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
235 std::vector<float> GetIFSteps_HF ()
override;
236 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
237 std::vector<float> GetIFSteps_VHF()
override;
238 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
242 std::vector<float> rf_steps_hf;
243 std::vector<float> if_steps_hf;
244 static const std::vector<float> rf_steps_vhf;
245 static const std::vector<float> if_steps_vhf;
247 uint32_t freqLO_VHF_offset = 0;
253 const char* GetName()
override {
return "RX999"; }
254 float getGain()
override {
return RX888_GAINFACTOR; }
256 const std::array<float, 2> GetADCSampleRateLimits()
override;
259 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
260 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
261 uint32_t GetTunerFrequency_HF()
override;
262 uint32_t GetTunerFrequency_VHF()
override;
265 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
266 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
267 std::vector<float> GetRFSteps_HF ()
override;
268 std::vector<float> GetRFSteps_VHF()
override;
269 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
270 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
273 std::vector<float> GetIFSteps_HF ()
override;
274 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
275 std::vector<float> GetIFSteps_VHF()
override;
276 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
279 std::vector<float> if_steps_hf;
285 const char* GetName()
override {
return "HF103"; }
286 float getGain()
override {
return HF103_GAINFACTOR; }
288 const std::array<float, 2> GetADCSampleRateLimits()
override;
291 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
292 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
293 uint32_t GetTunerFrequency_HF()
override;
294 uint32_t GetTunerFrequency_VHF()
override;
297 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
298 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
299 std::vector<float> GetRFSteps_HF ()
override;
300 std::vector<float> GetRFSteps_VHF()
override;
301 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
302 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
305 std::vector<float> GetIFSteps_HF ()
override;
306 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
307 std::vector<float> GetIFSteps_VHF()
override;
308 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
311 static const int step_size = 64;
312 std::vector<float> rf_steps_hf;
318 const char* GetName()
override {
return "Lucy"; }
319 float getGain()
override {
return HF103_GAINFACTOR; }
321 const std::array<float, 2> GetADCSampleRateLimits()
override;
324 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
325 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
326 uint32_t GetTunerFrequency_HF()
override;
327 uint32_t GetTunerFrequency_VHF()
override;
330 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
331 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
332 std::vector<float> GetRFSteps_HF ()
override;
333 std::vector<float> GetRFSteps_VHF()
override;
334 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
335 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
338 std::vector<float> GetIFSteps_HF ()
override;
339 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
340 std::vector<float> GetIFSteps_VHF()
override;
341 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
344 std::vector<float> rf_steps_hf;
345 std::vector<float> if_steps_hf;
351 const char* GetName()
override {
return "Dummy"; }
352 float getGain()
override {
return 0; }
354 const std::array<float, 2> GetADCSampleRateLimits()
override {
return std::array<float, 2>{ 1000000, 64000000 }; };
356 sddc_rf_mode_t GetBestRFMode(uint64_t)
override {
return HFMODE; }
357 sddc_err_t SetRFMode(sddc_rf_mode_t)
override {
return ERR_SUCCESS; }
359 sddc_err_t SetCenterFrequency_HF (uint32_t)
override {
return ERR_SUCCESS; };
360 sddc_err_t SetCenterFrequency_VHF(uint32_t)
override {
return ERR_SUCCESS; };
361 uint32_t GetTunerFrequency_HF()
override {
return 0; };
362 uint32_t GetTunerFrequency_VHF()
override {
return 0; };
364 std::vector<float> GetRFSteps_HF ()
override {
return std::vector<float>(); };
365 std::vector<float> GetRFSteps_VHF()
override {
return std::vector<float>(); };
366 sddc_err_t SetRFAttenuation_HF (
size_t)
override {
return ERR_SUCCESS; };
367 sddc_err_t SetRFAttenuation_VHF(uint16_t)
override {
return ERR_SUCCESS; };
370 std::vector<float> GetIFSteps_HF ()
override {
return std::vector<float>(); };
371 sddc_err_t SetIFGain_HF (
size_t)
override {
return ERR_SUCCESS; };
372 std::vector<float> GetIFSteps_VHF()
override {
return std::vector<float>(); };
373 sddc_err_t SetIFGain_VHF (
size_t)
override {
return ERR_SUCCESS; };
sddc_err_t SetLED(sddc_leds_t led, bool on)
Change the state of an LED.
Definition RadioHardware.cpp:208