mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-16 13:21:50 -05:00
91 lines
2.3 KiB
Python
91 lines
2.3 KiB
Python
#!/usr/bin/env python
|
|
import requests, json
|
|
|
|
base_url = "http://127.0.0.1:8091/sdrangel"
|
|
|
|
requests_methods = {
|
|
"GET": requests.get,
|
|
"PATCH": requests.patch,
|
|
"POST": requests.post,
|
|
"PUT": requests.put,
|
|
"DELETE": requests.delete
|
|
}
|
|
|
|
|
|
def getHwType():
|
|
r = requests.get(url=base_url + "/deviceset/0")
|
|
if r.status_code / 100 == 2:
|
|
rj = r.json()
|
|
devj = rj.get('samplingDevice', None)
|
|
if devj is not None:
|
|
return devj.get('hwType' , None)
|
|
else:
|
|
return None
|
|
else:
|
|
return None
|
|
|
|
|
|
def selectRtlSdr():
|
|
r = requests.put(url=base_url + "/deviceset/0/device", json={"hwType": "RTLSDR"})
|
|
if r.status_code / 100 == 2:
|
|
print json.dumps(r.json(), indent=4, sort_keys=True)
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
def getRtlSdrSettings():
|
|
r = requests.get(url=base_url + "/deviceset/0/device/settings")
|
|
if r.status_code / 100 == 2:
|
|
rj = r.json()
|
|
hwType = rj.get('deviceHwType', None)
|
|
if hwType is not None and hwType == "RTLSDR":
|
|
settings = rj.get('rtlSdrSettings', None)
|
|
return settings
|
|
else:
|
|
return None
|
|
else:
|
|
return None
|
|
|
|
|
|
def patchRtlSdrSettings(settings):
|
|
new_settings = {"deviceHwType": "RTLSDR", "tx": 0, "rtlSdrSettings": settings}
|
|
r = requests.patch(url=base_url + "/deviceset/0/device/settings", json=new_settings)
|
|
if r.status_code / 100 == 2:
|
|
print json.dumps(r.json(), indent=4, sort_keys=True)
|
|
else:
|
|
print "Error HTTP:", r.status_code
|
|
|
|
|
|
def deviceRun(run):
|
|
if run:
|
|
r = requests.post(url=base_url + "/deviceset/0/device/run")
|
|
else:
|
|
r = requests.delete(url=base_url + "/deviceset/0/device/run")
|
|
if r.status_code / 100 == 2:
|
|
print json.dumps(r.json(), indent=4, sort_keys=True)
|
|
else:
|
|
print "Error HTTP:", r.status_code
|
|
|
|
|
|
def main():
|
|
hwType = getHwType()
|
|
if hwType is not None:
|
|
if hwType != "RTLSDR":
|
|
if not selectRtlSdr():
|
|
return
|
|
else:
|
|
return
|
|
settings = getRtlSdrSettings()
|
|
if settings is not None:
|
|
deviceRun(True)
|
|
settings["agc"] = 1
|
|
settings["dcBlock"] = 1
|
|
settings["gain"] = 445
|
|
settings["centerFrequency"] = 433900000
|
|
patchRtlSdrSettings(settings)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|