mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-22 08:04:49 -05:00
Merge branch 'f4exb:master' into mac_ci
This commit is contained in:
commit
84251abda7
@ -2423,7 +2423,8 @@ void GLSpectrumView::peakWidth(const Real *spectrum, int center, int &left, int
|
|||||||
float prevRight = spectrum[center];
|
float prevRight = spectrum[center];
|
||||||
left = center - 1;
|
left = center - 1;
|
||||||
right = center + 1;
|
right = center + 1;
|
||||||
while ((left > maxLeft) && (spectrum[left] < prevLeft) && (right < maxRight) && (spectrum[right] < prevRight))
|
// Use <= as SSB spectrums have duplicated values
|
||||||
|
while ((left > maxLeft) && (spectrum[left] <= prevLeft) && (right < maxRight) && (spectrum[right] <= prevRight))
|
||||||
{
|
{
|
||||||
prevLeft = spectrum[left];
|
prevLeft = spectrum[left];
|
||||||
left--;
|
left--;
|
||||||
|
@ -495,11 +495,20 @@ void MainServer::changeSampleSource(int deviceSetIndex, int selectedDeviceIndex)
|
|||||||
DeviceSampleSource *source = deviceSet->m_deviceAPI->getPluginInterface()->createSampleSourcePluginInstance(
|
DeviceSampleSource *source = deviceSet->m_deviceAPI->getPluginInterface()->createSampleSourcePluginInstance(
|
||||||
deviceSet->m_deviceAPI->getSamplingDeviceId(), deviceSet->m_deviceAPI);
|
deviceSet->m_deviceAPI->getSamplingDeviceId(), deviceSet->m_deviceAPI);
|
||||||
deviceSet->m_deviceAPI->setSampleSource(source);
|
deviceSet->m_deviceAPI->setSampleSource(source);
|
||||||
|
// wait for sample source to be set, before loading settings
|
||||||
|
auto connection = new QMetaObject::Connection();
|
||||||
|
*connection = connect(
|
||||||
|
deviceSet->m_deviceSourceEngine,
|
||||||
|
&DSPDeviceSourceEngine::sampleSet,
|
||||||
|
this,
|
||||||
|
[=]() {
|
||||||
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
|
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
|
||||||
|
|
||||||
// Notify
|
// Notify
|
||||||
emit m_mainCore->deviceChanged(deviceSetIndex);
|
emit m_mainCore->deviceChanged(deviceSetIndex);
|
||||||
|
QObject::disconnect(*connection);
|
||||||
|
delete connection;
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,8 +575,20 @@ void MainServer::changeSampleSink(int deviceSetIndex, int selectedDeviceIndex)
|
|||||||
DeviceSampleSink *sink = deviceSet->m_deviceAPI->getPluginInterface()->createSampleSinkPluginInstance(
|
DeviceSampleSink *sink = deviceSet->m_deviceAPI->getPluginInterface()->createSampleSinkPluginInstance(
|
||||||
deviceSet->m_deviceAPI->getSamplingDeviceId(), deviceSet->m_deviceAPI);
|
deviceSet->m_deviceAPI->getSamplingDeviceId(), deviceSet->m_deviceAPI);
|
||||||
deviceSet->m_deviceAPI->setSampleSink(sink);
|
deviceSet->m_deviceAPI->setSampleSink(sink);
|
||||||
|
// wait for sample source to be set, before loading settings
|
||||||
|
auto connection = new QMetaObject::Connection();
|
||||||
|
*connection = connect(
|
||||||
|
deviceSet->m_deviceSourceEngine,
|
||||||
|
&DSPDeviceSourceEngine::sampleSet,
|
||||||
|
this,
|
||||||
|
[=]() {
|
||||||
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
|
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
|
||||||
|
// Notify
|
||||||
|
emit m_mainCore->deviceChanged(deviceSetIndex);
|
||||||
|
QObject::disconnect(*connection);
|
||||||
|
delete connection;
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -620,8 +641,20 @@ void MainServer::changeSampleMIMO(int deviceSetIndex, int selectedDeviceIndex)
|
|||||||
DeviceSampleMIMO *mimo = deviceSet->m_deviceAPI->getPluginInterface()->createSampleMIMOPluginInstance(
|
DeviceSampleMIMO *mimo = deviceSet->m_deviceAPI->getPluginInterface()->createSampleMIMOPluginInstance(
|
||||||
deviceSet->m_deviceAPI->getSamplingDeviceId(), deviceSet->m_deviceAPI);
|
deviceSet->m_deviceAPI->getSamplingDeviceId(), deviceSet->m_deviceAPI);
|
||||||
deviceSet->m_deviceAPI->setSampleMIMO(mimo);
|
deviceSet->m_deviceAPI->setSampleMIMO(mimo);
|
||||||
|
// wait for sample source to be set, before loading settings
|
||||||
|
auto connection = new QMetaObject::Connection();
|
||||||
|
*connection = connect(
|
||||||
|
deviceSet->m_deviceSourceEngine,
|
||||||
|
&DSPDeviceSourceEngine::sampleSet,
|
||||||
|
this,
|
||||||
|
[=]() {
|
||||||
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
|
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
|
||||||
|
// Notify
|
||||||
|
emit m_mainCore->deviceChanged(deviceSetIndex);
|
||||||
|
QObject::disconnect(*connection);
|
||||||
|
delete connection;
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
swagger/sdrangel/examples/add_channel.py
Normal file → Executable file
12
swagger/sdrangel/examples/add_channel.py
Normal file → Executable file
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import requests, json, traceback, sys
|
import requests, json, traceback, sys
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
@ -12,12 +12,12 @@ def getInputOptions():
|
|||||||
parser = OptionParser(usage="usage: %%prog [-t]\n")
|
parser = OptionParser(usage="usage: %%prog [-t]\n")
|
||||||
parser.add_option("-a", "--address", dest="address", help="address and port", metavar="ADDRESS", type="string")
|
parser.add_option("-a", "--address", dest="address", help="address and port", metavar="ADDRESS", type="string")
|
||||||
parser.add_option("-d", "--device-index", dest="device_index", help="device set index", metavar="INDEX", type="int")
|
parser.add_option("-d", "--device-index", dest="device_index", help="device set index", metavar="INDEX", type="int")
|
||||||
parser.add_option("-c", "--channel-id", dest="channel_id", help="channel ID of channel to add", metavar="ID", type="string")
|
parser.add_option("-c", "--channel-id", dest="channel_id", help="channel ID of channel to add (E.g. NFMDemod)", metavar="ID", type="string")
|
||||||
|
|
||||||
(options, args) = parser.parse_args()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
if options.address is None:
|
if options.address is None:
|
||||||
options.address = "127.0.0.1:8888"
|
options.address = "127.0.0.1:8091"
|
||||||
|
|
||||||
if options.device_index is None or options.device_index < 0:
|
if options.device_index is None or options.device_index < 0:
|
||||||
options.device_index = 0
|
options.device_index = 0
|
||||||
@ -37,12 +37,12 @@ def main():
|
|||||||
base_url = "http://%s/sdrangel" % options.address
|
base_url = "http://%s/sdrangel" % options.address
|
||||||
device_url = base_url + ("/deviceset/%d/channel" % options.device_index)
|
device_url = base_url + ("/deviceset/%d/channel" % options.device_index)
|
||||||
r = requests.post(url=device_url, json={"direction": 0, "channelType": options.channel_id})
|
r = requests.post(url=device_url, json={"direction": 0, "channelType": options.channel_id})
|
||||||
if r.status_code / 100 == 2:
|
if r.status_code // 100 == 2:
|
||||||
print("Success")
|
print("Success")
|
||||||
print json.dumps(r.json(), indent=4, sort_keys=True)
|
print(json.dumps(r.json(), indent=4, sort_keys=True))
|
||||||
else:
|
else:
|
||||||
print("Error adding channel. HTTP: %d" % r.status_code)
|
print("Error adding channel. HTTP: %d" % r.status_code)
|
||||||
print json.dumps(r.json(), indent=4, sort_keys=True)
|
print(json.dumps(r.json(), indent=4, sort_keys=True))
|
||||||
|
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
tb = traceback.format_exc()
|
tb = traceback.format_exc()
|
||||||
|
24
swagger/sdrangel/examples/rtlsdr_settings.py
Normal file → Executable file
24
swagger/sdrangel/examples/rtlsdr_settings.py
Normal file → Executable file
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
||||||
import requests, json
|
import requests, json
|
||||||
|
|
||||||
base_url = "http://127.0.0.1:8091/sdrangel"
|
base_url = "http://127.0.0.1:8091/sdrangel"
|
||||||
@ -14,7 +14,7 @@ requests_methods = {
|
|||||||
|
|
||||||
def getHwType():
|
def getHwType():
|
||||||
r = requests.get(url=base_url + "/deviceset/0")
|
r = requests.get(url=base_url + "/deviceset/0")
|
||||||
if r.status_code / 100 == 2:
|
if r.status_code // 100 == 2:
|
||||||
rj = r.json()
|
rj = r.json()
|
||||||
devj = rj.get('samplingDevice', None)
|
devj = rj.get('samplingDevice', None)
|
||||||
if devj is not None:
|
if devj is not None:
|
||||||
@ -27,8 +27,8 @@ def getHwType():
|
|||||||
|
|
||||||
def selectRtlSdr():
|
def selectRtlSdr():
|
||||||
r = requests.put(url=base_url + "/deviceset/0/device", json={"hwType": "RTLSDR"})
|
r = requests.put(url=base_url + "/deviceset/0/device", json={"hwType": "RTLSDR"})
|
||||||
if r.status_code / 100 == 2:
|
if r.status_code // 100 == 2:
|
||||||
print json.dumps(r.json(), indent=4, sort_keys=True)
|
print(json.dumps(r.json(), indent=4, sort_keys=True))
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
@ -36,7 +36,7 @@ def selectRtlSdr():
|
|||||||
|
|
||||||
def getRtlSdrSettings():
|
def getRtlSdrSettings():
|
||||||
r = requests.get(url=base_url + "/deviceset/0/device/settings")
|
r = requests.get(url=base_url + "/deviceset/0/device/settings")
|
||||||
if r.status_code / 100 == 2:
|
if r.status_code // 100 == 2:
|
||||||
rj = r.json()
|
rj = r.json()
|
||||||
hwType = rj.get('deviceHwType', None)
|
hwType = rj.get('deviceHwType', None)
|
||||||
if hwType is not None and hwType == "RTLSDR":
|
if hwType is not None and hwType == "RTLSDR":
|
||||||
@ -51,10 +51,10 @@ def getRtlSdrSettings():
|
|||||||
def patchRtlSdrSettings(settings):
|
def patchRtlSdrSettings(settings):
|
||||||
new_settings = {"deviceHwType": "RTLSDR", "direction": 0, "rtlSdrSettings": settings}
|
new_settings = {"deviceHwType": "RTLSDR", "direction": 0, "rtlSdrSettings": settings}
|
||||||
r = requests.patch(url=base_url + "/deviceset/0/device/settings", json=new_settings)
|
r = requests.patch(url=base_url + "/deviceset/0/device/settings", json=new_settings)
|
||||||
if r.status_code / 100 == 2:
|
if r.status_code // 100 == 2:
|
||||||
print json.dumps(r.json(), indent=4, sort_keys=True)
|
print(json.dumps(r.json(), indent=4, sort_keys=True))
|
||||||
else:
|
else:
|
||||||
print "Error HTTP:", r.status_code
|
print("Error HTTP:", r.status_code)
|
||||||
|
|
||||||
|
|
||||||
def deviceRun(run):
|
def deviceRun(run):
|
||||||
@ -62,10 +62,10 @@ def deviceRun(run):
|
|||||||
r = requests.post(url=base_url + "/deviceset/0/device/run")
|
r = requests.post(url=base_url + "/deviceset/0/device/run")
|
||||||
else:
|
else:
|
||||||
r = requests.delete(url=base_url + "/deviceset/0/device/run")
|
r = requests.delete(url=base_url + "/deviceset/0/device/run")
|
||||||
if r.status_code / 100 == 2:
|
if r.status_code // 100 == 2:
|
||||||
print json.dumps(r.json(), indent=4, sort_keys=True)
|
print(json.dumps(r.json(), indent=4, sort_keys=True))
|
||||||
else:
|
else:
|
||||||
print "Error HTTP:", r.status_code
|
print("Error HTTP:", r.status_code)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -73,8 +73,10 @@ def main():
|
|||||||
if hwType is not None:
|
if hwType is not None:
|
||||||
if hwType != "RTLSDR":
|
if hwType != "RTLSDR":
|
||||||
if not selectRtlSdr():
|
if not selectRtlSdr():
|
||||||
|
print("Device set 0 is not an RTLSDR device")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
|
print("Device set 0 does not exist")
|
||||||
return
|
return
|
||||||
settings = getRtlSdrSettings()
|
settings = getRtlSdrSettings()
|
||||||
if settings is not None:
|
if settings is not None:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import requests, json, traceback, sys, time
|
import requests, json, traceback, sys, time
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
Loading…
Reference in New Issue
Block a user