chenluhua1980
2025-12-10 db9d120efcfe76bb73df089dca8986eca9ee0e6f
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
#include "stdafx.h"
#include "IOManager.h"
#include <fstream>
#include <iostream>
#include "ToolUnits.h"
 
IOManager::IOManager() {
    m_directory = CToolUnits::getCurrentExePath() + _T("\\Config");
    if (!CToolUnits::isDirectory(m_directory)) {
        CToolUnits::createDir(m_directory.c_str());
    }
}
 
void IOManager::addMachine(const std::string& machineName, const std::vector<IOData>& data) {
    m_machines[machineName] = data;
}
 
 
void IOManager::addDefaultMachineData(const std::string& machineName) {
    /*
    if (machineName == "Cavity") {
        std::vector<IOData> defaultData = {
            {"X1000", "Unit1_¼±Í£ EMO", "Y1010", "Unit1_ËÄÉ«µÆ-ºì"},
            {"X1001", "Unit1_×ܽøÆøÑ¹Á¦¼ì", "Y1011", "Unit1_ËÄÉ«µÆ-»Æ"},
            {"X1002", "Unit1_ËÅ·þµç¹ñÑ̸б¨¾¯", "Y1012", "Unit1_ËÄÉ«µÆ-ÂÌ"},
            {"X1003", "Unit1_¼ÓÈȵç¹ñÑ̸б¨¾¯", "Y1013", "Unit1_ËÄÉ«µÆ-À¶"},
            {"X1004", "°²È«¼ÌµçÆ÷¼ì", "Y1014", "Unit1_·äÃùÆ÷-1"},
            {"X1005", "", "Y1015", "Unit1_·äÃùÆ÷-2"},
            {"X1006", "", "Y1016", "Unit1_·äÃùÆ÷-3"},
            {"X1007", "Unit1_°²È«ÃŴżì1", "Y1017", "Unit1_·äÃùÆ÷-4"},
            {"X1008", "Unit1_°²È«ÃŴżì2", "Y1018", "Unit1_»ų́ÕÕÃ÷"},
            {"X1009", "Unit1_°²È«ÃŴżì3", "Y1019", "Unit1_°²È«ÃÅËøÆÁ±Î"},
            {"X100A", "Unit1_°²È«ÃŴżì4", "Y101A", ""},
            {"X100B", "Unit1_°²È«ÃŴżì5", "Y101B", ""},
            {"X100C", "Unit1_°²È«ÃŴżì6", "Y101C", ""},
            {"X100D", "Unit1_°²È«ÃÅËø¼ì1", "Y101D", "Unit1_°²È«ÃÅËø1"},
            {"X100E", "Unit1_°²È«ÃÅËø¼ì2", "Y101E", "Unit1_°²È«ÃÅËø2"},
            {"X100F", "Unit1_°²È«ÃÅËø¼ì3", "Y101F", "Unit1_°²È«ÃÅËø3"},
            {"X1020", "Unit1_·Ö×Ó±Ã-Alam(8-14)", "Y1030", "Unit1_·Ö×Ó±ÃÆô¶¯(1-9)"},
            {"X1021", "Unit1_·Ö×Ó±Ã-Ô¶³Ì/±¾µØÄ£Ê½(7-15)", "Y1031", "Unit1_·Ö×Ó±ÃÁªËø×°ÖÃ(2-10)"},
            {"X1022", "Unit1_·Ö×Ó±Ã-Õý³£ÔËÐУ¨4-12£©", "Y1032", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§"},
            {"X1023", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§Ô­Î»", "Y1033", "Unit1_ÆøÄÒͨ¶Ï·§"},
            {"X1024", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§µ½Î»", "Y1034", ""},
            {"X1025", "Unit1_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ", "Y1035", "Unit1_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ"},
            {"X1026", "Unit1_Ç»ÌåÍÐÆ¬×󯸏׵½Î»", "Y1036", "Unit1_Ç»ÌåÍÐÆ¬×󯸏׵½Î»"},
            {"X1027", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ", "Y1037", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ"},
            {"X1028", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»", "Y1038", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»"},
            {"X1029", "Unit1_ÃÅ·§Éý½µÆø¸×ԭλ", "Y1039", "Unit1_ÃÅ·§Éý½µÆø¸×"},
            {"X102A", "Unit1_ÃÅ·§Éý½µÆø¸×µ½Î»", "Y103A", ""},
            {"X102B", "Unit1_Ç»Ì寯տ¿ÕÆø·§Ô­Î»", "Y103B", "Unit1_Ç»Ì寯տ¿ÕÆø·§"},
            {"X102C", "Unit1_Ç»Ì寯տ¿ÕÆø·§µ½Î»", "Y103C", "Unit1_·Ö×Ó±ÃÅÅÆø·§"},
            {"X102D", "Unit1_ÏÂÇ»Æ½Ì¨Õæ¿Õ¼ì", "Y103D", "Unit1_ÏÂǻƽ̨ÎüÕæ¿Õ"},
            {"X102E", "Unit1_·Ö×Ó±ÃÅÅÆø·§Ô­Î»", "Y103E", "Unit1_ÏÂÇ»Æ½Ì¨ÆÆÕæ¿Õ"},
            {"X102F", "Unit1_·Ö×Ó±ÃÅÅÆø·§µ½Î»", "Y103F", ""},
            {"X1040", "Unit1_ÉϼÓÈÈÒÑÉϵç", "Y1050", "Unit1_ÉϼÓÈÈÉϵç"},
            {"X1041", "Unit1_ÉÏÖ÷ÎÂ¿Ø±í±¨¾¯", "Y1051", "Unit1_ϼÓÈÈÉϵç"},
            {"X1042", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y1052", ""},
            {"X1043", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y1053", ""},
            {"X1044", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y1054", ""},
            {"X1045", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y1055", ""},
            {"X1046", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y1056", ""},
            {"X1047", "Unit1_ϼÓÈÈÒÑÉϵç", "Y1057", ""},
            {"X1048", "Unit1_ÏÂÖ÷ÎÂ¿Ø±í±¨¾¯", "Y1058", ""},
            {"X1049", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y1059", ""},
            {"X104A", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y105A", ""},
            {"X104B", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y105B", ""},
            {"X104C", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y105C", ""},
            {"X104D", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y105D", ""},
            {"X104E", "", "Y105E", ""},
            {"X104F", "", "Y105F", ""},
            {"X1060", "Unit1_¸É±Ã-DVPÔËÐмì²â-11", "Y1070", "Unit1_¸É±Ã-DVPÆô¶¯-1"},
            {"X1061", "Unit1_¸É±Ã-MBPÔËÐмì²â-12", "Y1071", "Unit1_¸É±Ã-MBPÆô¶¯-2"},
            {"X1062", "Unit1_¸É±Ã-´íÎ󱨾¯ÖÐ-14", "Y1072", "Unit1_¸É±Ã-Òì³£½â³ý-3"},
            {"X1063", "Unit1_¸É±Ã-´íÎ󾯸æÖÐ-16", "Y1073", ""},
            {"X1064", "Unit1_¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18", "Y1074", "Unit1_µªÆøÍ¨¶Ïµç´Å·§1"},
            {"X1065", "Unit1_¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20", "Y1075", "Unit1_µªÆøÍ¨¶Ïµç´Å·§2"},
            {"X1066", "", "Y1076", "Unit1_µªÆøÍ¨¶Ïµç´Å·§3"},
            {"X1067", "", "Y1077", "Unit1_µªÆøÍ¨¶Ïµç´Å·§4"},
            {"X1068", "", "Y1078", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§1"},
            {"X1069", "", "Y1079", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§2"},
            {"X106A", "", "Y107A", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§3"},
            {"X106B", "", "Y107B", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§4"},
            {"X106C", "", "Y107C", "Unit1_Ç»Ìåµ×°åͨ¶Ïµç´Å·§1"},
            {"X106D", "Unit1_Ë®ÏäÉÏҺλ¼ì", "Y107D", "Unit1_Ç»Ìåµ×°åͨ¶Ïµç´Å·§2"},
            {"X106E", "Unit1_Ë®ÏäÖÐҺλ¼ì", "Y107E", "Unit1_Ë®Ïä½øË®·§"},
            {"X106F", "Unit1_Ë®ÏäÏÂҺλ¼ì", "Y107F", "Unit1_Ë®Ïä³öË®·§"},
            {"X1080", "Unit2_¼±Í£ EMO", "Y1090", "Unit2_ËÄÉ«µÆ-ºì"},
            {"X1081", "Unit2_×ܽøÆøÑ¹Á¦¼ì", "Y1091", "Unit2_ËÄÉ«µÆ-»Æ"},
            {"X1082", "Unit2_ËÅ·þµç¹ñÑ̸б¨¾¯", "Y1092", "Unit2_ËÄÉ«µÆ-ÂÌ"},
            {"X1083", "Unit2_¼ÓÈȵç¹ñÑ̸б¨¾¯", "Y1093", "Unit2_ËÄÉ«µÆ-À¶"},
            {"X1084", "°²È«¼ÌµçÆ÷¼ì", "Y1094", "Unit2_·äÃùÆ÷-1"},
            {"X1085", "", "Y1095", "Unit2_·äÃùÆ÷-2"},
            {"X1086", "", "Y1096", "Unit2_·äÃùÆ÷-3"},
            {"X1087", "Unit2_°²È«ÃŴżì1", "Y1097", "Unit2_·äÃùÆ÷-4"},
            {"X1088", "Unit2_°²È«ÃŴżì2", "Y1098", "Unit2_»ų́ÕÕÃ÷"},
            {"X1089", "Unit2_°²È«ÃŴżì3", "Y1099", "Unit2_°²È«ÃÅËøÆÁ±Î"},
            {"X108A", "Unit2_°²È«ÃŴżì4", "Y109A", ""},
            {"X108B", "Unit2_°²È«ÃŴżì5", "Y109B", ""},
            {"X108C", "Unit2_°²È«ÃŴżì6", "Y109C", ""},
            {"X108D", "Unit2_°²È«ÃÅËø¼ì1", "Y109D", "Unit2_°²È«ÃÅËø1"},
            {"X108E", "Unit2_°²È«ÃÅËø¼ì2", "Y109E", "Unit2_°²È«ÃÅËø2"},
            {"X108F", "Unit2_°²È«ÃÅËø¼ì3", "Y109F", "Unit2_°²È«ÃÅËø3"},
            {"X10A0", "Unit2_·Ö×Ó±Ã-Alam(8-14)", "Y10B0", "Unit2_·Ö×Ó±ÃÆô¶¯(1-9)"},
            {"X10A1", "Unit2_·Ö×Ó±Ã-Ô¶³Ì/±¾µØÄ£Ê½(7-15)", "Y10B1", "Unit2_·Ö×Ó±ÃÁªËø×°ÖÃ(2-10)"},
            {"X10A2", "Unit2_·Ö×Ó±Ã-Õý³£ÔËÐУ¨4-12£©", "Y10B2", "Unit2_·Ö×Ó±Ãͨ¶Ï²å°å·§"},
            {"X10A3", "", "Y10B3", "Unit2_ÆøÄÒͨ¶Ï·§"},
            {"X10A4", "", "Y10B4", ""},
            {"X10A5", "Unit2_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ", "Y10B5", "Unit2_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ"},
            {"X10A6", "Unit2_Ç»ÌåÍÐÆ¬×󯸏׵½Î»", "Y10B6", "Unit2_Ç»ÌåÍÐÆ¬×󯸏׵½Î»"},
            {"X10A7", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ", "Y10B7", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ"},
            {"X10A8", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»", "Y10B8", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»"},
            {"X10A9", "Unit2_ÃÅ·§Éý½µÆø¸×ԭλ", "Y10B9", "Unit2_ÃÅ·§Éý½µÆø¸×"},
            {"X10AA", "Unit2_ÃÅ·§Éý½µÆø¸×µ½Î»", "Y10BA", ""},
            {"X10AB", "Unit2_Ç»Ì寯տ¿ÕÆø·§Ô­Î»", "Y10BB", "Unit2_Ç»Ì寯տ¿ÕÆø·§"},
            {"X10AC", "Unit2_Ç»Ì寯տ¿ÕÆø·§µ½Î»", "Y10BC", "Unit2_·Ö×Ó±ÃÅÅÆø·§"},
            {"X10AD", "Unit2_ÏÂÇ»Æ½Ì¨Õæ¿Õ¼ì", "Y10BD", "Unit2_ÏÂǻƽ̨ÎüÕæ¿Õ"},
            {"X10AE", "Unit2_·Ö×Ó±ÃÅÅÆø·§Ô­Î»", "Y10BE", "Unit2_ÏÂÇ»Æ½Ì¨ÆÆÕæ¿Õ"},
            {"X10AF", "Unit2_·Ö×Ó±ÃÅÅÆø·§µ½Î»", "Y10BF", ""},
            {"X10C0", "Unit2_ÉϼÓÈÈÒÑÉϵç", "Y10D0", "Unit2_ÉϼÓÈÈÉϵç"},
            {"X10C1", "Unit2_ÉÏÖ÷ÎÂ¿Ø±í±¨¾¯", "Y10D1", "Unit2_ϼÓÈÈÉϵç"},
            {"X10C2", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y10D2", ""},
            {"X10C3", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y10D3", ""},
            {"X10C4", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y10D4", ""},
            {"X10C5", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y10D5", ""},
            {"X10C6", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y10D6", ""},
            {"X10C7", "Unit2_ϼÓÈÈÒÑÉϵç", "Y10D7", ""},
            {"X10C8", "Unit2_ÏÂÖ÷ÎÂ¿Ø±í±¨¾¯", "Y10D8", ""},
            {"X10C9", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y10D9", ""},
            {"X10CA", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y10DA", ""},
            {"X10CB", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y10DB", ""},
            {"X10CC", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y10DC", ""},
            {"X10CD", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y10DD", ""},
            {"X10CE", "", "Y10DE", ""},
            {"X10CF", "", "Y10DF", ""},
            {"X10E0", "Unit2_¸É±Ã-DVPÔËÐмì²â-11", "Y10F0", "Unit2_¸É±Ã-DVPÆô¶¯-1"},
            {"X10E1", "Unit2_¸É±Ã-MBPÔËÐмì²â-12", "Y10F1", "Unit2_¸É±Ã-MBPÆô¶¯-2"},
            {"X10E2", "Unit2_¸É±Ã-´íÎ󱨾¯ÖÐ-14", "Y10F2", "Unit2_¸É±Ã-Òì³£½â³ý-3"},
            {"X10E3", "Unit2_¸É±Ã-´íÎ󾯸æÖÐ-16", "Y10F3", ""},
            {"X10E4", "Unit2_¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18", "Y10F4", "Unit2_µªÆøÍ¨¶Ïµç´Å·§1"},
            {"X10E5", "Unit2_¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20", "Y10F5", "Unit2_µªÆøÍ¨¶Ïµç´Å·§2"},
            {"X10E6", "", "Y10F6", "Unit2_µªÆøÍ¨¶Ïµç´Å·§3"},
            {"X10E7", "", "Y10F7", "Unit2_µªÆøÍ¨¶Ïµç´Å·§4"},
            {"X10E8", "", "Y10F8", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§1"},
            {"X10E9", "", "Y10F9", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§2"},
            {"X10EA", "", "Y10FA", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§3"},
            {"X10EB", "", "Y10FB", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§4"},
            {"X10EC", "", "Y10FC", "Unit2_Ç»Ìåµ×°åͨ¶Ïµç´Å·§1"},
            {"X10ED", "Unit2_Ë®ÏäÉÏҺλ¼ì", "Y10FD", "Unit2_Ç»Ìåµ×°åͨ¶Ïµç´Å·§2"},
            {"X10EE", "Unit2_Ë®ÏäÖÐҺλ¼ì", "Y10FE", "Unit2_Ë®Ïä½øË®·§"},
            {"X10EF", "Unit2_Ë®ÏäÏÂҺλ¼ì", "Y10FF", "Unit2_Ë®Ïä³öË®·§"}
        };
        m_machines[machineName] = defaultData;
    }
    else if (machineName == "VacuumBake") {
        std::vector<IOData> defaultData = {
            {"X1100", "¼±Í£ EMO", "Y1110", "ËÄÉ«µÆ-ºì"},
            {"X1101", "×ܽøÆøÑ¹Á¦¼ì", "Y1111", "ËÄÉ«µÆ-»Æ"},
            {"X1102", "A¼ÓÈȵç¹ñÑ̸б¨¾¯", "Y1112", "ËÄÉ«µÆ-ÂÌ"},
            {"X1103", "B¼ÓÈȵç¹ñÑ̸б¨¾¯", "Y1113", "ËÄÉ«µÆ-À¶"},
            {"X1104", "°²È«¼ÌµçÆ÷¼ì", "Y1114", "·äÃùÆ÷-1"},
            {"X1105", "", "Y1115", "·äÃùÆ÷-2"},
            {"X1106", "", "Y1116", "·äÃùÆ÷-3"},
            {"X1107", "", "Y1117", "·äÃùÆ÷-4"},
            {"X1108", "", "Y1118", "»ų́ÕÕÃ÷"},
            {"X1109", "", "Y1119", "°²È«ÃÅËøÆÁ±Î"},
            {"X110A", "°²È«ÃŴżì1", "Y111A", ""},
            {"X110B", "°²È«ÃŴżì2", "Y111B", ""},
            {"X110C", "°²È«ÃÅËø¼ì1", "Y111C", "°²È«ÃÅËø1"},
            {"X110D", "°²È«ÃÅËø¼ì2", "Y111D", "°²È«ÃÅËø2"},
            {"X110E", "°²È«ÃÅËø¼ì3", "Y111E", "°²È«ÃÅËø3"},
            {"X110F", "°²È«ÃÅËø¼ì4", "Y111F", "°²È«ÃÅËø4"},
            {"X1120", "AÇ»ÃÅ·§Éý½µÆø¸×ԭλ", "Y1130", "AÇ»ÃÅ·§Éý½µÆø¸×"},
            {"X1121", "AÇ»ÃÅ·§Éý½µÆø¸×µ½Î»", "Y1131", ""},
            {"X1122", "AǻǻÌå×ÜÎüÕæ¿ÕÆø·§Ô­Î»", "Y1132", "AǻǻÌå×ÜÎüÕæ¿ÕÆø·§"},
            {"X1123", "AǻǻÌå×ÜÎüÕæ¿ÕÆø·§µ½Î»", "Y1133", "AǻǻÌå×ÜÆÆÕæ¿ÕÆø·§"},
            {"X1124", "AǻǻÌå×ÜÆÆÕæ¿ÕÆø·§Ô­Î»", "Y1134", "AÇ»ÀäÈ´Ë®·§"},
            {"X1125", "AǻǻÌå×ÜÆÆÕæ¿ÕÆø·§µ½Î»", "Y1135", ""},
            {"X1126", "AÇ»¼ÓÈÈÒÑÉϵç", "Y1136", "AÇ»¼ÓÈÈÉϵç"},
            {"X1127", "AÇ»Ö÷ÎÂ¿Ø±í±¨¾¯", "Y1137", ""},
            {"X1128", "AÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y1138", ""},
            {"X1129", "AÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y1139", ""},
            {"X112A", "AÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y113A", ""},
            {"X112B", "AÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y113B", ""},
            {"X112C", "AÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y113C", ""},
            {"X112D", "", "Y113D", ""},
            {"X112E", "", "Y113E", ""},
            {"X112F", "", "Y113F", ""},
            {"X1140", "BÇ»ÃÅ·§Éý½µÆø¸×ԭλ", "Y1150", "BÇ»ÃÅ·§Éý½µÆø¸×"},
            {"X1141", "BÇ»ÃÅ·§Éý½µÆø¸×µ½Î»", "Y1151", ""},
            {"X1142", "BǻǻÌå×ÜÎüÕæ¿ÕÆø·§Ô­Î»", "Y1152", "BǻǻÌå×ÜÎüÕæ¿ÕÆø·§"},
            {"X1143", "BǻǻÌå×ÜÎüÕæ¿ÕÆø·§µ½Î»", "Y1153", "BǻǻÌå×ÜÆÆÕæ¿ÕÆø·§"},
            {"X1144", "BǻǻÌå×ÜÆÆÕæ¿ÕÆø·§Ô­Î»", "Y1154", "BÇ»ÀäÈ´Ë®·§"},
            {"X1145", "BǻǻÌå×ÜÆÆÕæ¿ÕÆø·§µ½Î»", "Y1155", ""},
            {"X1146", "BÇ»¼ÓÈÈÒÑÉϵç", "Y1156", "BÇ»¼ÓÈÈÉϵç"},
            {"X1147", "BÇ»Ö÷ÎÂ¿Ø±í±¨¾¯", "Y1157", ""},
            {"X1148", "BÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y1158", ""},
            {"X1149", "BÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y1159", ""},
            {"X114A", "BÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y115A", ""},
            {"X114B", "BÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y115B", ""},
            {"X114C", "BÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y115C", ""},
            {"X114D", "", "Y115D", ""},
            {"X114E", "", "Y115E", ""},
            {"X114F", "", "Y115F", ""},
            {"X1160", "¸É±Ã-DVPÔËÐмì²â-11", "Y1170", "¸É±Ã-DVPÆô¶¯-1"},
            {"X1161", "¸É±Ã-MBPÔËÐмì²â-12", "Y1171", "¸É±Ã-MBPÆô¶¯-2"},
            {"X1162", "¸É±Ã-´íÎ󱨾¯ÖÐ-14", "Y1172", "¸É±Ã-Òì³£½â³ý-3"},
            {"X1163", "¸É±Ã-´íÎ󾯸æÖÐ-16", "Y1173", ""},
            {"X1164", "¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18", "Y1174", ""},
            {"X1165", "¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20", "Y1175", ""},
            {"X1166", "", "Y1176", ""},
            {"X1167", "", "Y1177", ""},
            {"X1168", "", "Y1178", ""},
            {"X1169", "", "Y1179", ""},
            {"X116A", "", "Y117A", ""},
            {"X116B", "", "Y117B", ""},
            {"X116C", "", "Y117C", ""},
            {"X116D", "", "Y117D", ""},
            {"X116E", "", "Y117E", ""},
            {"X116F", "", "Y117F", ""}
        };
        m_machines[machineName] = defaultData;
    }
    else if (machineName == "AfterBake") {
        std::vector<IOData> defaultData = {
            {"X200", "¼±Í£ EMO", "Y400", "ËÄÉ«µÆ-ºì"},
            {"X201", "×ܽøÆøÑ¹Á¦¼ì", "Y401", "ËÄÉ«µÆ-»Æ"},
            {"X202", "A¼ÓÈȵç¹ñÑ̸б¨¾¯", "Y402", "ËÄÉ«µÆ-ÂÌ"},
            {"X203", "B¼ÓÈȵç¹ñÑ̸б¨¾¯", "Y403", "ËÄÉ«µÆ-À¶"},
            {"X204", "°²È«¼ÌµçÆ÷¼ì", "Y404", "·äÃùÆ÷-1"},
            {"X205", "ÉϵçÏäοر¨¾¯", "Y405", "·äÃùÆ÷-2"},
            {"X206", "ϵçÏäοر¨¾¯", "Y406", "·äÃùÆ÷-3"},
            {"X207", "", "Y407", "·äÃùÆ÷-4"},
            {"X208", "°²È«ÃŴżì1", "Y408", "»ų́ÕÕÃ÷"},
            {"X209", "°²È«ÃŴżì2", "Y409", "°²È«ÃÅËøÆÁ±Î"},
            {"X20A", "°²È«ÃŴżì3", "Y40A", ""},
            {"X20B", "°²È«ÃŴżì4", "Y40B", ""},
            {"X20C", "°²È«ÃÅËø¼ì1", "Y40C", "°²È«ÃÅËø1"},
            {"X20D", "°²È«ÃÅËø¼ì2", "Y40D", "°²È«ÃÅËø2"},
            {"X20E", "°²È«ÃÅËø¼ì3", "Y40E", "°²È«ÃÅËø3"},
            {"X20F", "°²È«ÃÅËø¼ì4", "Y40F", "°²È«ÃÅËø4"},
            {"X210", "AÉÏÇ»¼Ð³ÖÆø¸×1ԭλ", "Y410", "AÉÏÇ»¼Ð³ÖÆø¸×"},
            {"X211", "AÉÏÇ»¼Ð³ÖÆø¸×1µ½Î»", "Y411", ""},
            {"X212", "AÉÏÇ»¼Ð³ÖÆø¸×2ԭλ", "Y412", "Aǻˮ·ͨ¶Ï·§"},
            {"X213", "AÉÏÇ»¼Ð³ÖÆø¸×2µ½Î»", "Y413", ""},
            {"X214", "AÏÂÇ»¼ÓÈÈÒÑÉϵç", "Y414", ""},
            {"X215", "AÏÂÖ÷ÎÂ¿Ø±í±¨¾¯", "Y415", ""},
            {"X216", "AÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y416", ""},
            {"X217", "AÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y417", ""},
            {"X218", "AÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y418", ""},
            {"X219", "AÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y419", ""},
            {"X21A", "AÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y41A", ""},
            {"X21B", "", "Y41B", ""},
            {"X21C", "Ç»Ìå×óÉÏÃÅ´Å", "Y41C", ""},
            {"X21D", "Ç»Ìå×óÏÂÃÅ´Å", "Y41D", ""},
            {"X21E", "Ç»ÌåÓÒÉÏÃÅ´Å", "Y41E", ""},
            {"X21F", "Ç»ÌåÓÒÏÂÃÅ´Å", "Y41F", ""},
            {"X220", "BÉÏÇ»¼Ð³ÖÆø¸×1ԭλ", "Y420", "BÉÏÇ»¼Ð³ÖÆø¸×"},
            {"X221", "BÉÏÇ»¼Ð³ÖÆø¸×1µ½Î»", "Y421", ""},
            {"X222", "BÉÏÇ»¼Ð³ÖÆø¸×2ԭλ", "Y422", "Bǻˮ·ͨ¶Ï·§"},
            {"X223", "BÉÏÇ»¼Ð³ÖÆø¸×2µ½Î»", "Y423", ""},
            {"X224", "BÏÂÇ»¼ÓÈÈÒÑÉϵç", "Y424", ""},
            {"X225", "BÏÂÖ÷ÎÂ¿Ø±í±¨¾¯", "Y425", ""},
            {"X226", "BÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯1", "Y426", ""},
            {"X227", "BÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯2", "Y427", ""},
            {"X228", "BÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯3", "Y428", ""},
            {"X229", "BÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯4", "Y429", ""},
            {"X22A", "BÏÂÇ»¼à¿ØÎÂ¿Ø±í±¨¾¯5", "Y42A", ""},
            {"X22B", "", "Y42B", ""},
            {"X22C", "AÉÏÇ»ÓÐÁϼì", "Y42C", ""},
            {"X22D", "", "Y42D", ""},
            {"X22E", "", "Y42E", ""},
            {"X22F", "", "Y42F", ""}
        };
        m_machines[machineName] = defaultData;
    }
    else if (machineName == "AOI") {
        std::vector<IOData> defaultData = {
            {"X240", "¼±Í£ EMO", "Y440", "ËÄÉ«µÆ-ºì"},
            {"X241", "×ܽøÆøÑ¹Á¦±í", "Y441", "ËÄÉ«µÆ-»Æ"},
            {"X242", "Ñ̸б¨¾¯", "Y442", "ËÄÉ«µÆ-ÂÌ"},
            {"X243", "", "Y443", "ËÄÉ«µÆ-À¶"},
            {"X244", "", "Y444", "·äÃùÆ÷-1"},
            {"X245", "×óÉÏÃŴżì", "Y445", "·äÃùÆ÷-2"},
            {"X246", "×óÏÂÃŴżì", "Y446", "·äÃùÆ÷-3"},
            {"X247", "ÓÒÉÏÃŴżì", "Y447", "·äÃùÆ÷-4"},
            {"X248", "ÓÒÏÂÃŴżì", "Y448", "»ų́ÕÕÃ÷"},
            {"X249", "°²È«ÃŴżì1", "Y449", "°²È«ÃÅËøÆÁ±Î"},
            {"X24A", "°²È«ÃŴżì2", "Y44A", ""},
            {"X24B", "°²È«ÃÅËø¼ì1", "Y44B", "°²È«ÃÅËø1"},
            {"X24C", "°²È«ÃÅËø¼ì2", "Y44C", "°²È«ÃÅËø2"},
            {"X24D", "¼ì²â°á±ÛѹÁ¦¼ì", "Y44D", ""},
            {"X24E", "¼ì²âÆ½Ì¨Õæ¿Õ¼ì", "Y44E", "¼ì²âƽ̨ÎüÕæ¿Õ"},
            {"X24F", "¼ì²âƽ̨ÓÐÁϼì", "Y44F", "¼ì²âÆ½Ì¨ÆÆÕæ¿Õ"},
            {"X250", "¼ì²âƽ̨¶ÔÎ»Æø¸×A1ԭλ", "Y450", "¼ì²âƽ̨¶ÔÎ»Æø¸×A"},
            {"X251", "¼ì²âƽ̨¶ÔÎ»Æø¸×A1µ½Î»", "Y451", ""},
            {"X252", "¼ì²âƽ̨¶ÔÎ»Æø¸×A2ԭλ", "Y452", ""},
            {"X253", "¼ì²âƽ̨¶ÔÎ»Æø¸×A2µ½Î»", "Y453", ""},
            {"X254", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×A1ԭλ", "Y454", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×A"},
            {"X255", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×A1µ½Î»", "Y455", ""},
            {"X256", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×A2ԭλ", "Y456", ""},
            {"X257", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×A2µ½Î»", "Y457", ""},
            {"X258", "¼ì²âƽ̨¶ÔÎ»Æø¸×B1ԭλ", "Y458", "¼ì²âƽ̨¶ÔÎ»Æø¸×B"},
            {"X259", "¼ì²âƽ̨¶ÔÎ»Æø¸×B1µ½Î»", "Y459", ""},
            {"X25A", "¼ì²âƽ̨¶ÔÎ»Æø¸×B2ԭλ", "Y45A", ""},
            {"X25B", "¼ì²âƽ̨¶ÔÎ»Æø¸×B2µ½Î»", "Y45B", ""},
            {"X25C", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×B1ԭλ", "Y45C", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×B"},
            {"X25D", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×B1µ½Î»", "Y45D", ""},
            {"X25E", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×B2ԭλ", "Y45E", ""},
            {"X25F", "¼ì²âƽ̨¶ÔλÉý½µÆø¸×B2µ½Î»", "Y45F", ""},
            {"X260", "", "Y460", ""},
            {"X261", "", "Y461", ""},
            {"X262", "", "Y462", ""},
            {"X263", "", "Y463", ""},
            {"X264", "", "Y464", ""},
            {"X265", "", "Y465", ""},
            {"X266", "", "Y466", ""},
            {"X267", "", "Y467", ""},
            {"X268", "", "Y468", ""},
            {"X269", "", "Y469", ""},
            {"X26A", "", "Y46A", ""},
            {"X26B", "", "Y46B", ""},
            {"X26C", "", "Y46C", ""},
            {"X26D", "", "Y46D", ""},
            {"X26E", "", "Y46E", ""},
            {"X26F", "", "Y46F", ""}
        };
        m_machines[machineName] = defaultData;
    }
    */
}
 
void IOManager::saveToFile(const std::string& machineName) {
    std::ofstream file(m_directory + "/" + machineName + ".iom");
    if (!file.is_open()) {
        std::cerr << "Failed to open file for writing: " << machineName << ".iom" << std::endl;
        return;
    }
 
    for (const auto& entry : m_machines[machineName]) {
        file << entry.inputAddress << ","
            << entry.inputDescription << ","
            << entry.outputAddress << ","
            << entry.outputDescription << "\n";
    }
 
    file.close();
}
 
bool IOManager::loadFromFile(const std::string& machineName) {
    std::ifstream file(m_directory + "/" + machineName + ".iom");
    if (!file.is_open()) {
        std::cerr << "Failed to open file for reading: " << machineName << ".iom" << std::endl;
        return false;
    }
 
    std::vector<IOData> data;
    std::string line;
    while (std::getline(file, line)) {
        IOData entry;
        size_t pos = 0;
        pos = line.find(",");
 
        entry.bInputStates = FALSE;
        entry.bOutputStates = FALSE;
 
        entry.inputAddress = line.substr(0, pos);
        line.erase(0, pos + 1);
 
        pos = line.find(",");
        entry.inputDescription = line.substr(0, pos);
        line.erase(0, pos + 1);
 
        pos = line.find(",");
        entry.outputAddress = line.substr(0, pos);
        line.erase(0, pos + 1);
 
        entry.outputDescription = line;
        data.push_back(entry);
    }
 
    m_machines[machineName] = data;
    file.close();
    return true;
}
 
void IOManager::printMachineData(const std::string& machineName) const {
    auto it = m_machines.find(machineName);
    if (it != m_machines.end()) {
        for (const auto& entry : it->second) {
            std::cout << "Input Address: " << entry.inputAddress
                << ", Input Description: " << entry.inputDescription
                << ", Output Address: " << entry.outputAddress
                << ", Output Description: " << entry.outputDescription << std::endl;
        }
    }
    else {
        std::cerr << "Machine not found: " << machineName << std::endl;
    }
}
 
std::vector<IOData> IOManager::GetMachineData(const std::string& machineName) const
{
    auto it = m_machines.find(machineName);
    if (it != m_machines.end()) {
        return it->second;
    }
    return {};
}