LAPTOP-SNT8I5JK\Boounion
2025-08-27 38f2ff1e5bc6c4434875e03b8cadc8f3f4e39bf6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
#pragma once
 
 
#define TESTMODE                        1
 
/* Rx Code */
#define RX_CODE_TEST                    0
#define RX_CODE_LOG                        1000
#define RX_CODE_PASSIVE_STATUS_CHANGED    1001
#define RX_CODE_MES_MESSAGE                1002
#define RX_HSMS_TERMINAL_TEXT            1003
#define RX_CODE_EQ_ALIVE                1004
#define RX_CODE_STEP_EVENT_READDATA        1005
#define RX_CODE_SELECT_EQUIPMENT        1006
#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
 
 
/* Channel Name */
#define MC_CHANNEL1_NAME        "McChannel1"
 
 
/* ÑÕÉ« */
#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_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 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)
 
/* LOG BTN */
#define BTN_LOG_FRAME_NORMAL            RGB(88, 88, 88)
#define BTN_LOG_FRAME_HOVER                RGB(88, 88, 88)
#define BTN_LOG_FRAME_PRESS                RGB(88, 88, 88)
#define BTN_LOG_BKGND_NORMAL            RGB(232, 232, 232)
#define BTN_LOG_BKGND_HOVER                RGB(153, 217, 234)
#define BTN_LOG_BKGND_PRESS                RGB(133, 203, 225)
 
/* ALARM BTN */
#define BTN_ALARM_FRAME_NORMAL            RGB(88, 88, 88)
#define BTN_ALARM_FRAME_HOVER            RGB(88, 88, 88)
#define BTN_ALARM_FRAME_PRESS            RGB(88, 88, 88)
#define BTN_ALARM_BKGND_NORMAL            RGB(232, 232, 232)
#define BTN_ALARM_BKGND_HOVER            RGB(153, 217, 234)
#define BTN_ALARM_BKGND_PRESS            RGB(133, 203, 225)
 
/* Equipment ID */
#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_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 */
#define BASE_ALARM_EFEM        10000
#define BASE_ALARM_BONDER1    20000
#define BASE_ALARM_BONDER2    30000
 
 
/* step event */
#define STEP_EVENT_READDATA            0x01
#define STEP_EVENT_COMPLETE            0x02
#define STEP_EVENT_PROCESS_DATA        0x1001
 
 
/* ×Ô¶¨ÒåÏûÏ¢ */
#define ID_MSG_PANEL_RESIZE            WM_USER + 1998
 
 
/* Á÷³Ì¿ØÖÆÏà¹Ø´úÂë */
#define FLOW_TEST                    0x1000
 
 
/* 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