diff --git a/utils/serial_manager.py b/utils/serial_manager.py index 8bd781b..1c3ca5b 100644 --- a/utils/serial_manager.py +++ b/utils/serial_manager.py @@ -1160,32 +1160,30 @@ class SerialManager: # 转换为浮点数 xj_value = float(number_str) logging.info(f"线径数据: {xj_value}") - if xj_value/10000 > 10 or xj_value/10000 == 0: # 过滤无效值:>10 或 =0 的值直接跳过 - # if xj_value/10000 > 10 or xj_value/10000 == 0: - # logging.info(f"过滤无效线径值: {xj_value} (超出有效范围或为零)") - # return False + if xj_value/10000 > 10 or xj_value/10000 == 0: + return False # 更新数据 - self.data['xj'] = xj_value - self._write_data_to_file() - - # 构建MainWindow.on_diameter_data_received期望的格式 - callback_data_str = f"线径数据: {xj_value}" - if 'xj_data' in self.callbacks: - try: - # 与米电阻类似,传递实际的串口名称 - logging.info(f"线径回调开始调用,回调对象: {self.callbacks['xj_data'].__self__.__class__.__name__}, 数据: {xj_value}") - self.callbacks['xj_data'](port_name, callback_data_str.encode('utf-8')) - logging.info(f"通知 'xj_data' 回调成功. 值: {xj_value}, 串口: {port_name}") - except Exception as e: - logging.error(f"调用 'xj_data' 回调失败: {e}") - else: - # 如果未注册回调,仍然使用通用方法通知 - logging.warning(f"未找到xj_data回调,使用通用_notify_callbacks方法") - self._notify_callbacks('xj_data', {"type": "xj", "value": self.data['xj'], "source": f"serial ({port_name})"}) - - return True + self.data['xj'] = xj_value + self._write_data_to_file() + + # 构建MainWindow.on_diameter_data_received期望的格式 + callback_data_str = f"线径数据: {xj_value}" + if 'xj_data' in self.callbacks: + try: + # 与米电阻类似,传递实际的串口名称 + logging.info(f"线径回调开始调用,回调对象: {self.callbacks['xj_data'].__self__.__class__.__name__}, 数据: {xj_value}") + self.callbacks['xj_data'](port_name, callback_data_str.encode('utf-8')) + logging.info(f"通知 'xj_data' 回调成功. 值: {xj_value}, 串口: {port_name}") + except Exception as e: + logging.error(f"调用 'xj_data' 回调失败: {e}") + else: + # 如果未注册回调,仍然使用通用方法通知 + logging.warning(f"未找到xj_data回调,使用通用_notify_callbacks方法") + self._notify_callbacks('xj_data', {"type": "xj", "value": self.data['xj'], "source": f"serial ({port_name})"}) + + return True except ValueError: logging.warning(f"线径数据字符串 '{number_str}' 无法转换为浮点数") else: