From 6b6297c6fc0aa5c059d35732c7ee22ebca93967f Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 14 一月 2026 15:43:40 +0800
Subject: [PATCH] 1.修复以下问题: ProceedWithCarrier 直接发 CCC_PROCESS_START:CModel::onCarrierAction 在 CompareMapsBeforeProceeding 关闭时,收到 ProceedWithCarrier 就调用 master.proceedWithCarrier(仅发送 Cassette Process Start,不校验 PJ/CJ 是否存在、SlotMap 是否验通过)。若 Host 流程异常(未下 PJ/CJ)或本地尚未准备好,会把设备推进加工态但无作业可跑。
---
SourceCode/Bond/Servo/ProcessJob.h | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/ProcessJob.h b/SourceCode/Bond/Servo/ProcessJob.h
index eb20b84..bbc8926 100644
--- a/SourceCode/Bond/Servo/ProcessJob.h
+++ b/SourceCode/Bond/Servo/ProcessJob.h
@@ -8,6 +8,16 @@
#include <chrono>
#include <optional>
+
+
+struct PJWarp {
+ BOOL addToCj;
+ void* pj;
+ int port;
+ BOOL checkSlot[8];
+ int material[8];
+};
+
namespace SERVO {
/// PJ 生命周期(贴近 E40 常见状态)
enum class PJState : uint8_t {
@@ -154,6 +164,10 @@
// 追加一个载具
void addCarrier(std::string carrierId, std::vector<uint8_t> slots);
+ // 设置载具slots和contexts
+ bool setCarrierSlotsAndContexts(std::string carrierId, std::vector<uint8_t> slots, std::vector<void*> contexts);
+ bool setCarrierContexts(std::string carrierId, std::vector<void*> contexts);
+
// 访问器
const std::vector<CarrierSlotInfo>& carriers() const noexcept { return m_carriers; }
CarrierSlotInfo* getCarrier(const std::string& strId);
@@ -211,6 +225,22 @@
// 错误列表
std::vector<ValidationIssue> m_issues;
+
+ // 新增
+ std::string m_strLotId;
+ std::string m_strProductId;
+ std::string m_strOperationId;
+ PJWarp m_pjWarp;
+
+ public:
+ void setLotId(std::string strLotId);
+ std::string& getLotId();
+ void setProductId(std::string strProductId);
+ std::string& getProductId();
+ void setOperationId(std::string strOperationId);
+ std::string& getOperationId();
+ void setPjWarp(PJWarp pjWarp);
+ PJWarp& getPjWarp();
};
}
--
Gitblit v1.9.3