mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-30 20:40:20 -04:00 
			
		
		
		
	BladerRF2 input support (6). REST API
This commit is contained in:
		
							parent
							
								
									7dfe094364
								
							
						
					
					
						commit
						cdeb6e6c42
					
				| @ -773,3 +773,161 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo | |||||||
| 
 | 
 | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | int BladeRF2Input::webapiSettingsGet( | ||||||
|  |                 SWGSDRangel::SWGDeviceSettings& response, | ||||||
|  |                 QString& errorMessage __attribute__((unused))) | ||||||
|  | { | ||||||
|  |     response.setBladeRf2InputSettings(new SWGSDRangel::SWGBladeRF2InputSettings()); | ||||||
|  |     response.getBladeRf2InputSettings()->init(); | ||||||
|  |     webapiFormatDeviceSettings(response, m_settings); | ||||||
|  |     return 200; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int BladeRF2Input::webapiSettingsPutPatch( | ||||||
|  |                 bool force, | ||||||
|  |                 const QStringList& deviceSettingsKeys, | ||||||
|  |                 SWGSDRangel::SWGDeviceSettings& response, // query + response
 | ||||||
|  |                 QString& errorMessage __attribute__((unused))) | ||||||
|  | { | ||||||
|  |     BladeRF2InputSettings settings = m_settings; | ||||||
|  | 
 | ||||||
|  |     if (deviceSettingsKeys.contains("centerFrequency")) { | ||||||
|  |         settings.m_centerFrequency = response.getBladeRf2InputSettings()->getCenterFrequency(); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("devSampleRate")) { | ||||||
|  |         settings.m_devSampleRate = response.getBladeRf2InputSettings()->getDevSampleRate(); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("bandwidth")) { | ||||||
|  |         settings.m_bandwidth = response.getBladeRf2InputSettings()->getBandwidth(); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("log2Decim")) { | ||||||
|  |         settings.m_log2Decim = response.getBladeRf2InputSettings()->getLog2Decim(); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("fcPos")) { | ||||||
|  |         settings.m_fcPos = static_cast<BladeRF2InputSettings::fcPos_t>(response.getBladeRf2InputSettings()->getFcPos()); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("dcBlock")) { | ||||||
|  |         settings.m_dcBlock = response.getBladeRf2InputSettings()->getDcBlock() != 0; | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("iqCorrection")) { | ||||||
|  |         settings.m_iqCorrection = response.getBladeRf2InputSettings()->getIqCorrection() != 0; | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("biasTee")) { | ||||||
|  |         settings.m_biasTee = response.getBladeRf2InputSettings()->getBiasTee() != 0; | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("gainMode")) { | ||||||
|  |         settings.m_gainMode = response.getBladeRf2InputSettings()->getGainMode(); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("globalGain")) { | ||||||
|  |         settings.m_globalGain = response.getBladeRf2InputSettings()->getGlobalGain(); | ||||||
|  |     } | ||||||
|  |     if (deviceSettingsKeys.contains("fileRecordName")) { | ||||||
|  |         settings.m_fileRecordName = *response.getBladeRf1InputSettings()->getFileRecordName(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     MsgConfigureBladeRF2 *msg = MsgConfigureBladeRF2::create(settings, force); | ||||||
|  |     m_inputMessageQueue.push(msg); | ||||||
|  | 
 | ||||||
|  |     if (m_guiMessageQueue) // forward to GUI if any
 | ||||||
|  |     { | ||||||
|  |         MsgConfigureBladeRF2 *msgToGUI = MsgConfigureBladeRF2::create(settings, force); | ||||||
|  |         m_guiMessageQueue->push(msgToGUI); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     webapiFormatDeviceSettings(response, settings); | ||||||
|  |     return 200; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int BladeRF2Input::webapiReportGet(SWGSDRangel::SWGDeviceReport& response, QString& errorMessage __attribute__((unused))) | ||||||
|  | { | ||||||
|  |     response.setBladeRf2InputReport(new SWGSDRangel::SWGBladeRF2InputReport()); | ||||||
|  |     response.getBladeRf2InputReport()->init(); | ||||||
|  |     webapiFormatDeviceReport(response); | ||||||
|  |     return 200; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void BladeRF2Input::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const BladeRF2InputSettings& settings) | ||||||
|  | { | ||||||
|  |     response.getBladeRf2InputSettings()->setCenterFrequency(settings.m_centerFrequency); | ||||||
|  |     response.getBladeRf2InputSettings()->setDevSampleRate(settings.m_devSampleRate); | ||||||
|  |     response.getBladeRf2InputSettings()->setBandwidth(settings.m_bandwidth); | ||||||
|  |     response.getBladeRf2InputSettings()->setLog2Decim(settings.m_log2Decim); | ||||||
|  |     response.getBladeRf2InputSettings()->setFcPos((int) settings.m_fcPos); | ||||||
|  |     response.getBladeRf2InputSettings()->setDcBlock(settings.m_dcBlock ? 1 : 0); | ||||||
|  |     response.getBladeRf2InputSettings()->setIqCorrection(settings.m_iqCorrection ? 1 : 0); | ||||||
|  |     response.getBladeRf2InputSettings()->setBiasTee(settings.m_biasTee ? 1 : 0); | ||||||
|  |     response.getBladeRf2InputSettings()->setGainMode(settings.m_gainMode); | ||||||
|  |     response.getBladeRf2InputSettings()->setGlobalGain(settings.m_globalGain); | ||||||
|  | 
 | ||||||
|  |     if (response.getBladeRf2InputSettings()->getFileRecordName()) { | ||||||
|  |         *response.getBladeRf2InputSettings()->getFileRecordName() = settings.m_fileRecordName; | ||||||
|  |     } else { | ||||||
|  |         response.getBladeRf2InputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void BladeRF2Input::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response) | ||||||
|  | { | ||||||
|  |     DeviceBladeRF2 *device = m_deviceShared.m_dev; | ||||||
|  | 
 | ||||||
|  |     if (device) | ||||||
|  |     { | ||||||
|  |         int min, max, step; | ||||||
|  |         uint64_t f_min, f_max; | ||||||
|  | 
 | ||||||
|  |         device->getBandwidthRangeRx(min, max, step); | ||||||
|  | 
 | ||||||
|  |         response.getBladeRf2InputReport()->setBandwidthRange(new SWGSDRangel::SWGRange); | ||||||
|  |         response.getBladeRf2InputReport()->getBandwidthRange()->setMin(min); | ||||||
|  |         response.getBladeRf2InputReport()->getBandwidthRange()->setMax(max); | ||||||
|  |         response.getBladeRf2InputReport()->getBandwidthRange()->setStep(step); | ||||||
|  | 
 | ||||||
|  |         device->getFrequencyRangeRx(f_min, f_max, step); | ||||||
|  | 
 | ||||||
|  |         response.getBladeRf2InputReport()->setFrequencyRange(new SWGSDRangel::SWGRange); | ||||||
|  |         response.getBladeRf2InputReport()->getFrequencyRange()->setMin(f_min); | ||||||
|  |         response.getBladeRf2InputReport()->getFrequencyRange()->setMax(f_max); | ||||||
|  |         response.getBladeRf2InputReport()->getFrequencyRange()->setStep(step); | ||||||
|  | 
 | ||||||
|  |         device->getGlobalGainRangeRx(min, max, step); | ||||||
|  | 
 | ||||||
|  |         response.getBladeRf2InputReport()->setGlobalGainRange(new SWGSDRangel::SWGRange); | ||||||
|  |         response.getBladeRf2InputReport()->getGlobalGainRange()->setMin(min); | ||||||
|  |         response.getBladeRf2InputReport()->getGlobalGainRange()->setMax(max); | ||||||
|  |         response.getBladeRf2InputReport()->getGlobalGainRange()->setStep(step); | ||||||
|  | 
 | ||||||
|  |         device->getSampleRateRangeRx(min, max, step); | ||||||
|  | 
 | ||||||
|  |         response.getBladeRf2InputReport()->setSampleRateRange(new SWGSDRangel::SWGRange); | ||||||
|  |         response.getBladeRf2InputReport()->getSampleRateRange()->setMin(min); | ||||||
|  |         response.getBladeRf2InputReport()->getSampleRateRange()->setMax(max); | ||||||
|  |         response.getBladeRf2InputReport()->getSampleRateRange()->setStep(step); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int BladeRF2Input::webapiRunGet( | ||||||
|  |         SWGSDRangel::SWGDeviceState& response, | ||||||
|  |         QString& errorMessage __attribute__((unused))) | ||||||
|  | { | ||||||
|  |     m_deviceAPI->getDeviceEngineStateStr(*response.getState()); | ||||||
|  |     return 200; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int BladeRF2Input::webapiRun( | ||||||
|  |         bool run, | ||||||
|  |         SWGSDRangel::SWGDeviceState& response, | ||||||
|  |         QString& errorMessage __attribute__((unused))) | ||||||
|  | { | ||||||
|  |     m_deviceAPI->getDeviceEngineStateStr(*response.getState()); | ||||||
|  |     MsgStartStop *message = MsgStartStop::create(run); | ||||||
|  |     m_inputMessageQueue.push(message); | ||||||
|  | 
 | ||||||
|  |     if (m_guiMessageQueue) // forward to GUI if any
 | ||||||
|  |     { | ||||||
|  |         MsgStartStop *msgToGUI = MsgStartStop::create(run); | ||||||
|  |         m_guiMessageQueue->push(msgToGUI); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return 200; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user