From 331f447bb0e5eccf0b3161ab287c1372b14b8480 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 08 八月 2025 11:53:58 +0800
Subject: [PATCH] 1.增加千传计数,保存计数,重启软件时恢复; 2.千传测试模式,打印相关日志,方便后期提取,用于统计; 3.千传模式时烘烤两腔体都要进入; 4.千传模式时,Fliper到Bonder修改为用手臂2取料; 5.修复千传模式不计运行时的问题; 6.千传模式,最后收料强制放入第一层; 6.修复Buf, 当任务未生成(在符合条件后仍有1秒间隙)而机器单元发送FetchOutJob时,数据检验失败的问题,增加Sleep, 缩小间隙;

---
 SourceCode/Bond/Servo/ToolUnits.cpp |   41 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/SourceCode/Bond/Servo/ToolUnits.cpp b/SourceCode/Bond/Servo/ToolUnits.cpp
index 664f802..15cb278 100644
--- a/SourceCode/Bond/Servo/ToolUnits.cpp
+++ b/SourceCode/Bond/Servo/ToolUnits.cpp
@@ -2,6 +2,7 @@
 #include "ToolUnits.h"
 #include <chrono>
 #include <memory>
+#include <sstream>
 
 
 CToolUnits::CToolUnits()
@@ -73,10 +74,17 @@
 
 ULONGLONG CToolUnits::getTimestamp()
 {
+	// 返回毫秒数的版本
 	auto now = std::chrono::system_clock::now();
-	auto duration_in_milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch());
-	uint64_t timestamp = duration_in_milliseconds.count();
-	return timestamp;
+	auto ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);
+	return static_cast<ULONGLONG>(ms.time_since_epoch().count());
+}
+
+time_t CToolUnits::getUnixTimestamp()
+{
+	// 返回秒数的版本
+	auto now = std::chrono::system_clock::now();
+	return std::chrono::system_clock::to_time_t(now);
 }
 
 void CToolUnits::createDir(const char* pszDir)
@@ -301,4 +309,31 @@
 		ltm.tm_hour, ltm.tm_min, ltm.tm_sec);
 
 	return std::string(buffer);
+}
+
+bool CToolUnits::startsWith(const std::string& str, const std::string& prefix)
+{
+	return str.size() >= prefix.size() && str.compare(0, prefix.size(), prefix) == 0;
+}
+
+std::string& CToolUnits::toHexString(int value, std::string& strOut)
+{
+	std::stringstream ss;
+	ss << std::hex << value;
+	strOut = ss.str();
+
+	return strOut;
+}
+
+void CToolUnits::convertString(const char* pszBuffer, int size, std::string& strOut)
+{
+	strOut.clear();
+	int nLength = 0;
+	for (int i = 0; i < size; i++) {
+		if (pszBuffer[i] == '\0') break;
+		nLength++;
+	}
+	if (nLength > 0) {
+		strOut = std::string(pszBuffer, nLength);
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.3