From bc7f1c4e028e69be51079b59dae4ae5c4d43f5bb Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期六, 31 一月 2026 21:54:56 +0800
Subject: [PATCH] 1.状态指示图,目前灰色表示掉线,绿色表示在线。增加Slot的小点表示有没有料,及加工状态 。 2.增加图示

---
 SourceCode/Bond/Servo/Common.h |  547 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 515 insertions(+), 32 deletions(-)

diff --git a/SourceCode/Bond/Servo/Common.h b/SourceCode/Bond/Servo/Common.h
index 3860990..b6b422f 100644
--- a/SourceCode/Bond/Servo/Common.h
+++ b/SourceCode/Bond/Servo/Common.h
@@ -1,6 +1,8 @@
 #pragma once
 
 
+#define TESTMODE						1
+
 /* Rx Code */
 #define RX_CODE_TEST					0
 #define RX_CODE_LOG						1000
@@ -13,7 +15,16 @@
 #define RX_CODE_SELECT_STEP				1007
 #define RX_CODE_ALARM_SET				1008
 #define RX_CODE_ALARM_CLEAR				1009
+#define RX_CODE_EQ_DATA_CHANGED			1010
+#define RX_CODE_MASTER_STATE_CHANGED	1011
+#define RX_CODE_EQ_ROBOT_TASK			1012
+#define RX_CODE_LOADPORT_STATUS_CHANGED	1014
+#define RX_CODE_CONTROL_STATE_CHANGED	1015
+#define RX_CODE_CONTROLJOB_CHANGED		1016
 
+/* 软件侧 ALID */
+#define ALID_SOFTWARE_PAUSE_EVENT		9000
+#define ALID_SOFTWARE_TEST_ALARM		9099
 
 /* Channel Name */
 #define MC_CHANNEL1_NAME		"McChannel1"
@@ -23,15 +34,31 @@
 #define APPDLG_BACKGROUND_COLOR				RGB(255, 255, 255)
 #define LOGDLG_BACKGROUND_COLOR				RGB(255, 255, 255)
 #define PANEL_MASTER_BACKGROUND_COLOR		RGB(255, 255, 255)
+#define PANEL_PRODUCTION_BACKGROUND_COLOR	RGB(255, 255, 255)
 #define PANEL_ATTRIBUTES_BACKGROUND_COLOR	RGB(255, 255, 255)
 #define PANEL_EQUIPMENT_BACKGROUND_COLOR	RGB(255, 255, 255)
 #define PAGE_GRPAH1_BACKGROUND_COLOR		RGB(255, 255, 255)
 #define PAGE_GRPAH2_BACKGROUND_COLOR		RGB(255, 255, 255)
 #define EQ_BOX_OFFLINE						RGB(222, 222, 222)
 #define EQ_BOX_ONLINE						RGB(0, 176, 80)
+#define EQ_BOX_OCCUPIED                     RGB(255, 127, 39)
 #define EQ_BOX_FRAME1						RGB(22, 22, 22)
 #define EQ_BOX_FRAME2						RGB(255, 127, 39)
-
+#define EQ_SLOT_EMPTY					RGB(200, 200, 200)
+#define EQ_SLOT_G1						RGB(0, 112, 192)
+#define EQ_SLOT_G2						RGB(0, 176, 80)
+#define EQ_SLOT_PROC_G1				RGB(255, 127, 39)
+#define EQ_SLOT_PROC_G2				RGB(220, 0, 0)
+#define CR_MSGBOX_BKGND						RGB(7, 71, 166)
+#define CR_MSGBOX_TITLE						RGB(200, 216, 246)
+#define CR_MSGBOX_MESSAGE					RGB(200, 216, 246)
+#define TOP_TOOLBAR_BACKGROUND				RGB(240, 240, 240)	
+#define STATUSBAR_BK_NORMAL					RGB(195, 195, 195)
+#define STATUSBAR_BK_STARTING				RGB(58, 127, 78)
+#define STATUSBAR_BK_RUNNING				RGB(34, 177, 76)
+#define STATUSBAR_BK_ALARM					RGB(255, 127, 39)
+#define CIM_STATUS_BK_SELECTED				STATUSBAR_BK_RUNNING
+#define CIM_STATUS_BK_DISCONNECTED			STATUSBAR_BK_NORMAL
 
 /* LOG BTN */
 #define BTN_LOG_FRAME_NORMAL			RGB(88, 88, 88)
@@ -50,35 +77,393 @@
 #define BTN_ALARM_BKGND_PRESS			RGB(133, 203, 225)
 
 /* Equipment ID */
-#define EQ_ID_EFEM			1
-#define EQ_ID_Bonder1		2
-#define EQ_ID_Bonder2		3
-#define EQ_ID_LOADPORT1		4
-#define EQ_ID_LOADPORT2		5
-#define EQ_ID_LOADPORT3		6
-#define EQ_ID_LOADPORT4		7
-#define EQ_ID_FLIPER		8
-#define EQ_ID_VACUUMBAKE	9
-#define EQ_ID_ALIGNER		10
-#define EQ_ID_BAKE_COOLING	11
+#define EQ_ID_LOADPORT1			1
+#define EQ_ID_LOADPORT2			2
+#define EQ_ID_LOADPORT3			3
+#define EQ_ID_LOADPORT4			4
+#define EQ_ID_ARM_TRAY1			5
+#define EQ_ID_ARM_TRAY2			6
+#define EQ_ID_ALIGNER			7
+#define EQ_ID_FLIPER			8
+#define EQ_ID_VACUUMBAKE		9
+#define EQ_ID_Bonder1			10
+#define EQ_ID_Bonder2			11
+#define EQ_ID_BAKE_COOLING		12
+#define EQ_ID_MEASUREMENT		13
+#define EQ_ID_EFEM				100
+#define EQ_ID_ARM				101
+#define EQ_ID_OPERATOR_REMOVE	102
 
+/* Equipment Name */
+#define EQ_NAME_LOADPORT1			"LoadPort1"
+#define EQ_NAME_LOADPORT2			"LoadPort2"
+#define EQ_NAME_LOADPORT3			"LoadPort3"
+#define EQ_NAME_LOADPORT4			"LoadPort4"
+#define EQ_NAME_ARM_TRAY1			"ArmTray1"
+#define EQ_NAME_ARM_TRAY2			"ArmTray2"
+#define EQ_NAME_ALIGNER				"Aligner"
+#define EQ_NAME_FLIPER				"Fliper"
+#define EQ_NAME_VACUUMBAKE			"VacuumBake"
+#define EQ_NAME_BONDER1				"Bonder1"
+#define EQ_NAME_BONDER2				"Bonder2"
+#define EQ_NAME_BAKE_COOLING		"BakeCooling"
+#define EQ_NAME_MEASUREMENT			"Measurement"
+#define EQ_NAME_EFEM				"EFEM"
+#define EQ_NAME_ARM					"Arm"
+#define EQ_NAME_OPERATOR_REMOVE		"OperatorRemove"
+
+// 设备元信息结构体
+struct DeviceMetaInfo {
+	int nDeviceID;
+	const char* strDeviceName;  // 指针,仅指向常量字符串
+};
+
+// 全局设备元信息列表
+static const DeviceMetaInfo g_allDeviceMetaInfos[] = {
+	{EQ_ID_LOADPORT1, EQ_NAME_LOADPORT1},
+	{EQ_ID_LOADPORT2, EQ_NAME_LOADPORT2},
+	{EQ_ID_LOADPORT3, EQ_NAME_LOADPORT3},
+	{EQ_ID_LOADPORT4, EQ_NAME_LOADPORT4},
+	{EQ_ID_ARM_TRAY1, EQ_NAME_ARM_TRAY1},
+	{EQ_ID_ARM_TRAY2, EQ_NAME_ARM_TRAY2},
+	{EQ_ID_ALIGNER,   EQ_NAME_ALIGNER},
+	{EQ_ID_FLIPER,    EQ_NAME_FLIPER},
+	{EQ_ID_VACUUMBAKE, EQ_NAME_VACUUMBAKE},
+	{EQ_ID_Bonder1, EQ_NAME_BONDER1},
+	{EQ_ID_Bonder2, EQ_NAME_BONDER2},
+	{EQ_ID_BAKE_COOLING, EQ_NAME_BAKE_COOLING},
+	{EQ_ID_MEASUREMENT, EQ_NAME_MEASUREMENT},
+	{EQ_ID_EFEM, EQ_NAME_EFEM},
+	{EQ_ID_ARM, EQ_NAME_ARM},
+	{EQ_ID_OPERATOR_REMOVE, EQ_NAME_OPERATOR_REMOVE},
+};
 
 /* step name */
-#define STEP_MODE				_T("EQMode")
-#define STEP_STATUS				_T("EQStatus")
-#define STEP_ALARM_START		_T("EQAlarm")
-#define STEP_ALARM_BLOCK1		_T("EQAlarm1")
-#define STEP_ALARM_BLOCK2		_T("EQAlarm2")
-#define STEP_ALARM_BLOCK3		_T("EQAlarm3")
-#define STEP_ALARM_BLOCK4		_T("EQAlarm4")
-#define STEP_ALARM_BLOCK5		_T("EQAlarm5")
-#define STEP_PROCESS			_T("EQProcess")
-#define STEP_CIM_MODE_CHANGE	_T("EQCimModeChange")
-#define STEP_EQ_MODE_CHANGE		_T("EQModeChange")
-#define STEP_CIM_MESSAGE_CMD	_T("EQCimMessageCmd")
-#define STEP_CIM_MESSAGE_CLEAR	_T("EQCimMessageClear")
-#define STEP_DATETIME_SET_CMD	_T("EQDateTimeSetCmd")
-#define STEP_EQ_VCR_ENABLE		_T("EQVCREnable")
+#define STEP_MODE						_T("EQMode")
+#define STEP_STATUS						_T("EQStatus")
+#define STEP_ALARM_START				_T("EQAlarm")
+#define STEP_ALARM_BLOCK1				_T("EQAlarm1")
+#define STEP_ALARM_BLOCK2				_T("EQAlarm2")
+#define STEP_ALARM_BLOCK3				_T("EQAlarm3")
+#define STEP_ALARM_BLOCK4				_T("EQAlarm4")
+#define STEP_ALARM_BLOCK5				_T("EQAlarm5")
+#define STEP_PROCESS					_T("EQProcess")
+#define STEP_CIM_MODE_CHANGE			_T("EQCimModeChange")
+#define STEP_EQ_MODE_CHANGE				_T("EQModeChange")
+#define STEP_CIM_MESSAGE_CMD			_T("EQCimMessageCmd")
+#define STEP_CIM_MESSAGE_CLEAR			_T("EQCimMessageClear")
+#define STEP_DATETIME_SET_CMD			_T("EQDateTimeSetCmd")
+#define STEP_EQ_VCR_ENABLE				_T("EQVCREnable")
+#define STEP_EQ_PORT1_TYPE				_T("EQPort1Type")
+#define STEP_EQ_PORT1_MODE				_T("EQPort1Mode")
+#define STEP_EQ_PORT1_CASSETTE_TYPE		_T("EQPort1CassetteType")
+#define STEP_EQ_PORT1_TRANSFER_MODE		_T("EQPort1TransferMode")
+#define STEP_EQ_PORT1_ENABLE			_T("EQPort1Enable")
+#define STEP_EQ_PORT1_TYPE_ATUO			_T("EQPort1TypeAuto")
+#define STEP_EQ_PORT2_TYPE				_T("EQPort2Type")
+#define STEP_EQ_PORT2_MODE				_T("EQPort2Mode")
+#define STEP_EQ_PORT2_CASSETTE_TYPE		_T("EQPort2CassetteType")
+#define STEP_EQ_PORT2_TRANSFER_MODE		_T("EQPort2TransferMode")
+#define STEP_EQ_PORT2_ENABLE			_T("EQPort2Enable")
+#define STEP_EQ_PORT2_TYPE_ATUO			_T("EQPort2TypeAuto")
+#define STEP_EQ_PORT3_TYPE				_T("EQPort3Type")
+#define STEP_EQ_PORT3_MODE				_T("EQPort3Mode")
+#define STEP_EQ_PORT3_CASSETTE_TYPE		_T("EQPort3CassetteType")
+#define STEP_EQ_PORT3_TRANSFER_MODE		_T("EQPort3TransferMode")
+#define STEP_EQ_PORT3_ENABLE			_T("EQPort3Enable")
+#define STEP_EQ_PORT3_TYPE_ATUO			_T("EQPort3TypeAuto")
+#define STEP_EQ_PORT4_TYPE				_T("EQPort4Type")
+#define STEP_EQ_PORT4_MODE				_T("EQPort4Mode")
+#define STEP_EQ_PORT4_CASSETTE_TYPE		_T("EQPort4CassetteType")
+#define STEP_EQ_PORT4_TRANSFER_MODE		_T("EQPort4TransferMode")
+#define STEP_EQ_PORT4_ENABLE			_T("EQPort4Enable")
+#define STEP_EQ_PORT4_TYPE_ATUO			_T("EQPort4TypeAuto")
+#define STEP_EQ_PORT1_EMPTY				_T("EQPort1Empty")
+#define STEP_EQ_PORT1_LOAD_EADY			_T("EQPort1LoadReady")
+#define STEP_EQ_PORT1_LOADED			_T("EQPort1Loaded")
+#define STEP_EQ_PORT1_INUSE				_T("EQPort1InUse")
+#define STEP_EQ_PORT1_UNLOAD_EADY		_T("EQPort1UnloadReady")
+#define STEP_EQ_PORT1_BLOCKED			_T("EQPort1Blocked")
+#define STEP_EQ_PORT2_EMPTY				_T("EQPort2Empty")
+#define STEP_EQ_PORT2_LOAD_EADY			_T("EQPort2LoadReady")
+#define STEP_EQ_PORT2_LOADED			_T("EQPort2Loaded")
+#define STEP_EQ_PORT2_INUSE				_T("EQPort2InUse")
+#define STEP_EQ_PORT2_UNLOAD_EADY		_T("EQPort2UnloadReady")
+#define STEP_EQ_PORT2_BLOCKED			_T("EQPort2Blocked")
+#define STEP_EQ_PORT3_EMPTY				_T("EQPort3Empty")
+#define STEP_EQ_PORT3_LOAD_EADY			_T("EQPort3LoadReady")
+#define STEP_EQ_PORT3_LOADED			_T("EQPort3Loaded")
+#define STEP_EQ_PORT3_INUSE				_T("EQPort3InUse")
+#define STEP_EQ_PORT3_UNLOAD_EADY		_T("EQPort3UnloadReady")
+#define STEP_EQ_PORT3_BLOCKED			_T("EQPort3Blocked")
+#define STEP_EQ_PORT4_EMPTY				_T("EQPort4Empty")
+#define STEP_EQ_PORT4_LOAD_EADY			_T("EQPort4LoadReady")
+#define STEP_EQ_PORT4_LOADED			_T("EQPort4Loaded")
+#define STEP_EQ_PORT4_INUSE				_T("EQPort4InUse")
+#define STEP_EQ_PORT4_UNLOAD_EADY		_T("EQPort4UnloadReady")
+#define STEP_EQ_PORT4_BLOCKED			_T("EQPort4Blocked")
+#define STEP_EQ_P1_CASSETTE_CTRL_CMD	_T("EQPort1CassetteCtrlCmd")
+#define STEP_EQ_P2_CASSETTE_CTRL_CMD	_T("EQPort2CassetteCtrlCmd")
+#define STEP_EQ_P3_CASSETTE_CTRL_CMD	_T("EQPort3CassetteCtrlCmd")
+#define STEP_EQ_P4_CASSETTE_CTRL_CMD	_T("EQPort4CassetteCtrlCmd")
+#define STEP_EQ_CIM_MESSAGE_CONFIRM		_T("EQCimMessageConfirm")
+#define STEP_EQ_RECEIVED_JOB_UPSn		_T("EQJEReceivedJobUps")
+#define STEP_EQ_RECEIVED_JOB_UPS1		_T("EQJEReceivedJobUps1")
+#define STEP_EQ_RECEIVED_JOB_UPS2		_T("EQJEReceivedJobUps2")
+#define STEP_EQ_RECEIVED_JOB_UPS3		_T("EQJEReceivedJobUps3")
+#define STEP_EQ_RECEIVED_JOB_UPS4		_T("EQJEReceivedJobUps4")
+#define STEP_EQ_RECEIVED_JOB_UPS5		_T("EQJEReceivedJobUps5")
+#define STEP_EQ_RECEIVED_JOB_UPS6		_T("EQJEReceivedJobUps6")
+#define STEP_EQ_RECEIVED_JOB_UPS7		_T("EQJEReceivedJobUps7")
+#define STEP_EQ_RECEIVED_JOB_UPS8		_T("EQJEReceivedJobUps8")
+#define STEP_EQ_RECEIVED_JOB_UPS9		_T("EQJEReceivedJobUps9")
+#define STEP_EQ_SENT_OUT_JOB_DOWNSn		_T("EQJESentOutJobDowns")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS1		_T("EQJESentOutJobDowns1")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS2		_T("EQJESentOutJobDowns2")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS3		_T("EQJESentOutJobDowns3")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS4		_T("EQJESentOutJobDowns4")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS5		_T("EQJESentOutJobDowns5")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS6		_T("EQJESentOutJobDowns6")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS7		_T("EQJESentOutJobDowns7")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS8		_T("EQJESentOutJobDowns8")
+#define STEP_EQ_SENT_OUT_JOB_DOWNS9		_T("EQJESentOutJobDowns9")
+#define STEP_EQ_VCR1_EVENT_REPORT		_T("EQVcr1EventReport")
+#define STEP_EQ_RURRENT_RECIPE_CHANGE	_T("EQCurrentRecipeChange")
+#define STEP_EQ_MASTER_RECIPE_LIST_REQ	_T("EQMasterRecipeListReq")
+#define STEP_EQ_MASTER_RECIPE_LIST		_T("EQMasterRecipeListReport")
+#define STEP_EQ_RECIPE_PARAMETER_REQ	_T("EQRecipeParameterReq")
+#define STEP_EQ_RECIPE_PARAMETER		_T("EQRecipeParameterReport")
+#define STEP_EQ_RECEIVED_JOBn			_T("EQReceivedJobReport")
+#define STEP_EQ_RECEIVED_JOB1			_T("EQReceivedJobReport1")
+#define STEP_EQ_RECEIVED_JOB2			_T("EQReceivedJobReport2")
+#define STEP_EQ_RECEIVED_JOB3			_T("EQReceivedJobReport3")
+#define STEP_EQ_RECEIVED_JOB4			_T("EQReceivedJobReport4")
+#define STEP_EQ_RECEIVED_JOB5			_T("EQReceivedJobReport5")
+#define STEP_EQ_RECEIVED_JOB6			_T("EQReceivedJobReport6")
+#define STEP_EQ_RECEIVED_JOB7			_T("EQReceivedJobReport7")
+#define STEP_EQ_RECEIVED_JOB8			_T("EQReceivedJobReport8")
+#define STEP_EQ_RECEIVED_JOB9			_T("EQReceivedJobReport9")
+#define STEP_EQ_FETCHED_OUT_JOBn		_T("EQFetchedOutJobReport")
+#define STEP_EQ_FETCHED_OUT_JOB1		_T("EQFetchedOutJobReport1")
+#define STEP_EQ_FETCHED_OUT_JOB2		_T("EQFetchedOutJobReport2")
+#define STEP_EQ_FETCHED_OUT_JOB3		_T("EQFetchedOutJobReport3")
+#define STEP_EQ_FETCHED_OUT_JOB4		_T("EQFetchedOutJobReport4")
+#define STEP_EQ_FETCHED_OUT_JOB5		_T("EQFetchedOutJobReport5")
+#define STEP_EQ_FETCHED_OUT_JOB6		_T("EQFetchedOutJobReport6")
+#define STEP_EQ_FETCHED_OUT_JOB7		_T("EQFetchedOutJobReport7")
+#define STEP_EQ_FETCHED_OUT_JOB8		_T("EQFetchedOutJobReport8")
+#define STEP_EQ_FETCHED_OUT_JOB9		_T("EQFetchedOutJobReport9")
+#define STEP_EQ_FETCHED_OUT_JOB10		_T("EQFetchedOutJobReport10")
+#define STEP_EQ_FETCHED_OUT_JOB11		_T("EQFetchedOutJobReport11")
+#define STEP_EQ_FETCHED_OUT_JOB12		_T("EQFetchedOutJobReport12")
+#define STEP_EQ_FETCHED_OUT_JOB13		_T("EQFetchedOutJobReport13")
+#define STEP_EQ_FETCHED_OUT_JOB14		_T("EQFetchedOutJobReport14")
+#define STEP_EQ_FETCHED_OUT_JOB15		_T("EQFetchedOutJobReport15")
+#define STEP_EQ_STORED_JOBn				_T("EQStoredJobReport")
+#define STEP_EQ_STORED_JOB1				_T("EQStoredJobReport1")
+#define STEP_EQ_STORED_JOB2				_T("EQStoredJobReport2")
+#define STEP_EQ_STORED_JOB3				_T("EQStoredJobReport3")
+#define STEP_EQ_STORED_JOB4				_T("EQStoredJobReport4")
+#define STEP_EQ_STORED_JOB5				_T("EQStoredJobReport5")
+#define STEP_EQ_STORED_JOB6				_T("EQStoredJobReport6")
+#define STEP_EQ_STORED_JOB7				_T("EQStoredJobReport7")
+#define STEP_EQ_STORED_JOB8				_T("EQStoredJobReport8")
+#define STEP_EQ_STORED_JOB9				_T("EQStoredJobReport9")
+#define STEP_EQ_STORED_JOB10			_T("EQStoredJobReport10")
+#define STEP_EQ_STORED_JOB11			_T("EQStoredJobReport11")
+#define STEP_EQ_STORED_JOB12			_T("EQStoredJobReport12")
+#define STEP_EQ_STORED_JOB13			_T("EQStoredJobReport13")
+#define STEP_EQ_STORED_JOB14			_T("EQStoredJobReport14")
+#define STEP_EQ_STORED_JOB15			_T("EQStoredJobReport15")
+#define STEP_EQ_DISPATCHINT_MODE_CHANGE	_T("EQDispatchingModeChangeCommand")
+#define STEP_EFEM_ROBOT_CMD				_T("EFEMRobotCmd")
+#define STEP_EQ_IN_OP_MODE_CHANGE		_T("EQIndexerOperationModeChangeCommand")
+#define STEP_PORT1_TYPE_CHANGE			_T("Port1TypeChange")
+#define STEP_PORT2_TYPE_CHANGE			_T("Port2TypeChange")
+#define STEP_PORT3_TYPE_CHANGE			_T("Port3TypeChange")
+#define STEP_PORT4_TYPE_CHANGE			_T("Port4TypeChange")
+#define STEP_PORT1_MODE_CHANGE			_T("Port1ModeChange")
+#define STEP_PORT2_MODE_CHANGE			_T("Port2ModeChange")
+#define STEP_PORT3_MODE_CHANGE			_T("Port3ModeChange")
+#define STEP_PORT4_MODE_CHANGE			_T("Port4ModeChange")
+#define STEP_PORT1_TRANSFER_MODE_CHANGE	_T("Port1TransferModeChange")
+#define STEP_PORT2_TRANSFER_MODE_CHANGE	_T("Port2TransferModeChange")
+#define STEP_PORT3_TRANSFER_MODE_CHANGE	_T("Port3TransferModeChange")
+#define STEP_PORT4_TRANSFER_MODE_CHANGE	_T("Port4TransferModeChange")
+#define STEP_PORT1_ENABLE_MODE_CHANGE	_T("Port1EnableModeChange")
+#define STEP_PORT2_ENABLE_MODE_CHANGE	_T("Port2EnableModeChange")
+#define STEP_PORT3_ENABLE_MODE_CHANGE	_T("Port3EnableModeChange")
+#define STEP_PORT4_ENABLE_MODE_CHANGE	_T("Port4EnableModeChange")
+#define STEP_PORT1_TYPE_AUTO_CHANGE		_T("Port1TypeAutoChange")
+#define STEP_PORT2_TYPE_AUTO_CHANGE		_T("Port2TypeAutoChange")
+#define STEP_PORT3_TYPE_AUTO_CHANGE		_T("Port3TypeAutoChange")
+#define STEP_PORT4_TYPE_AUTO_CHANGE		_T("Port4TypeAutoChange")
+#define STEP_PORT1_CASSETTE_TYPE_CHANGE	_T("Port1CassetteTypeChange")
+#define STEP_PORT2_CASSETTE_TYPE_CHANGE	_T("Port2CassetteTypeChange")
+#define STEP_PORT3_CASSETTE_TYPE_CHANGE	_T("Port3CassetteTypeChange")
+#define STEP_PORT4_CASSETTE_TYPE_CHANGE	_T("Port4CassetteTypeChange")
+#define STEP_EQ_PANEL_DATA_REPORT		_T("EQPanelDataReport")
+#define STEP_EQ_FAC_DATA_REPORT			_T("EQFacDataReport")
+#define STEP_EFEM_PANEL_DATA_REQUEST	_T("EFEMPanelDataRequest")
+#define STEP_EQ_JOB_PROCESS_START_REPORT	_T("EQJobProcessStartReport")
+#define STEP_EQ_JOB_PROCESS_END_REPORT		_T("EQJobProcessEndReport")
+
+/* Step ID */
+#define STEP_ID_CIMMODE_CHANGED_CMD_REPLY		0x550
+#define STEP_ID_CIM_MSG_SET_CMD_REPLY			0x551
+#define STEP_ID_CIM_MSG_CLEAR_CMD_REPLY			0x552
+#define STEP_ID_DATETIME_SET_CMD_REPLY			0x553
+#define STEP_ID_VCR_ENABLE_CMD_REPLY			0x554
+#define STEP_ID_EQMODE_CHANGE_CMD_REPLY			0x555
+#define STEP_ID_MASTER_RECIPE_LIST_CMD_REPLY	0x556
+#define STEP_ID_RECIPE_PARAMETER_CMD_REPLY		0x557
+#define STEP_ID_EQMODE_CHANGED					0x560
+#define STEP_ID_EQSTATUS_CHANGED				0x561
+#define STEP_ID_EQALARM1						0x562
+#define STEP_ID_EQALARM2						0x563
+#define STEP_ID_EQALARM3						0x564
+#define STEP_ID_EQALARM4						0x565
+#define STEP_ID_EQALARM5						0x566
+#define STEP_ID_PROCESS_DATA_REPORT				0x567
+#define STEP_ID_CURRENT_RECIPE_CHANGE_REPORT	0x568
+#define STEP_ID_CIM_MSG_CONFIRM_REPORT			0x569
+#define STEP_ID_VCR1_EVENT_REPORT				0x56A
+#define STEP_ID_MASTER_RECIPE_LIST_REPORT		0x56B
+#define STEP_ID_RECIPE_PARAMETER_REPORT			0x56C
+#define STEP_ID_FAC_DATA_REPORT					0x56D
+#define STEP_ID_RECIVE_JOB_UPS1					0x580
+#define STEP_ID_RECIVE_JOB_UPS2					0x581
+#define STEP_ID_RECIVE_JOB_UPS3					0x582
+#define STEP_ID_RECIVE_JOB_UPS4					0x583
+#define STEP_ID_RECIVE_JOB_UPS5					0x584
+#define STEP_ID_RECIVE_JOB_UPS6					0x585
+#define STEP_ID_RECIVE_JOB_UPS7					0x586
+#define STEP_ID_RECIVE_JOB_UPS8					0x587
+#define STEP_ID_RECIVE_JOB_UPS9					0x588
+#define STEP_ID_SENT_OUT_JOB_DOWNS1				0x590
+#define STEP_ID_SENT_OUT_JOB_DOWNS2				0x591
+#define STEP_ID_SENT_OUT_JOB_DOWNS3				0x592
+#define STEP_ID_SENT_OUT_JOB_DOWNS4				0x593
+#define STEP_ID_SENT_OUT_JOB_DOWNS5				0x594
+#define STEP_ID_SENT_OUT_JOB_DOWNS6				0x595
+#define STEP_ID_SENT_OUT_JOB_DOWNS7				0x596
+#define STEP_ID_SENT_OUT_JOB_DOWNS8				0x597
+#define STEP_ID_SENT_OUT_JOB_DOWNS9				0x598
+#define STEP_ID_STORE_JOB_REPORT1				0x5A0
+#define STEP_ID_STORE_JOB_REPORT2				0x5A1
+#define STEP_ID_STORE_JOB_REPORT3				0x5A2
+#define STEP_ID_STORE_JOB_REPORT4				0x5A3
+#define STEP_ID_STORE_JOB_REPORT5				0x5A4
+#define STEP_ID_STORE_JOB_REPORT6				0x5A5
+#define STEP_ID_STORE_JOB_REPORT7				0x5A6
+#define STEP_ID_STORE_JOB_REPORT8				0x5A7
+#define STEP_ID_STORE_JOB_REPORT9				0x5A8
+#define STEP_ID_STORE_JOB_REPORT10				0x5A9
+#define STEP_ID_STORE_JOB_REPORT11				0x5AA
+#define STEP_ID_STORE_JOB_REPORT12				0x5AB
+#define STEP_ID_STORE_JOB_REPORT13				0x5AC
+#define STEP_ID_STORE_JOB_REPORT14				0x5AD
+#define STEP_ID_STORE_JOB_REPORT15				0x5AE
+#define STEP_ID_FETCHED_OUT_JOB_REPORT1			0x5AF
+#define STEP_ID_FETCHED_OUT_JOB_REPORT2			0x5B0
+#define STEP_ID_FETCHED_OUT_JOB_REPORT3			0x5B1
+#define STEP_ID_FETCHED_OUT_JOB_REPORT4			0x5B2
+#define STEP_ID_FETCHED_OUT_JOB_REPORT5			0x5B3
+#define STEP_ID_FETCHED_OUT_JOB_REPORT6			0x5B4
+#define STEP_ID_FETCHED_OUT_JOB_REPORT7			0x5B5
+#define STEP_ID_FETCHED_OUT_JOB_REPORT8			0x5B6
+#define STEP_ID_FETCHED_OUT_JOB_REPORT9			0x5B7
+#define STEP_ID_FETCHED_OUT_JOB_REPORT10		0x5B8
+#define STEP_ID_FETCHED_OUT_JOB_REPORT11		0x5B9
+#define STEP_ID_FETCHED_OUT_JOB_REPORT12		0x5BA
+#define STEP_ID_FETCHED_OUT_JOB_REPORT13		0x5BB
+#define STEP_ID_FETCHED_OUT_JOB_REPORT14		0x5BC
+#define STEP_ID_FETCHED_OUT_JOB_REPORT15		0x5BD
+#define STEP_ID_JOB_PROCESS_START_REPORT		0x5BF
+#define STEP_ID_JOB_PROCESS_END_REPORT			0x5C0
+#define STEP_ID_JOB_DATA_REQUEST				0x5C1
+#define STEP_ID_PANEL_DATA_REQUEST				0x5D0
+#define STEP_ID_PANEL_DATA_REPORT				0x5D1
+#define STEP_ID_IN_OP_CMD_REPLY					0x5F0
+#define STEP_ID_DISPATCHING_MODE_CHANGE_REPLY	0x5F1
+#define STEP_ID_PORT1_TYPE_CHANGE				0x600
+#define STEP_ID_PORT2_TYPE_CHANGE				0x601
+#define STEP_ID_PORT3_TYPE_CHANGE				0x602
+#define STEP_ID_PORT4_TYPE_CHANGE				0x603
+#define STEP_ID_PORT1_MODE_CHANGE				0x608
+#define STEP_ID_PORT2_MODE_CHANGE				0x609
+#define STEP_ID_PORT3_MODE_CHANGE				0x60A
+#define STEP_ID_PORT4_MODE_CHANGE				0x60B
+#define STEP_ID_PORT1_CASSETTE_TYPE_CHANGE		0x610
+#define STEP_ID_PORT2_CASSETTE_TYPE_CHANGE		0x611
+#define STEP_ID_PORT3_CASSETTE_TYPE_CHANGE		0x612
+#define STEP_ID_PORT4_CASSETTE_TYPE_CHANGE		0x613
+#define STEP_ID_PORT1_TRANSFER_MODE_CHANGE		0x618
+#define STEP_ID_PORT2_TRANSFER_MODE_CHANGE		0x619
+#define STEP_ID_PORT3_TRANSFER_MODE_CHANGE		0x61A
+#define STEP_ID_PORT4_TRANSFER_MODE_CHANGE		0x61B
+#define STEP_ID_PORT1_ENABLE_MODE_CHANGE		0x620
+#define STEP_ID_PORT2_ENABLE_MODE_CHANGE		0x621
+#define STEP_ID_PORT3_ENABLE_MODE_CHANGE		0x622
+#define STEP_ID_PORT4_ENABLE_MODE_CHANGE		0x623
+#define STEP_ID_PORT1_TYPE_AUTO_CHANGE			0x628
+#define STEP_ID_PORT2_TYPE_AUTO_CHANGE			0x629
+#define STEP_ID_PORT3_TYPE_AUTO_CHANGE			0x62A
+#define STEP_ID_PORT4_TYPE_AUTO_CHANGE			0x62B
+#define STEP_ID_PORT1_EMPTY						0x638
+#define STEP_ID_PORT1_LOAD_READY				0x640
+#define STEP_ID_PORT1_LOADED					0x648
+#define STEP_ID_PORT1_INUSE						0x650
+#define STEP_ID_PORT1_UNLOAD_READY				0x658
+#define STEP_ID_PORT1_BLOCKED					0x660
+#define STEP_ID_PORT2_EMPTY						0x639
+#define STEP_ID_PORT2_LOAD_READY				0x641
+#define STEP_ID_PORT2_LOADED					0x649
+#define STEP_ID_PORT2_INUSE						0x651
+#define STEP_ID_PORT2_UNLOAD_READY				0x659
+#define STEP_ID_PORT2_BLOCKED					0x661
+#define STEP_ID_PORT3_EMPTY						0x63a
+#define STEP_ID_PORT3_LOAD_READY				0x642
+#define STEP_ID_PORT3_LOADED					0x64a
+#define STEP_ID_PORT3_INUSE						0x652
+#define STEP_ID_PORT3_UNLOAD_READY				0x65a
+#define STEP_ID_PORT3_BLOCKED					0x662
+#define STEP_ID_PORT4_EMPTY						0x63b
+#define STEP_ID_PORT4_LOAD_READY				0x643
+#define STEP_ID_PORT4_LOADED					0x64b
+#define STEP_ID_PORT4_INUSE						0x653
+#define STEP_ID_PORT4_UNLOAD_READY				0x65b
+#define STEP_ID_PORT4_BLOCKED					0x663
+#define STEP_ID_PROT1_TYPE_CHANGE_REPLY			0x670
+#define STEP_ID_PROT2_TYPE_CHANGE_REPLY			0x671
+#define STEP_ID_PROT3_TYPE_CHANGE_REPLY			0x672
+#define STEP_ID_PROT4_TYPE_CHANGE_REPLY			0x673
+#define STEP_ID_PROT1_MODE_CHANGE_REPLY			0x678
+#define STEP_ID_PROT2_MODE_CHANGE_REPLY			0x679
+#define STEP_ID_PROT3_MODE_CHANGE_REPLY			0x67A
+#define STEP_ID_PROT4_MODE_CHANGE_REPLY			0x67B
+#define STEP_ID_PROT1_TRANSFER_MODE_CHANGE_REPLY	0x680
+#define STEP_ID_PROT2_TRANSFER_MODE_CHANGE_REPLY	0x681
+#define STEP_ID_PROT3_TRANSFER_MODE_CHANGE_REPLY	0x682
+#define STEP_ID_PROT4_TRANSFER_MODE_CHANGE_REPLY	0x683
+#define STEP_ID_PROT1_ENABLE_MODE_CHANGE_REPLY		0x688
+#define STEP_ID_PROT2_ENABLE_MODE_CHANGE_REPLY		0x689
+#define STEP_ID_PROT3_ENABLE_MODE_CHANGE_REPLY		0x68A
+#define STEP_ID_PROT4_ENABLE_MODE_CHANGE_REPLY		0x68B
+#define STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY		0x690
+#define STEP_ID_PROT2_TYPE_AUTO_CHANGE_REPLY		0x691
+#define STEP_ID_PROT3_TYPE_AUTO_CHANGE_REPLY		0x692
+#define STEP_ID_PROT4_TYPE_AUTO_CHANGE_REPLY		0x693
+#define STEP_ID_PROT1_CASSETTE_TYPE_CHANGE_REPLY	0x698
+#define STEP_ID_PROT2_CASSETTE_TYPE_CHANGE_REPLY	0x699
+#define STEP_ID_PROT3_CASSETTE_TYPE_CHANGE_REPLY	0x69A
+#define STEP_ID_PROT4_CASSETTE_TYPE_CHANGE_REPLY	0x69B
+#define STEP_ID_PROT1_CASSETTE_CTR_CMD_REPLY		0x6A0
+#define STEP_ID_PROT2_CASSETTE_CTR_CMD_REPLY		0x6A1
+#define STEP_ID_PROT3_CASSETTE_CTR_CMD_REPLY		0x6A2
+#define STEP_ID_PROT4_CASSETTE_CTR_CMD_REPLY		0x6A3
+#define STEP_ID_ROBOT_CMD_REPLY						0x6b0
+
 
 
 /* base alarm */
@@ -98,9 +483,107 @@
 
 
 /* 流程控制相关代码 */
-#define FLOW_REJECT					0x0
-#define FLOW_ACCEPT					0x1
 #define FLOW_TEST					0x1000
-#define FLOW_SIGNAL					0x1001
-#define FLOW_DATA					0x1002
-#define FLOW_MOVE_MATERIAL			0x1003
\ No newline at end of file
+
+
+/* Port Status */
+#define PORT_LOAD_READY				1
+#define PORT_LOAD_REQUEST			PORT_LOAD_READY
+#define PORT_LOADED					2
+#define PORT_INUSE					3
+#define PORT_LOAD_COMPLETE			PORT_INUSE
+#define PORT_UNLOAD_READY			4
+#define PORT_UNLOAD_REQUEST			PORT_RNLOAD_READY
+#define PORT_EMPTY					5
+#define PORT_UNLOAD_COMPLETE		PORT_EMPTY
+#define PORT_BLOCKED				6
+
+
+/* Loading Cassette Type */
+#define PORT_LOADING_CASSETTE_ACTUAL	1
+#define PORT_LOADING_CASSETTE_EMPTY		2
+
+
+/* Q-Time flag */
+#define Q_TIME_NORMAL					1
+#define Q_TIME_OVER						2
+
+
+/* m_nCassetteMappingState */
+#define CASSETTE_MAPPING_USE			1
+#define CASSETTE_MAPPING_NOT_USE		2
+
+
+/* Cassette Status */
+#define CASSETTE_NO_EXIST				1
+#define CASSETTE_WAITING_DATA			2
+#define CASSETTE_WAITING_START			3
+#define CASSETTE_WAITING_PROCCESSING	4
+#define CASSETTE_IN_PROCCESSING			5
+#define CASSETTE_PROCCESS_PAUSED		6
+#define CASSETTE_PROCCESS_COMPLETED		7
+
+
+/*
+	Master Recipe List Return Code Block	Description
+		1	OK : Recipe List Received Result is all ok
+		2	Continue : Equipment still has to send the master recipe list to EAS because EAS is not yet received all master recipe list.
+		3	Master Recipe list Count NG : Total Group Count is same as Current Group Count but it’s different with Total Master Recipe List Count.
+		4	Group Count NG : Total Group Count is different with Current Group Count but it’s same with Total Master Recipe Count.
+		5	Duplication Group Count NG : Current Group Count is duplicate with previous group count.Equipment has to send the next group count to EAS.
+		6	Order by Group Count NG : Group Count is not sent order by next group count to EAS.Group Count has to send by order the next group count
+*/
+#define MRLRC_CURRENT_RECIPE_COMPLETE		0
+#define MRLRC_OK							1
+#define MRLRC_NG							2
+#define MRLRC_CONTINUE						3
+#define MRLRC_MASTER_RECIPE_LIST_COUNT_NG	4
+#define MRLRC_GROUP_COUNT_NG				5
+#define MRLRC_DUPLICATION_GROUP_COUNT_NG	6
+#define ORDER_BY_GROUP_COUNT_NG				7
+
+
+/*
+ Report type
+ 1: Create
+ 2: Modify
+ 3: Delete
+ 4: Request from EAS
+ */
+#define RT_CREATE				1
+#define RT_MODIFY				2
+#define RT_DELETE				3
+#define RT_REQUEST_FROM_EAS		4
+
+
+ /* Robot Task Status */
+#define ROBOT_EVENT_CREATE		0   // 新任务创建
+#define ROBOT_EVENT_FINISH		1   // 正常完成
+#define ROBOT_EVENT_ERROR		2   // 出现错误
+#define ROBOT_EVENT_ABORT		3   // 人为中止
+#define ROBOT_EVENT_RESTORE		4   // 回撤
+
+
+/* PPID名字最大长度 */
+#define PPID_NAME_MAX			80
+
+
+/* 解除警告 按钮 */
+#define BTN_ALARM_OFF_FRAME_NORMAL		RGB(88, 88, 88)
+#define BTN_ALARM_OFF_FRAME_HOVER		RGB(88, 88, 88)
+#define BTN_ALARM_OFF_FRAME_PRESS		RGB(88, 88, 88)
+#define BTN_ALARM_OFF_BKGND_NORMAL		RGB(255, 127, 39)
+#define BTN_ALARM_OFF_BKGND_HOVER		RGB(255, 157, 59)
+#define BTN_ALARM_OFF_BKGND_PRESS		RGB(255, 100, 29)
+
+/* 静音按钮 */
+#define BTN_SOUND_OFF_FRAME_NORMAL		RGB(88, 88, 88)
+#define BTN_SOUND_OFF_FRAME_HOVER		RGB(88, 88, 88)
+#define BTN_SOUND_OFF_FRAME_PRESS		RGB(88, 88, 88)
+#define BTN_SOUND_OFF_BKGND_NORMAL		RGB(255, 127, 39)
+#define BTN_SOUND_OFF_BKGND_HOVER		RGB(255, 157, 59)
+#define BTN_SOUND_OFF_BKGND_PRESS		RGB(255, 100, 29)
+#define BTN_SOUND_ON_BKGND_NORMAL		RGB(100, 200, 100)
+#define BTN_SOUND_ON_BKGND_HOVER		RGB(150, 250, 150)
+#define BTN_SOUND_ON_BKGND_PRESS		RGB(50, 150, 50)
+

--
Gitblit v1.9.3