diff --git a/xrd.py b/xrd.py index e8fc2bb..ad84f4a 100644 --- a/xrd.py +++ b/xrd.py @@ -17,6 +17,7 @@ PORT = int(os.getenv("PORT") or 0) or 7373 DEVICE = os.getenv("DEV") or "COM6" FREQ_NOT_ALLOWED_RANGE = [9482, 9518] +FREQ_NOT_ALLOWED_LIST = [10900] PASSWORD = os.getenv("PW") or "test" CLOCK = 12000000 # DP-666 @@ -63,7 +64,7 @@ def process_command(tef: TEF6686, data: bytes, state: dict, conn: socket.socket) if freq > 10800: continue state['last_tune'] = freq tef.FM_Tune_To(1, freq) - if FREQ_NOT_ALLOWED_RANGE and freq >= FREQ_NOT_ALLOWED_RANGE[0] and freq <= FREQ_NOT_ALLOWED_RANGE[1]: tef.AUDIO_Set_Mute(True) + if (FREQ_NOT_ALLOWED_RANGE and freq >= FREQ_NOT_ALLOWED_RANGE[0] and freq <= FREQ_NOT_ALLOWED_RANGE[1]) or (FREQ_NOT_ALLOWED_LIST and freq in FREQ_NOT_ALLOWED_LIST): tef.AUDIO_Set_Mute(True) else: tef.AUDIO_Set_Mute(False) out += f"T{freq*10}\n".encode() elif cmd.startswith(b"G"): @@ -87,7 +88,7 @@ def process_command(tef: TEF6686, data: bytes, state: dict, conn: socket.socket) out += b"OK\n" tef.APPL_Set_OperationMode(False) tef.FM_Tune_To(1, state["last_tune"]) - if FREQ_NOT_ALLOWED_RANGE and state["last_tune"] >= FREQ_NOT_ALLOWED_RANGE[0] and state["last_tune"] <= FREQ_NOT_ALLOWED_RANGE[1]: tef.AUDIO_Set_Mute(True) + if (FREQ_NOT_ALLOWED_RANGE and state["last_tune"] >= FREQ_NOT_ALLOWED_RANGE[0] and state["last_tune"] <= FREQ_NOT_ALLOWED_RANGE[1]) or (FREQ_NOT_ALLOWED_LIST and freq in FREQ_NOT_ALLOWED_LIST): tef.AUDIO_Set_Mute(True) else: tef.AUDIO_Set_Mute(False) elif cmd.startswith(b"X"): tef.APPL_Set_OperationMode(True) @@ -114,7 +115,7 @@ def process_command(tef: TEF6686, data: bytes, state: dict, conn: socket.socket) for freq in range(state["scan_start"], state["scan_stop"] + state["scan_step"], state["scan_step"]): tef.FM_Tune_To(2, freq) # Auto mutes, less commands sent time.sleep(0.0064) - if FREQ_NOT_ALLOWED_RANGE and freq >= FREQ_NOT_ALLOWED_RANGE[0] and freq <= FREQ_NOT_ALLOWED_RANGE[1]: + if (FREQ_NOT_ALLOWED_RANGE and freq >= FREQ_NOT_ALLOWED_RANGE[0] and freq <= FREQ_NOT_ALLOWED_RANGE[1]) or (FREQ_NOT_ALLOWED_LIST and freq in FREQ_NOT_ALLOWED_LIST): conn.sendall(f"{freq * 10} = 0, ".encode()) continue _, level, *_ = d if (d := tef.FM_Get_Quality_Data()) else (None, None) @@ -123,14 +124,14 @@ def process_command(tef: TEF6686, data: bytes, state: dict, conn: socket.socket) conn.sendall(b"\n") tef.FM_Tune_To(1, state["last_tune"]) - if FREQ_NOT_ALLOWED_RANGE and freq >= FREQ_NOT_ALLOWED_RANGE[0] and freq <= FREQ_NOT_ALLOWED_RANGE[1]: tef.AUDIO_Set_Mute(True) + if (FREQ_NOT_ALLOWED_RANGE and freq >= FREQ_NOT_ALLOWED_RANGE[0] and freq <= FREQ_NOT_ALLOWED_RANGE[1]) or (FREQ_NOT_ALLOWED_LIST and freq in FREQ_NOT_ALLOWED_LIST): tef.AUDIO_Set_Mute(True) else: tef.AUDIO_Set_Mute(False) tef.FM_Set_Bandwidth((state["bw"] == 0), 2360 if (state["bw"] == 0) else (state["bw"] // 100)) return out def send_signal_status(tef: TEF6686, conn: socket.socket, state: dict): - if FREQ_NOT_ALLOWED_RANGE and state["last_tune"] >= FREQ_NOT_ALLOWED_RANGE[0] and state["last_tune"] <= FREQ_NOT_ALLOWED_RANGE[1]: + if (FREQ_NOT_ALLOWED_RANGE and state["last_tune"] >= FREQ_NOT_ALLOWED_RANGE[0] and state["last_tune"] <= FREQ_NOT_ALLOWED_RANGE[1]) or (FREQ_NOT_ALLOWED_LIST or state["last_tune"] in FREQ_NOT_ALLOWED_LIST): conn.sendall(b"Sm11.25,0,0,0\n\n") return _, _, stereo, _ = d if (d := tef.FM_Get_Processing_Status()) else (None, None, 1000, None) @@ -150,7 +151,7 @@ def send_signal_status(tef: TEF6686, conn: socket.socket, state: dict): conn.sendall(data) def send_rds_data(tef: TEF6686, conn: socket.socket, state: dict): - if FREQ_NOT_ALLOWED_RANGE and state["last_tune"] >= FREQ_NOT_ALLOWED_RANGE[0] and state["last_tune"] <= FREQ_NOT_ALLOWED_RANGE[1]: return + if (FREQ_NOT_ALLOWED_RANGE and state["last_tune"] >= FREQ_NOT_ALLOWED_RANGE[0] and state["last_tune"] <= FREQ_NOT_ALLOWED_RANGE[1]) or (FREQ_NOT_ALLOWED_LIST or state["last_tune"] in FREQ_NOT_ALLOWED_LIST): return res = tef.FM_Get_RDS_Data__decoder() if res is None: return