| | |
| | | #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 |
| | |
| | | #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, |
| | |
| | | }; |
| | | |
| | | enum class MaterialsType { |
| | | G0 = 0, |
| | | G1 = 1, |
| | | G2 = 2, |
| | | G1G2 = 3 |
| | |
| | | Ready = 0, |
| | | Running, |
| | | Picking, |
| | | Picked, |
| | | Placing, |
| | | Restoring, |
| | | Error, |
| | | Abort, |
| | | Restored, |
| | | Completed |
| | | }; |
| | | |
| | |
| | | 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 |
| | | } |
| | | |