From 7c35ff8d9a626f69a8a8b7de3d73dc9d73de9dd7 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期六, 13 九月 2025 10:51:32 +0800
Subject: [PATCH] 1. 解决读取报警文件错误的问题,提高兼容性(可能文件是在MacOS编辑的,导致换行符不一样)
---
SourceCode/Bond/Servo/CMaster.h | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.h b/SourceCode/Bond/Servo/CMaster.h
index 8187fc3..8536ab2 100644
--- a/SourceCode/Bond/Servo/CMaster.h
+++ b/SourceCode/Bond/Servo/CMaster.h
@@ -33,6 +33,10 @@
#define CTStep_begin CTStep_LoadPort_Aligner
#define CTStep_end CTStep_Measurement_LoadPort
+#define ER_CODE_NOERROR 0
+#define ER_CODE_OPERATION_MODE_FAIL -1
+#define ER_CODE_AOI_NG -2
+
namespace SERVO {
enum class MASTERSTATE {
READY = 0,
@@ -41,7 +45,8 @@
RUNNING_CONTINUOUS_TRANSFER,
RUNNING_BATCH,
STOPPING,
- MSERROR
+ MSERROR,
+ ATHERERROR
};
typedef std::function<void(void* pMaster, MASTERSTATE state)> ONMASTERSTATECHANGED;
@@ -53,6 +58,7 @@
typedef std::function<void(void* pMaster, CRobotTask* pTask, int code)> ONROBOTTASKEVENT;
typedef std::function<void(void* pMaster, CEquipment* pEquipment, short status, __int64 data)> ONLOADPORTSTATUSCHANGED;
typedef std::function<void(void* pMaster, int round)> ONCTROUNDEND;
+ typedef std::function<void(void* pMaster, void* pj)> ONPJSTART;
typedef struct _MasterListener
{
ONMASTERSTATECHANGED onMasterStateChanged;
@@ -64,6 +70,12 @@
ONROBOTTASKEVENT onRobotTaskEvent;
ONLOADPORTSTATUSCHANGED onLoadPortStatusChanged;
ONCTROUNDEND onCTRoundEnd;
+ ONPJSTART onCjStart;
+ ONPJSTART onCjEnd;
+ ONPJSTART onPjStart;
+ ONPJSTART onPjEnd;
+ ONPJSTART onPanelStart;
+ ONPJSTART onPanelEnd;
} MasterListener;
class CMaster : public IResourceView
@@ -81,7 +93,7 @@
int start();
int startContinuousTransfer();
int startBatch();
- int stop();
+ int stop(int nErCode = ER_CODE_NOERROR);
void clearError();
ULONGLONG getRunTime();
MASTERSTATE getState();
@@ -117,6 +129,10 @@
CLoadPort* getPortWithCarrierId(const std::string& carrierId) const;
bool saveState() const;
bool loadState(const std::string& path);
+ int getWipGlasses(std::vector<CGlass*>& glasses);
+ void test();
+ int getPortCassetteSnSeed(int port);
+ void setPortCassetteSnSeed(int port, int seed);
private:
inline void lock() { EnterCriticalSection(&m_criticalSection); }
@@ -157,6 +173,10 @@
bool ceidDefined(uint32_t ceid) const override;
public:
+ int getLastError();
+ std::string& getLastErrorText();
+
+ public:
// 新增函数
CProcessJob* acquireNextProcessJob();
CGlass* acquireNextGlass();
@@ -164,6 +184,11 @@
bool addGlassToQueue(CGlass* pGlass);
bool glassFromQueueToInPorcess(CGlass* pGlass);
bool glassFromInPorcessToComplete(CGlass* pGlass);
+ bool processJobFromInPorcessToComplete(CProcessJob* pProcessJob);
+ bool checkAndUpdatePjComplete(CProcessJob* pJob);
+ bool checkAndUpdateCjComplete(CControlJob* pJob);
+ CProcessJob* getGlassProcessJob(CGlass* pGlass);
+
private:
CRITICAL_SECTION m_criticalSection;
@@ -211,6 +236,7 @@
// 新增已经开始处理的ProcessJob列表
std::vector<CProcessJob*> m_inProcesJobs;
+ std::vector<CProcessJob*> m_completeProcessJobs;
std::vector<CGlass*> m_queueGlasses;
std::vector<CGlass*> m_inProcesGlasses;
std::vector<CGlass*> m_completeGlasses;
@@ -221,6 +247,8 @@
SERVO::CControlJob* m_pControlJob;
std::vector<SERVO::CProcessJob*> m_processJobs;
std::string m_strStatePath;
+
+ int m_nTestFlag;
};
}
--
Gitblit v1.9.3