From 594cf28244b9420e5a8543883f3df183368dfbdd Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期二, 13 五月 2025 15:06:12 +0800
Subject: [PATCH] 1. 修复AlarmList.csv文件异常时导致闪退的问题 2. 修复Master.dat异常时进程无法退出的问题

---
 SourceCode/Bond/Servo/CJobDataS.cpp |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/Servo/CJobDataS.cpp b/SourceCode/Bond/Servo/CJobDataS.cpp
index 54d0689..0c9de03 100644
--- a/SourceCode/Bond/Servo/CJobDataS.cpp
+++ b/SourceCode/Bond/Servo/CJobDataS.cpp
@@ -4,6 +4,9 @@
 
 
 namespace SERVO {
+#define JOBDATAS_SIZE				(256 * 2)
+#define ENABLE_JOBDATAS_RAWDATA		TRUE
+
 	CJobDataS::CJobDataS()
 	{
 		m_nCassetteSequenceNo = 0;
@@ -26,11 +29,19 @@
 		m_nSourceSlotNo = 0;
 		m_nTargetPortNo = 0;
 		m_nTargetSlotNo = 0;
+		m_pRawData = nullptr;
+		if (ENABLE_JOBDATAS_RAWDATA) {
+			m_pRawData = new char[JOBDATAS_SIZE];
+			serialize(m_pRawData, JOBDATAS_SIZE);
+		}
 	}
 
 	CJobDataS::~CJobDataS()
 	{
-
+		if (m_pRawData != nullptr) {
+			delete[] m_pRawData;
+			m_pRawData = nullptr;
+		}
 	}
 
 	int CJobDataS::getCassetteSequenceNo()
@@ -541,6 +552,12 @@
 		index += sizeof(short);
 
 
+		// 缓存原始数据
+		if (m_pRawData != nullptr) {
+			memcpy(m_pRawData, pszBuffer, JOBDATAS_SIZE);
+		}
+
+
 		return 256 * 2;
 	}
 

--
Gitblit v1.9.3