From e8a27bb203fe2aff70390a5eca002d7438da9b0f Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 22 十月 2025 14:24:34 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/ServoCommo.h | 86 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 86 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/ServoCommo.h b/SourceCode/Bond/Servo/ServoCommo.h
index aa02acc..8c4c7ea 100644
--- a/SourceCode/Bond/Servo/ServoCommo.h
+++ b/SourceCode/Bond/Servo/ServoCommo.h
@@ -1,5 +1,36 @@
#pragma once
+#include <string>
+#include <vector>
+
+#define CHECK_READ_STEP_SIGNAL(addr, data, size) { \
+ BOOL bFlag = isBitOn(data, size, addr); \
+ SERVO::CStep* pStep = getStep(addr); \
+ if (pStep != nullptr) { \
+ ((CReadStep*)pStep)->onReadSignal(bFlag ? addr : 0); \
+ } \
+}
+
+#define CHECK_WRITE_STEP_SIGNAL(addr, data, size) { \
+ BOOL bFlag = isBitOn(data, size, addr); \
+ SERVO::CStep* pStep = getStep(addr); \
+ if (pStep != nullptr) { \
+ ((CWriteStep*)pStep)->onRecvSignal(bFlag ? addr : 0); \
+ } \
+}
+
+#define CHECK_RUN_ACTIVE_ROBOT_TASK(art) { \
+ if (art != nullptr) { \
+ art->pick(); \
+ std::string strDescription = art->getDescription(); \
+ unlock(); \
+ if (m_listener.onRobotTaskEvent != nullptr) { \
+ m_listener.onRobotTaskEvent(this, art, ROBOT_EVENT_CREATE); \
+ } \
+ LOGI("创建新任务<%s>...", strDescription.c_str()); \
+ continue; \
+ } \
+}
namespace SERVO {
#define BLOCK_BUFFER_MAX 1024
@@ -8,6 +39,19 @@
#define PATH_MAX 8
#define SIGNAL_MAX 8
#define ARM_ALL 99
+
+ enum class RET {
+ OK = 1,
+ NG,
+ };
+ using JobDataRequestAck = RET;
+
+ enum class InspResult
+ {
+ NotInspected = 0, // 初始化状态,尚未检测
+ Pass, // 检测合格
+ Fail // 检测不合格
+ };
enum class PortType {
Loading = 1,
@@ -29,6 +73,7 @@
};
enum class MaterialsType {
+ G0 = 0,
G1 = 1,
G2 = 2,
G1G2 = 3
@@ -111,10 +156,12 @@
Ready = 0,
Running,
Picking,
+ Picked,
Placing,
Restoring,
Error,
Abort,
+ Restored,
Completed
};
@@ -149,9 +196,48 @@
BOOL armState[2];
} ROBOT_MONITORING_DATA, RMDATA;
+ /* 工艺(加工处理)状态 */
+ enum class PROCESS_STATE {
+ Ready = 0,
+ Processing,
+ Complete,
+ Error
+ };
+
+ /* Port Status */
+ struct SlotConfig {
+ int nSlotID = 0;
+ bool isEnabled = false;
+ };
+
+ struct PortConfig {
+ int nMaterialType; // 物料类型,1: G1, 2: G2, 3: G1+G2
+ std::string strPortName; // 例如 "Port 1"
+ std::string strRecipe; // 例如 "P1001"
+ std::string strLotID;
+ std::string strProductID;
+ std::string strOperationID;
+ std::vector<SlotConfig> vecSlot;
+ };
/* EQ Data changed code */
#define EDCC_FETCHOUT_JOB 1000 /* 取片 */
#define EDCC_STORED_JOB 1001 /* 放片 */
+
+
+ /* Cassette Ctrl CMD */
+#define CCC_MAP_DOWNLOAD 1
+#define CCC_CLAMP 2
+#define CCC_UNCLAMP 3
+#define CCC_RECLAMP 4
+#define CCC_PROCESS_START 5
+#define CCC_PROCESS_START_BY_COUNT 6
+#define CCC_PROCESS_PAUSE 7
+#define CCC_PROCESS_RESUME 8
+#define CCC_PROCESS_ABORT 9
+#define CCC_PROCESS_CANCEL 10
+#define CCC_PROCESS_END 11
+#define CCC_ID_UPDATE 12
+#define CCC_MAP_UPDATE 13
}
--
Gitblit v1.9.3