Files
Discord-Radio-Bot/op25Handler.py
Logan Cusano 34b8fe2c02 BUGFIG bot
- Doesn't leave properly
2022-02-18 01:56:11 -05:00

53 lines
1.4 KiB
Python

import threading
import subprocess
import time
import os
class OP25Handler: #(threading.Thread):
def __init__(self):
super().__init__()
self.OP25Dir: str = "/home/pi/op25/op25/gr-op25_repeater/apps"
self.OP25Proc = None
self.Frequency = None
def start(self) -> None:
self.open_op25()
def set_op25_parameters(self, _frequency):
self.Frequency = _frequency
def open_op25(self):
if self.OP25Proc is not None:
self.close_op25()
print(f"Starting OP25")
print(os.getcwd())
os.chdir(self.OP25Dir)
print(os.getcwd())
self.OP25Proc = subprocess.Popen([f"./rx.py", "--args", "rtl", "-N", "LNA:49", "-s",
"200000", "-o", "25600", "-U", "-f", f"{self.Frequency}e6", "-X", "-2",
"-l" "http:0.0.0.0:8080"])
def close_op25(self):
print(f"Closing OP25")
try:
self.OP25Proc.kill()
seconds_waited = 0
while self.OP25Proc.poll() is None:
# Terminate the process every 5 seconds
if seconds_waited % 5 == 0:
print("Terminating OP25")
self.OP25Proc.terminate()
time.sleep(1)
seconds_waited += 1
except Exception as e:
print(e)