chenluhua1980
6 天以前 ceb64b6612309fe384e096dcdc8b5a5e0dfe6cce
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 {
@@ -123,6 +133,7 @@
        // 返回问题清单(空=通过)
        bool validate(const IResourceView& rv);
        const std::vector<ValidationIssue>& issues() const;
        void addIssue(uint32_t code, const std::string& msg);
        // —— 状态机(带守卫)——
        bool queue();           // NoState -> Queued
@@ -153,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; }
@@ -211,6 +226,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();
    };
}