当前位置: 首页 > news >正文

超时进行报警例子

超时进行报警例子

import sys
from PySide6.QtCore import QTimer
from PySide6.QtWidgets import QApplication, QMessageBox, QWidget, QVBoxLayout, QPushButton# 全局变量
HKname = 0  # 表示相机采集图片状态
result = 0  # 表示算法运算结果状态class AlarmSystem(QWidget):def __init__(self):super().__init__()self.init_ui()self.setup_timers()def init_ui(self):# 窗口初始化self.setWindowTitle("超时报警系统")self.setGeometry(100, 100, 300, 200)# 添加布局和按钮layout = QVBoxLayout(self)self.trigger_hkname_button = QPushButton("触发相机采集完成")self.trigger_hkname_button.clicked.connect(self.simulate_hkname)layout.addWidget(self.trigger_hkname_button)self.trigger_result_button = QPushButton("触发算法结果完成")self.trigger_result_button.clicked.connect(self.simulate_result)layout.addWidget(self.trigger_result_button)def setup_timers(self):# 定时器初始化self.timer_check = QTimer(self)  # 主定时器self.timer_check.timeout.connect(self.check_timeout)self.timeout_timer = QTimer(self)  # 超时定时器 (30秒)self.timeout_timer.setSingleShot(True)  # 只触发一次self.timeout_timer.timeout.connect(self.trigger_alarm)# 每秒检查是否需要开始计时self.timer_check.start(1000)def check_timeout(self):global HKname, result# 如果图片采集完成 (HKname == 1),启动30秒超时计时器if HKname == 1:print("图片采集完成,开始计时...")HKname = 0  # 重置状态,避免重复触发计时器self.timeout_timer.start(5000)  # 开始30秒计时# 如果算法结果完成 (result == 1),停止计时器if result == 1:print("算法结果完成,停止计时器...")result = 0  # 重置状态self.timeout_timer.stop()def trigger_alarm(self):# 触发报警print("超时未接收到算法结果,发出报警!")QMessageBox.warning(self, "报警", "算法结果未在规定时间内完成!")def simulate_hkname(self):"""模拟相机采集完成"""global HKnameHKname = 1print("手动触发:相机采集完成信号 (HKname = 1)")def simulate_result(self):"""模拟算法结果完成"""global resultresult = 1print("手动触发:算法结果完成信号 (result = 1)")if __name__ == "__main__":app = QApplication(sys.argv)alarm_system = AlarmSystem()alarm_system.show()sys.exit(app.exec())
http://www.lryc.cn/news/600944.html

相关文章:

  • 成都陆军学校计算机科学学院编程马拉松活动计划书
  • linux线程概念和控制
  • java服务线程泄露临时解决脚本
  • .bat 打开方式恢复
  • QT中启用VIM后粘贴复制快捷键失效
  • CSS变量与Houdini自定义属性:解锁样式编程新维度
  • Aerospike架构深度解析:打造web级分布式应用的理想数据库
  • 数据科学与大数据技术专业的核心课程体系及发展路径全解析
  • TIM 输入捕获
  • 【AcWing 143题解】最大异或对
  • 秋招Day19 - 分布式 - 分布式事务
  • 15.6 DeepSpeed+Transformers实战:LLaMA-7B训练效率提升210%,显存直降73%
  • 复杂产品系统集成协同研发平台的研究与实现
  • MyBatis Plus 对数据表常用注解
  • 【C++基础】指针常量 | 常量指针 | int* p | const int* p | int* const p| const int* const p
  • 鼎捷T100程序开发(双档程序开发)
  • Unity 实现帧率(FPS)显示功能
  • 手写PPO_clip(FrozenLake环境)
  • 智慧水库管理系统中标签工厂的建立方案
  • ARM SMMUv3控制器注册过程分析(八)
  • ISIS分片扩展实验案例
  • 【Android】内容提供器
  • Kubernetes 与 Docker的爱恨情仇
  • 1.安装anaconda详细步骤(含安装截图)
  • C++20 协程
  • ​机器学习从入门到实践:算法、特征工程与模型评估详解
  • 是德科技 | AI上车后,这条“高速公路”如何畅通?
  • 聚类-一种无监督分类算法
  • 聚类里面的一些相关概念介绍阐述
  • Digit Queries