39 sddc_rf_mode_t GetRFMode();
40 virtual sddc_rf_mode_t GetBestRFMode(uint64_t freq) = 0;
41 virtual sddc_err_t SetRFMode(sddc_rf_mode_t mode) = 0;
44 uint32_t GetADCSampleRate();
45 sddc_err_t SetADCSampleRate(uint32_t samplefreq);
46 virtual const array<float, 2> GetADCSampleRateLimits() = 0;
50 sddc_err_t SetBiasT_HF (
bool new_state);
52 sddc_err_t SetBiasT_VHF(
bool new_state);
61 uint32_t GetCenterFrequency_HF ();
62 uint32_t GetCenterFrequency_VHF();
66 sddc_err_t SetDither(
bool new_state);
68 sddc_err_t SetPGA (
bool new_state);
70 sddc_err_t SetRand(
bool new_state);
73 sddc_err_t StartStream() {
return Fx3->Control(STARTFX3) ? ERR_SUCCESS : ERR_FX3_TRANSFER_FAILED; }
74 sddc_err_t StopStream () {
return Fx3->Control(STOPFX3) ? ERR_SUCCESS : ERR_FX3_TRANSFER_FAILED; }
77 sddc_err_t SetGPIO (uint32_t mask);
78 sddc_err_t UnsetGPIO(uint32_t mask);
79 sddc_err_t
SetLED (sddc_leds_t led,
bool on);
81 bool ReadDebugTrace(uint8_t* pdata, uint8_t len) {
return Fx3->ReadDebugTrace(pdata, len); }
85 virtual const char* GetName() = 0;
86 virtual float getGain() = 0;
89 virtual sddc_err_t SetCenterFrequency_HF (uint32_t freq) = 0;
90 virtual sddc_err_t SetCenterFrequency_VHF(uint32_t freq) = 0;
91 virtual uint32_t GetTunerFrequency_HF() = 0;
92 virtual uint32_t GetTunerFrequency_VHF() = 0;
95 virtual vector<float> GetRFSteps_HF () = 0;
96 virtual vector<float> GetRFSteps_VHF() = 0;
97 virtual sddc_err_t SetRFAttenuation_HF (
size_t attIndex) = 0;
98 virtual sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex) = 0;
101 virtual vector<float> GetIFSteps_HF () = 0;
102 virtual vector<float> GetIFSteps_VHF() = 0;
103 virtual sddc_err_t SetIFGain_HF (
size_t attIndex) = 0;
104 virtual sddc_err_t SetIFGain_VHF (
size_t attIndex) = 0;
111 uint32_t sampleRate = 0;
112 sddc_rf_mode_t currentRFMode = NOMODE;
114 bool stateDither =
false;
115 bool statePGA =
false;
116 bool stateRand =
false;
117 bool stateBiasT_HF =
false;
118 bool stateBiasT_VHF =
false;
120 uint16_t attenuationHFStep = 0;
121 uint16_t attenuationVHFStep = 0;
122 uint16_t gainHFStep = 0;
123 uint16_t gainVHFStep = 0;
125 uint32_t freqLO_HF = 0;
126 uint32_t freqLO_VHF = 0;
133 const char* GetName()
override {
return "BBRF103"; }
134 float getGain()
override {
return BBRF103_GAINFACTOR; }
136 const array<float, 2> GetADCSampleRateLimits()
override;
139 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
140 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
141 uint32_t GetTunerFrequency_HF()
override;
142 uint32_t GetTunerFrequency_VHF()
override;
145 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
146 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
147 vector<float> GetRFSteps_HF ()
override;
148 vector<float> GetRFSteps_VHF()
override;
149 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
150 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
153 vector<float> GetIFSteps_HF ()
override;
154 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
155 vector<float> GetIFSteps_VHF()
override;
156 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
159 static const vector<float> rf_steps_vhf;
160 static const vector<float> rf_steps_hf;
161 static const vector<float> if_steps_vhf;
174 const char* GetName()
override {
return "RX888 mkII"; }
175 float getGain()
override {
return RX888mk2_GAINFACTOR; }
177 const array<float, 2> GetADCSampleRateLimits()
override;
179 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
180 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
181 uint32_t GetTunerFrequency_HF()
override;
182 uint32_t GetTunerFrequency_VHF()
override;
185 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
186 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
187 vector<float> GetRFSteps_HF()
override;
188 vector<float> GetRFSteps_VHF()
override;
189 sddc_err_t SetRFAttenuation_HF(
size_t attIndex)
override;
190 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
193 vector<float> GetIFSteps_HF ()
override;
194 vector<float> GetIFSteps_VHF()
override;
195 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
196 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
199 vector<float> rf_steps_hf = vector<float>(64, 0);
200 vector<float> if_steps_hf = vector<float>(127, 0);
201 static const vector<float> rf_steps_vhf;
202 static const vector<float> if_steps_vhf;
208 const char* GetName()
override {
return "RX888 mkIII"; }
209 float getGain()
override {
return RX888mk2_GAINFACTOR; }
211 const array<float, 2> GetADCSampleRateLimits()
override;
214 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
215 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
216 uint32_t GetTunerFrequency_HF()
override;
217 uint32_t GetTunerFrequency_VHF()
override;
220 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
221 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
222 vector<float> GetRFSteps_HF ()
override;
223 vector<float> GetRFSteps_VHF()
override;
224 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
225 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
228 vector<float> GetIFSteps_HF ()
override;
229 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
230 vector<float> GetIFSteps_VHF()
override;
231 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
235 vector<float> rf_steps_hf;
236 vector<float> if_steps_hf;
237 static const vector<float> rf_steps_vhf;
238 static const vector<float> if_steps_vhf;
240 uint32_t freqLO_VHF_offset = 0;
246 const char* GetName()
override {
return "RX999"; }
247 float getGain()
override {
return RX888_GAINFACTOR; }
249 const array<float, 2> GetADCSampleRateLimits()
override;
252 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
253 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
254 uint32_t GetTunerFrequency_HF()
override;
255 uint32_t GetTunerFrequency_VHF()
override;
258 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
259 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
260 vector<float> GetRFSteps_HF ()
override;
261 vector<float> GetRFSteps_VHF()
override;
262 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
263 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
266 vector<float> GetIFSteps_HF ()
override;
267 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
268 vector<float> GetIFSteps_VHF()
override;
269 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
272 vector<float> if_steps_hf;
278 const char* GetName()
override {
return "HF103"; }
279 float getGain()
override {
return HF103_GAINFACTOR; }
281 const array<float, 2> GetADCSampleRateLimits()
override;
284 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
285 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
286 uint32_t GetTunerFrequency_HF()
override;
287 uint32_t GetTunerFrequency_VHF()
override;
290 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
291 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
292 vector<float> GetRFSteps_HF ()
override;
293 vector<float> GetRFSteps_VHF()
override;
294 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
295 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
298 vector<float> GetIFSteps_HF ()
override;
299 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
300 vector<float> GetIFSteps_VHF()
override;
301 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
304 static const int step_size = 64;
305 vector<float> rf_steps_hf;
311 const char* GetName()
override {
return "Lucy"; }
312 float getGain()
override {
return HF103_GAINFACTOR; }
314 const array<float, 2> GetADCSampleRateLimits()
override;
317 sddc_err_t SetCenterFrequency_HF (uint32_t freq)
override;
318 sddc_err_t SetCenterFrequency_VHF(uint32_t freq)
override;
319 uint32_t GetTunerFrequency_HF()
override;
320 uint32_t GetTunerFrequency_VHF()
override;
323 sddc_rf_mode_t GetBestRFMode(uint64_t freq)
override;
324 sddc_err_t SetRFMode(sddc_rf_mode_t mode)
override;
325 vector<float> GetRFSteps_HF ()
override;
326 vector<float> GetRFSteps_VHF()
override;
327 sddc_err_t SetRFAttenuation_HF (
size_t attIndex)
override;
328 sddc_err_t SetRFAttenuation_VHF(uint16_t attIndex)
override;
331 vector<float> GetIFSteps_HF ()
override;
332 sddc_err_t SetIFGain_HF (
size_t attIndex)
override;
333 vector<float> GetIFSteps_VHF()
override;
334 sddc_err_t SetIFGain_VHF (
size_t attIndex)
override;
337 vector<float> rf_steps_hf;
338 vector<float> if_steps_hf;
344 const char* GetName()
override {
return "Dummy"; }
345 float getGain()
override {
return 0; }
347 const array<float, 2> GetADCSampleRateLimits()
override {
return array<float, 2>{ 1000000, 64000000 }; };
349 sddc_rf_mode_t GetBestRFMode(uint64_t)
override {
return HFMODE; }
350 sddc_err_t SetRFMode(sddc_rf_mode_t)
override {
return ERR_SUCCESS; }
352 sddc_err_t SetCenterFrequency_HF (uint32_t)
override {
return ERR_SUCCESS; };
353 sddc_err_t SetCenterFrequency_VHF(uint32_t)
override {
return ERR_SUCCESS; };
354 uint32_t GetTunerFrequency_HF()
override {
return 0; };
355 uint32_t GetTunerFrequency_VHF()
override {
return 0; };
357 vector<float> GetRFSteps_HF ()
override {
return vector<float>(); };
358 vector<float> GetRFSteps_VHF()
override {
return vector<float>(); };
359 sddc_err_t SetRFAttenuation_HF (
size_t)
override {
return ERR_SUCCESS; };
360 sddc_err_t SetRFAttenuation_VHF(uint16_t)
override {
return ERR_SUCCESS; };
363 vector<float> GetIFSteps_HF ()
override {
return vector<float>(); };
364 sddc_err_t SetIFGain_HF (
size_t)
override {
return ERR_SUCCESS; };
365 vector<float> GetIFSteps_VHF()
override {
return vector<float>(); };
366 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:197