当前位置: 首页 > 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.dtcms.com/a/300130.html

相关文章:

  • 在 Windows 系统中实现 WinToGo 的 VHDX 文件切换使用的常见方法
  • 什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
  • Spring AI Alibaba Video 示例
  • 大型微服务项目:听书——12 数据一致性自定义starter封装缓存操作
  • Java设计模式之行为型模式(中介者模式)实现方式与测试方法
  • 大数据之路:阿里巴巴大数据实践——实时技术与数据服务
  • Reeden:跨平台 AI 电子书阅读器
  • leetcode112, 257:二叉树的路径总和、二叉树的所有路径双题对比
  • 【基础完全搜索】USACO Bronze 2020 December - 雏菊链Daisy Chains
  • AI Agent:自主决策的智能助手
  • Javaweb————HTTP消息体拆分讲解
  • ISIS分片扩展实验案例
  • 精密全波整流电路(四)
  • 2025年02月11日 Go生态洞察:Go 1.24 发布亮点全面剖析
  • 【DNS服务配置—实现正反向解析】
  • 宏观杠杆率及其数据获取(使用AKShare)
  • 【C++基础】指针常量 | 常量指针 | int* p | const int* p | int* const p| const int* const p
  • MyBatis-Plus 进阶功能:分页插件与乐观锁的实战指南
  • Codeforces Round 181 (Rated for Div. 2)
  • 哈尔滨←→南昌的铁路要道
  • 计算公式放配置
  • 【linux】keepalived
  • ART某板卡的软件位置
  • 每日一道算法题(九)
  • 【C/C++】Undefined reference: memset_s
  • 【seismic中的颜色】
  • ETF历史高频逐笔分钟数据解析
  • FastAPI入门:demo、路径参数、查询参数
  • Linux进程替换
  • Dynamic Model in RL