feat: 优化线径数据处理逻辑,增强无效值过滤和回调通知功能
This commit is contained in:
parent
dce6f4a14a
commit
383e6d3aaa
@ -1160,32 +1160,30 @@ class SerialManager:
|
|||||||
# 转换为浮点数
|
# 转换为浮点数
|
||||||
xj_value = float(number_str)
|
xj_value = float(number_str)
|
||||||
logging.info(f"线径数据: {xj_value}")
|
logging.info(f"线径数据: {xj_value}")
|
||||||
if xj_value/10000 > 10 or xj_value/10000 == 0:
|
|
||||||
# 过滤无效值:>10 或 =0 的值直接跳过
|
# 过滤无效值:>10 或 =0 的值直接跳过
|
||||||
# if xj_value/10000 > 10 or xj_value/10000 == 0:
|
if xj_value/10000 > 10 or xj_value/10000 == 0:
|
||||||
# logging.info(f"过滤无效线径值: {xj_value} (超出有效范围或为零)")
|
return False
|
||||||
# return False
|
|
||||||
|
|
||||||
# 更新数据
|
# 更新数据
|
||||||
self.data['xj'] = xj_value
|
self.data['xj'] = xj_value
|
||||||
self._write_data_to_file()
|
self._write_data_to_file()
|
||||||
|
|
||||||
# 构建MainWindow.on_diameter_data_received期望的格式
|
# 构建MainWindow.on_diameter_data_received期望的格式
|
||||||
callback_data_str = f"线径数据: {xj_value}"
|
callback_data_str = f"线径数据: {xj_value}"
|
||||||
if 'xj_data' in self.callbacks:
|
if 'xj_data' in self.callbacks:
|
||||||
try:
|
try:
|
||||||
# 与米电阻类似,传递实际的串口名称
|
# 与米电阻类似,传递实际的串口名称
|
||||||
logging.info(f"线径回调开始调用,回调对象: {self.callbacks['xj_data'].__self__.__class__.__name__}, 数据: {xj_value}")
|
logging.info(f"线径回调开始调用,回调对象: {self.callbacks['xj_data'].__self__.__class__.__name__}, 数据: {xj_value}")
|
||||||
self.callbacks['xj_data'](port_name, callback_data_str.encode('utf-8'))
|
self.callbacks['xj_data'](port_name, callback_data_str.encode('utf-8'))
|
||||||
logging.info(f"通知 'xj_data' 回调成功. 值: {xj_value}, 串口: {port_name}")
|
logging.info(f"通知 'xj_data' 回调成功. 值: {xj_value}, 串口: {port_name}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"调用 'xj_data' 回调失败: {e}")
|
logging.error(f"调用 'xj_data' 回调失败: {e}")
|
||||||
else:
|
else:
|
||||||
# 如果未注册回调,仍然使用通用方法通知
|
# 如果未注册回调,仍然使用通用方法通知
|
||||||
logging.warning(f"未找到xj_data回调,使用通用_notify_callbacks方法")
|
logging.warning(f"未找到xj_data回调,使用通用_notify_callbacks方法")
|
||||||
self._notify_callbacks('xj_data', {"type": "xj", "value": self.data['xj'], "source": f"serial ({port_name})"})
|
self._notify_callbacks('xj_data', {"type": "xj", "value": self.data['xj'], "source": f"serial ({port_name})"})
|
||||||
|
|
||||||
return True
|
return True
|
||||||
except ValueError:
|
except ValueError:
|
||||||
logging.warning(f"线径数据字符串 '{number_str}' 无法转换为浮点数")
|
logging.warning(f"线径数据字符串 '{number_str}' 无法转换为浮点数")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user