mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2026-01-10 18:49:59 +01:00
improve bw_client input thread
This commit is contained in:
parent
0a78f4abd2
commit
2f948b9e2d
|
|
@ -28,7 +28,7 @@ sdrProc.skipLines(20)
|
|||
# #### MULTIMON configuration
|
||||
mmProc = ProcessManager("/opt/multimon/multimon-ng", textMode=True)
|
||||
# mmProc.addArgument("-i")
|
||||
mmProc.addArgument("-a FMSFSK -a POCSAG512 -a POCSAG1200 -a POCSAG2400")
|
||||
mmProc.addArgument("-a FMSFSK -a POCSAG512 -a POCSAG1200 -a POCSAG2400 -a ZVEI1")
|
||||
# mmProc.addArgument("-f alpha")
|
||||
mmProc.addArgument("-t raw -")
|
||||
mmProc.setStdin(sdrProc.stdout)
|
||||
|
|
|
|||
|
|
@ -40,5 +40,5 @@ class Decoder:
|
|||
elif "ZVEI" in data:
|
||||
return ZveiDecoder.decode(data)
|
||||
else:
|
||||
logging.error("no decoder found for: %s", data)
|
||||
logging.warning("no decoder found for: %s", data)
|
||||
return None
|
||||
|
|
|
|||
43
bw_client.py
43
bw_client.py
|
|
@ -80,33 +80,46 @@ try:
|
|||
port = broadcastClient.serverPort
|
||||
|
||||
inputQueue = queue.Queue()
|
||||
inputThreadRunning = True
|
||||
|
||||
# ========== INPUT CODE ==========
|
||||
def handleSDRInput(dataQueue, config):
|
||||
sdrProc = ProcessManager("/usr/bin/rtl_fm")
|
||||
sdrProc.addArgument("-f 85M")
|
||||
sdrProc.addArgument("-m fm")
|
||||
sdrProc.start(True)
|
||||
for freq in config.get("frequencies"):
|
||||
sdrProc.addArgument("-f " + freq)
|
||||
sdrProc.addArgument("-l 50") # required fore scanning function
|
||||
if not sdrProc.start():
|
||||
exit(0)
|
||||
# sdrProc.skipLines(20)
|
||||
|
||||
mmProc = ProcessManager("/opt/multimon/multimon-ng", textMode=True)
|
||||
# mmProc.addArgument("-i")
|
||||
# mmProc.addArgument("-a POCSAG1200 -a FMSFSK -a ZVEI1")
|
||||
mmProc.addArgument("-a FMSFSK -a POCSAG512 -a POCSAG1200 -a POCSAG2400 -a ZVEI1")
|
||||
mmProc.addArgument("-f aplha")
|
||||
mmProc.addArgument("-t raw /dev/stdin -")
|
||||
mmProc.addArgument("-t raw -")
|
||||
mmProc.setStdin(sdrProc.stdout)
|
||||
# mmProc.addArgument("./poc1200.raw")
|
||||
mmProc.start(True)
|
||||
if not mmProc.start():
|
||||
exit(0)
|
||||
mmProc.skipLines(5)
|
||||
while 1:
|
||||
|
||||
while inputThreadRunning:
|
||||
if not sdrProc.isRunning:
|
||||
logging.warning("rtl_fm was down - try to restart")
|
||||
sdrProc.start()
|
||||
# sdrProc.skipLines(20)
|
||||
if not mmProc.isRunning:
|
||||
logging.warning("multimon was down - try to restart")
|
||||
mmProc.start()
|
||||
mmProc.skipLines(5)
|
||||
line = mmProc.readline()
|
||||
if line:
|
||||
dataQueue.put_nowait((line, time.time()))
|
||||
logging.debug("Add data to queue")
|
||||
print(line)
|
||||
if sdrProc.isRunning and mmProc.isRunning:
|
||||
line = mmProc.readline()
|
||||
if line:
|
||||
dataQueue.put_nowait((line, time.time()))
|
||||
logging.debug("Add data to queue")
|
||||
print(line)
|
||||
logging.debug("stoping thread")
|
||||
mmProc.stop()
|
||||
sdrProc.stop()
|
||||
|
||||
# ========== INPUT CODE ==========
|
||||
|
||||
mmThread = threading.Thread(target=handleSDRInput, name="mmReader", args=(inputQueue, bwConfig.get("inputSource", "sdr")))
|
||||
|
|
@ -158,4 +171,6 @@ except: # pragma: no cover
|
|||
finally:
|
||||
logging.debug("Starting shutdown routine")
|
||||
bwClient.disconnect()
|
||||
inputThreadRunning = False
|
||||
mmThread.join()
|
||||
logging.debug("BOSWatch client has stopped ...")
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ server: # only used if useBroadcast = no
|
|||
inputSource:
|
||||
sdr:
|
||||
device: 0
|
||||
frequency: 85.000M
|
||||
frequencies:
|
||||
- 85M
|
||||
- 86M
|
||||
error: 0
|
||||
squelch: 0
|
||||
gain: 100
|
||||
|
|
|
|||
Loading…
Reference in a new issue