openwebrx-clone/owrx/controllers/status.py

45 lines
1.4 KiB
Python
Raw Permalink Normal View History

from .receiverid import ReceiverIdController
from owrx.version import openwebrx_version
from owrx.sdr import SdrService
from owrx.config import Config
2021-03-06 22:34:27 +00:00
from owrx.jsons import Encoder
import json
import logging
logger = logging.getLogger(__name__)
class StatusController(ReceiverIdController):
def getProfileStats(self, profile):
return {
"name": profile["name"],
"center_freq": profile["center_freq"],
"sample_rate": profile["samp_rate"],
}
def getReceiverStats(self, receiver):
stats = {
"name": receiver.getName(),
# TODO would be better to have types from the config here
"type": type(receiver).__name__,
2021-01-20 16:01:46 +00:00
"profiles": [self.getProfileStats(p) for p in receiver.getProfiles().values()],
}
return stats
2020-06-01 14:03:22 +00:00
def indexAction(self):
pm = Config.get()
status = {
"receiver": {
"name": pm["receiver_name"],
"admin": pm["receiver_admin"],
2020-03-29 16:08:26 +00:00
"gps": pm["receiver_gps"],
"asl": pm["receiver_asl"],
"location": pm["receiver_location"],
},
"max_clients": pm["max_clients"],
"version": openwebrx_version,
"sdrs": [self.getReceiverStats(r) for r in SdrService.getActiveSources().values()],
}
2021-03-06 22:34:27 +00:00
self.send_response(json.dumps(status, cls=Encoder), content_type="application/json")