From 62e7cab5be8da2fef0392f89c1aeac69ca0d134c Mon Sep 17 00:00:00 2001 From: lizhao Date: Fri, 12 Jun 2026 13:56:48 +0800 Subject: [PATCH] add sleep if open impedence --- Decoder.py | 5 ++++- Zmq/zmqServer.py | 8 ++++++-- filter_test.py | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Decoder.py b/Decoder.py index 486446f..1634fc0 100644 --- a/Decoder.py +++ b/Decoder.py @@ -206,6 +206,9 @@ class Decoder_main(threading.Thread): self.zmqServer.state_mode = 'rest' try: + if self.zmqServer.open_Impedance: + time.sleep(0.005) + continue if self.decoder_class == 'ssvep' or self.decoder_class == 'pvs': self.decoder_SSVEP() elif self.decoder_class == 'ssmvep': @@ -215,7 +218,7 @@ class Decoder_main(threading.Thread): else: if self.zmqServer.paradigmBuffer.GetDataLenCount() < 25: time.sleep(0.005) - continue; + continue self.zmqServer.paradigmBuffer.getData(25) except Exception as e: algo_log(f"Decoder Loop Error: {e}") diff --git a/Zmq/zmqServer.py b/Zmq/zmqServer.py index 85db52e..e33afb7 100644 --- a/Zmq/zmqServer.py +++ b/Zmq/zmqServer.py @@ -182,7 +182,7 @@ class zmqServer(threading.Thread): # 转置为上位机需要的[50, 通道数]格式 filtered_data = filtered_data.T.astype(np.float64) send_buf = filtered_data.tobytes() - algo_log(f"发送滤波数据,长度: {len(send_buf)}字节, filtered_data.shape: {filtered_data.shape}", level="DEBUG", record_once=True) + # algo_log(f"发送滤波数据,长度: {len(send_buf)}字节, filtered_data.shape: {filtered_data.shape}", level="DEBUG", record_once=True) self.data_send_queue.put(send_buf) def _process_data_send_queue(self): @@ -228,6 +228,9 @@ class zmqServer(threading.Thread): algo_log(f"无效JSON命令: {message_bytes.hex()}", level="ERROR") self.broadcast_message("error", {"code": 400, "message": "无效JSON格式"}) return + except Exception as e: + algo_log(f"_handle_cmd_message exception: {e}", level="ERROR") + return algo_log(f"收到命令: {message}", level="INFO") method = message.get("method") @@ -418,7 +421,8 @@ class zmqServer(threading.Thread): break except Exception as e: - algo_log(f"服务器主循环异常: {e}", level="ERROR") + algo_log(f"服务器主循环异常: {str(e)}", level="ERROR") + return finally: self.running = False # 优雅关闭所有资源 diff --git a/filter_test.py b/filter_test.py index b323445..a813c76 100644 --- a/filter_test.py +++ b/filter_test.py @@ -56,7 +56,7 @@ EMPTY_FRAME = b"" # 仿真信号配置 TARGET_CHANNEL = 0 -SIGNAL_FREQ_LIST = [3, 13] +SIGNAL_FREQ_LIST = [13] SIGNAL_AMP = 1.8 NOISE_GAUSSIAN_AMP = 0.4 NOISE_POWER50_AMP = 0.3 @@ -128,8 +128,8 @@ def generate_eeg_packet(pkt_idx: int) -> np.ndarray: sig = 0.0 for freq in SIGNAL_FREQ_LIST: sig += SIGNAL_AMP * np.sin(2 * np.pi * freq * t_arr) - sig += NOISE_POWER50_AMP * np.sin(2 * np.pi * 50 * t_arr) - sig += NOISE_GAUSSIAN_AMP * np.random.randn(n_point) + # sig += NOISE_POWER50_AMP * np.sin(2 * np.pi * 50 * t_arr) + # sig += NOISE_GAUSSIAN_AMP * np.random.randn(n_point) data[:, ch] = sig # 事件通道、保留通道