From 690bbf01bc579aff0ca31b2f326c7a6b5d83604d Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 05 六月 2025 10:51:13 +0800
Subject: [PATCH] 1.Slot的部分数据不需要存储,否则影响代码修改Slot布局等信息; 2.Bonder Porcess完成后,合成两片一起搬送的逻辑问题;
---
SourceCode/Bond/Servo/CEquipment.h | 19 +++++++++++++++++--
1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index fbd6ed7..95e5555 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -45,6 +45,7 @@
typedef std::function<void(void* pEiuipment, int state, int alarmId, int unitId, int level)> ONALARM;
typedef std::function<void(void* pEiuipment, void* pReport)> ONVCREVENTREPORT;
typedef std::function<BOOL(void* pEiuipment, CJobDataB* pJobDataB)> ONPREFETCHEDOUTJOB;
+ typedef std::function<BOOL(void* pEiuipment, CJobDataB* pJobDataB, short& putSlot)> ONPRESTOREDJOB;
typedef struct _EquipmentListener
{
ONALIVE onAlive;
@@ -53,6 +54,7 @@
ONDATACHANGED onDataChanged;
ONVCREVENTREPORT onVcrEventReport;
ONPREFETCHEDOUTJOB onPreFethedOutJob;
+ ONPRESTOREDJOB onPreStoredJob;
} EquipmentListener;
@@ -104,12 +106,12 @@
std::vector<CPin*>& CEquipment::getOutputPins();
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
virtual int fetchedOutJob(CJobDataB* pJobDataB);
- virtual int storedJob(CJobDataB* pJobDataB);
+ virtual int storedJob(CJobDataB* pJobDataB, short& putSlot);
virtual int onReceivedJob(int port, CJobDataS* pJobDataS);
virtual int onSentOutJob(int port, CJobDataS* pJobDataS);
virtual BOOL onPreFetchedOutJob(int port, CJobDataB* pJobDataB);
virtual int onFetchedOutJob(int port, CJobDataB* pJobDataB);
- virtual BOOL onPreStoredJob(int port, CJobDataB* pJobDataB);
+ virtual BOOL onPreStoredJob(int port, CJobDataB* pJobDataB, short& putSlot);
virtual int onStoredJob(int port, CJobDataB* pJobDataB);
virtual int onProcessData(CProcessData* pProcessData);
virtual int getIndexerOperationModeBaseValue();
@@ -149,8 +151,14 @@
// 获取一个指定物料类型(G1,G2,G1&G2)的空槽位
CSlot* getAvailableSlotForGlass(MaterialsType type);
+ // 在指定的槽列表中,获取一个指定物料类型(G1,G2,G1&G2)的空槽位
+ CSlot* getAvailableSlotForGlass2(MaterialsType type, const std::vector<int>& candidates);
+
// 获取一个指定物料类型(G1,G2,G1&G2)的非空槽位
CSlot* getNonEmptySlot(MaterialsType type);
+
+ // 获取一个指定物料类型(G1,G2,G1&G2)的且已经加工处理的槽位
+ CSlot* getProcessedSlot(MaterialsType putSlotType);
// 获取玻璃物料
CGlass* getGlassFromSlot(int slotNo);
@@ -162,6 +170,13 @@
// 是否有玻璃
BOOL hasGlass();
+ // 获取指定ID的glass
+ CGlass * getGlass(const char* pszGlassId);
+
+ // 指定槽位是否可以放置玻璃
+ BOOL canPlaceGlassInSlot(const short slotIndex);
+
+
// 以下为从CC-Link读取到的Bit标志位检测函数
public:
BOOL isAlive();
--
Gitblit v1.9.3