From 66d8ca4b75006f9875731ef819dafd3d20ca01a2 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 21 七月 2025 11:15:30 +0800
Subject: [PATCH] 1.信号页面,增加下游信号的显示;
---
SourceCode/Bond/Servo/TransferManager.cpp | 90 +++++++++++++++-----------------------------
1 files changed, 31 insertions(+), 59 deletions(-)
diff --git a/SourceCode/Bond/Servo/TransferManager.cpp b/SourceCode/Bond/Servo/TransferManager.cpp
index 6079a79..bf7e2a4 100644
--- a/SourceCode/Bond/Servo/TransferManager.cpp
+++ b/SourceCode/Bond/Servo/TransferManager.cpp
@@ -29,45 +29,6 @@
}
}
-// 任务状态转换成 int 类型
-int TransferManager::statusToInt(TransferStatus status) {
- return static_cast<int>(status);
-}
-
-// int 类型转换成任务状态
-TransferStatus TransferManager::intToStatus(int value) {
- switch (value) {
- case 0: return TransferStatus::Ready;
- case 1: return TransferStatus::Running;
- case 2: return TransferStatus::Error;
- case 3: return TransferStatus::Abort;
- case 4: return TransferStatus::Completed;
- default: return TransferStatus::Error;
- }
-}
-
-// 任务状态转换成字符串
-std::string TransferManager::statusToString(TransferStatus status) {
- switch (status) {
- case TransferStatus::Ready: return "Ready";
- case TransferStatus::Running: return "Running";
- case TransferStatus::Error: return "Error";
- case TransferStatus::Abort: return "Abort";
- case TransferStatus::Completed: return "Completed";
- default: return "Unknown";
- }
-}
-
-// 字符串转换成任务状态
-TransferStatus TransferManager::stringToStatus(const std::string& str) {
- if (str == "Ready") return TransferStatus::Ready;
- if (str == "Running") return TransferStatus::Running;
- if (str == "Error") return TransferStatus::Error;
- if (str == "Abort") return TransferStatus::Abort;
- if (str == "Completed") return TransferStatus::Completed;
- return TransferStatus::Error;
-}
-
// 本地编码转为 UTF-8
std::string TransferManager::ansiToUtf8(const std::string& ansiStr) {
// 1. ANSI → UTF-16
@@ -134,35 +95,46 @@
}
// 插入测试搬运记录
-void TransferManager::insertTestTransferRecord() {
- if (nullptr != m_pDB) {
- int nCount = 10000;
+void TransferManager::insertTestTransferRecord(int nCount /*=10000*/) {
+ if (nullptr != m_pDB) {
+ static const char* STATUS_STR[] = {
+ "Unknown", "Ready", "Running", "Picking", "Placing",
+ "Restoring", "Error", "Abort", "Completed"
+ };
+
+ auto formatTime = [](const std::tm& time) {
+ char szTime[64];
+ strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &time);
+ return std::string(szTime);
+ };
+
+ std::time_t startTime = std::time(nullptr);
for (int i = 0; i < nCount; ++i) {
TransferData data;
data.strClassID = "T-" + std::to_string(1000 + i);
- data.strStatus = statusToString(static_cast<TransferStatus>(i % 5));
+ data.strStatus = STATUS_STR[i % 9];
- std::time_t now = std::time(nullptr) + i * 60; // 每条记录间隔1分钟
+ std::time_t baseTime = startTime + i * 60;
+ std::time_t pickTime = baseTime + 60;
+ std::time_t placeTime = pickTime + 60;
+ std::time_t endTime = placeTime + 60;
std::tm tmCreate = {}, tmPick = {}, tmPlace = {}, tmEnd = {};
- localtime_s(&tmCreate, &now);
- localtime_s(&tmPick, &(now += 60));
- localtime_s(&tmPlace, &(now += 60));
- localtime_s(&tmEnd, &(now += 60));
+ localtime_s(&tmCreate, &baseTime);
+ localtime_s(&tmPick, &pickTime);
+ localtime_s(&tmPlace, &placeTime);
+ localtime_s(&tmEnd, &endTime);
- char szTime[64];
- strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmCreate);
- data.strCreateTime = szTime;
- strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmPick);
- data.strPickTime = szTime;
- strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmPlace);
- data.strPlaceTime = szTime;
- strftime(szTime, sizeof(szTime), "%Y-%m-%d %H:%M:%S", &tmEnd);
- data.strEndTime = szTime;
-
+ data.strCreateTime = formatTime(tmCreate);
+ data.strPickTime = formatTime(tmPick);
+ data.strPlaceTime = formatTime(tmPlace);
+ data.strEndTime = formatTime(tmEnd);
data.strDescription = "Mock transfer task " + std::to_string(i);
+
int nRecordId = 0;
- addTransferRecord(data, nRecordId);
+ if (!addTransferRecord(data, nRecordId)) {
+ std::cerr << "[Error] 插入第 " << i << " 条记录失败" << std::endl;
+ }
}
std::cout << "[Mock] 成功插入 " << nCount << " 条测试搬运记录。" << std::endl;
--
Gitblit v1.9.3