代码拉取完成,页面将自动刷新
同步操作将从 AGeek/keil_development_assistant 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "only_run_by_file.h"
only_run_by_file::only_run_by_file(QObject *parent) : QObject(parent),
runFileName("run"),
closeFileName("close")
{
// 如果 run 文件已经存在,则删除
if (QFile::exists(runFileName)) {
QFile::remove(runFileName);
// 检测 close 文件是否存在的定时器
closeTimer = new QTimer(this);
connect(closeTimer, &QTimer::timeout, this, &only_run_by_file::checkCloseFile);
closeTimer->start(300); // 每 300 毫秒执行一次检测
}else
createRunFile();
// 检测 run 文件是否存在的定时器
timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &only_run_by_file::checkRunFile);
timer->start(800); // 每 800 毫秒执行一次检测
}
void only_run_by_file::createCloseFile()
{
// 创建 close 文件
QFile file(closeFileName);
file.open(QIODevice::WriteOnly);
file.close();
}
void only_run_by_file::createRunFile()
{
// 创建 run 文件
QFile file(runFileName);
file.open(QIODevice::WriteOnly);
file.close();
}
void only_run_by_file::deleteCloseFile()
{
// 如果 close 文件已经存在,则删除
if (QFile::exists(closeFileName)) {
QFile::remove(closeFileName);
}
}
void only_run_by_file::deleteRunFile()
{
// 如果 run 文件已经存在,则删除
if (QFile::exists(runFileName)) {
QFile::remove(runFileName);
}
}
void only_run_by_file::checkRunFile()
{
// 检测 run 文件是否存在
if (!QFile::exists(runFileName)) {
// 文件不存在,采集关闭操作并创建 close 文件
deleteCloseFile();
// 创建 close 文件
createCloseFile();
emit runFileDeleted();
}
}
void only_run_by_file::checkCloseFile()
{
static uint8_t cnt=0;
if(cnt<3)
{
cnt++;
// 检测 close 文件是否存在
if (QFile::exists(closeFileName)) {
// 发出信号,通知检测到 close 文件
closeTimer->stop();
// 如果 close 文件已经存在,则删除
deleteCloseFile();
// 创建 run 文件
createRunFile();
emit closeFileDetected();
}
}else
{
cnt=0;
// 如果 close 文件已经存在,则删除
deleteCloseFile();
// 创建 run 文件
createRunFile();
emit closeFileDetected();
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。