mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-02 14:04:46 -04:00
Server and web API: added HackRF support
This commit is contained in:
@@ -279,7 +279,7 @@ bool HackRFOutput::handleMessage(const Message& message)
|
||||
}
|
||||
}
|
||||
|
||||
void HackRFOutput::setCenterFrequency(quint64 freq_hz, qint32 LOppmTenths)
|
||||
void HackRFOutput::setDeviceCenterFrequency(quint64 freq_hz, qint32 LOppmTenths)
|
||||
{
|
||||
qint64 df = ((qint64)freq_hz * LOppmTenths) / 10000000LL;
|
||||
freq_hz += df;
|
||||
@@ -288,11 +288,11 @@ void HackRFOutput::setCenterFrequency(quint64 freq_hz, qint32 LOppmTenths)
|
||||
|
||||
if (rc != HACKRF_SUCCESS)
|
||||
{
|
||||
qWarning("HackRFOutput::setCenterFrequency: could not frequency to %llu Hz", freq_hz);
|
||||
qWarning("HackRFOutput::setDeviceCenterFrequency: could not frequency to %llu Hz", freq_hz);
|
||||
}
|
||||
else
|
||||
{
|
||||
qWarning("HackRFOutput::setCenterFrequency: frequency set to %llu Hz", freq_hz);
|
||||
qWarning("HackRFOutput::setDeviceCenterFrequency: frequency set to %llu Hz", freq_hz);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ bool HackRFOutput::applySettings(const HackRFOutputSettings& settings, bool forc
|
||||
{
|
||||
if (m_dev != 0)
|
||||
{
|
||||
setCenterFrequency(settings.m_centerFrequency, settings.m_LOppmTenths);
|
||||
setDeviceCenterFrequency(settings.m_centerFrequency, settings.m_LOppmTenths);
|
||||
qDebug() << "HackRFOutput::applySettings: center freq: " << settings.m_centerFrequency << " Hz LOppm: " << settings.m_LOppmTenths;
|
||||
}
|
||||
|
||||
@@ -468,6 +468,73 @@ bool HackRFOutput::applySettings(const HackRFOutputSettings& settings, bool forc
|
||||
return true;
|
||||
}
|
||||
|
||||
int HackRFOutput::webapiSettingsGet(
|
||||
SWGSDRangel::SWGDeviceSettings& response,
|
||||
QString& errorMessage __attribute__((unused)))
|
||||
{
|
||||
response.setHackRfOutputSettings(new SWGSDRangel::SWGHackRFOutputSettings());
|
||||
webapiFormatDeviceSettings(response, m_settings);
|
||||
return 200;
|
||||
}
|
||||
|
||||
int HackRFOutput::webapiSettingsPutPatch(
|
||||
bool force,
|
||||
const QStringList& deviceSettingsKeys,
|
||||
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||
QString& errorMessage __attribute__((unused)))
|
||||
{
|
||||
HackRFOutputSettings settings = m_settings;
|
||||
|
||||
if (deviceSettingsKeys.contains("centerFrequency")) {
|
||||
settings.m_centerFrequency = response.getHackRfOutputSettings()->getCenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("LOppmTenths")) {
|
||||
settings.m_LOppmTenths = response.getHackRfOutputSettings()->getLOppmTenths();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("bandwidth")) {
|
||||
settings.m_bandwidth = response.getHackRfOutputSettings()->getBandwidth();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("vgaGain")) {
|
||||
settings.m_vgaGain = response.getHackRfOutputSettings()->getVgaGain();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("log2Interp")) {
|
||||
settings.m_log2Interp = response.getHackRfOutputSettings()->getLog2Interp();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("devSampleRate")) {
|
||||
settings.m_devSampleRate = response.getHackRfOutputSettings()->getDevSampleRate();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("biasT")) {
|
||||
settings.m_biasT = response.getHackRfOutputSettings()->getBiasT() != 0;
|
||||
}
|
||||
if (deviceSettingsKeys.contains("lnaExt")) {
|
||||
settings.m_lnaExt = response.getHackRfOutputSettings()->getLnaExt() != 0;
|
||||
}
|
||||
|
||||
MsgConfigureHackRF *msg = MsgConfigureHackRF::create(settings, force);
|
||||
m_inputMessageQueue.push(msg);
|
||||
|
||||
if (m_guiMessageQueue) // forward to GUI if any
|
||||
{
|
||||
MsgConfigureHackRF *msgToGUI = MsgConfigureHackRF::create(settings, force);
|
||||
m_guiMessageQueue->push(msgToGUI);
|
||||
}
|
||||
|
||||
webapiFormatDeviceSettings(response, settings);
|
||||
return 200;
|
||||
}
|
||||
|
||||
void HackRFOutput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const HackRFOutputSettings& settings)
|
||||
{
|
||||
response.getHackRfOutputSettings()->setCenterFrequency(settings.m_centerFrequency);
|
||||
response.getHackRfOutputSettings()->setLOppmTenths(settings.m_LOppmTenths);
|
||||
response.getHackRfOutputSettings()->setBandwidth(settings.m_bandwidth);
|
||||
response.getHackRfOutputSettings()->setVgaGain(settings.m_vgaGain);
|
||||
response.getHackRfOutputSettings()->setLog2Interp(settings.m_log2Interp);
|
||||
response.getHackRfOutputSettings()->setDevSampleRate(settings.m_devSampleRate);
|
||||
response.getHackRfOutputSettings()->setBiasT(settings.m_biasT ? 1 : 0);
|
||||
response.getHackRfOutputSettings()->setLnaExt(settings.m_lnaExt ? 1 : 0);
|
||||
}
|
||||
|
||||
int HackRFOutput::webapiRunGet(
|
||||
SWGSDRangel::SWGDeviceState& response,
|
||||
QString& errorMessage __attribute__((unused)))
|
||||
|
||||
Reference in New Issue
Block a user