程序优化,待测试

This commit is contained in:
2025-11-20 16:48:57 +08:00
parent 914e208513
commit 0209a84ed4
5 changed files with 30 additions and 3 deletions

Binary file not shown.

View File

@@ -31,6 +31,7 @@ const int Qos = 1;
atomic<bool> isRunning(true); // 是否需要激活 atomic<bool> isRunning(true); // 是否需要激活
atomic<bool> Deactivate(false); // 激活标志 atomic<bool> Deactivate(false); // 激活标志
mutex envMutex; // 配置锁
mutex runMutex; mutex runMutex;
condition_variable runCv; // 条件变量,判断是否可以启动验证程序 condition_variable runCv; // 条件变量,判断是否可以启动验证程序
@@ -86,8 +87,31 @@ void StartCheck()
isRunning = false; isRunning = false;
runCv.notify_one(); runCv.notify_one();
try
{
if (client.is_connected())
{
client.set_message_callback(nullptr); // 移除回调
client.disconnect()->wait();
}
}
catch (const std::exception &e)
{
std::cerr << e.what() << '\n';
}
namespace bp = boost::process;
string cmd = "../../softWareInit/bin/wifi "; string cmd = "../../softWareInit/bin/wifi ";
system(cmd.c_str()); try
{
bp::spawn(cmd);
}
catch (const std::exception &e)
{
std::cerr << e.what() << '\n';
string sysCmd = cmd + " &";
system(sysCmd.c_str());
}
} }
// 检测设备是否已经激活 // 检测设备是否已经激活
@@ -153,6 +177,8 @@ void messageCallback(mqtt::const_message_ptr msg)
thread([lines]() thread([lines]()
{ {
lock_guard<mutex> lk(envMutex);
WriteFile wf(envPath); WriteFile wf(envPath);
string out; string out;
out.reserve(1024); out.reserve(1024);

3
Readme
View File

@@ -1,4 +1,4 @@
# 程序清单 # 程序功能清单
## DeviceActivate(待测试) ## DeviceActivate(待测试)
功能: 功能:
@@ -7,7 +7,6 @@
进行激活,并保存密文 进行激活,并保存密文
当检测到设备已被激活后,启动验证程序,并退出本程序 当检测到设备已被激活后,启动验证程序,并退出本程序
## softWareInit(待测试) ## softWareInit(待测试)
功能: 功能:
本程序用于设备验证 本程序用于设备验证

Binary file not shown.

View File

@@ -51,6 +51,7 @@ std::atomic<bool> isRunning(true); // 全局运行标志
std::atomic<bool> confirm(true); // 发送卡和ID std::atomic<bool> confirm(true); // 发送卡和ID
condition_variable runCv; condition_variable runCv;
mutex runMutex; mutex runMutex;
mutex envMutex; // 配置锁
// 媒体对象 // 媒体对象
struct Media struct Media
@@ -198,6 +199,7 @@ void getMsgCallback(mqtt::const_message_ptr msg)
double warn = toDouble(warning_json); double warn = toDouble(warning_json);
double safe = toDouble(safe_json); double safe = toDouble(safe_json);
lock_guard<mutex> lk(envMutex);
ReadFile rf(filepath); ReadFile rf(filepath);
if (!rf.Open()) { if (!rf.Open()) {
cerr << "文件打开失败: " << filepath << "\n"; cerr << "文件打开失败: " << filepath << "\n";