chenluhua1980
2025-12-11 33f080ddc32f3545b685b2e0a7a5df3c35894270
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include "IOManager.h"
#include "ToolUnits.h"
 
IOManager::IOManager() {
    m_directory = CToolUnits::getCurrentExePath() + _T("\\PLCs");
    if (!CToolUnits::isDirectory(m_directory)) {
        CToolUnits::createDir(m_directory.c_str());
    }
}
 
void IOManager::DefaultMachineData() {
    std::vector<IOData> vecDefaultData = {
    {FALSE, "X1000", "Unit1_¼±Í£ EMO", FALSE, "Y1010", "Unit1_ËÄÉ«µÆ-ºì"},
    {FALSE, "X1001", "Unit1_×ܽøÆøÑ¹Á¦¼ì",FALSE,"Y1011", "Unit1_ËÄÉ«µÆ-»Æ"},
    {FALSE, "X1002", "Unit1_ËÅ·þµç¹ñÑ̸б¨¾¯", FALSE, "Y1012", "Unit1_ËÄÉ«µÆ-ÂÌ"},
    {FALSE,"X1003", "Unit1_¼ÓÈȵç¹ñÑ̸б¨¾¯", FALSE, "Y1013", "Unit1_ËÄÉ«µÆ-À¶"},
    {FALSE, "X1004", "°²È«¼ÌµçÆ÷¼ì", FALSE, "Y1014", "Unit1_·äÃùÆ÷-1"},
    {FALSE, "X1005", "", FALSE, "Y1015", "Unit1_·äÃùÆ÷-2"},
    {FALSE, "X1006", "",FALSE,  "Y1016", "Unit1_·äÃùÆ÷-3"},
    {FALSE, "X1007", "Unit1_°²È«ÃŴżì1", FALSE,"Y1017", "Unit1_·äÃùÆ÷-4"},
    {FALSE, "X1008", "Unit1_°²È«ÃŴżì2",FALSE, "Y1018", "Unit1_»ų́ÕÕÃ÷"},
    {FALSE, "X1009", "Unit1_°²È«ÃŴżì3",FALSE, "Y1019", "Unit1_°²È«ÃÅËøÆÁ±Î"},
    {FALSE, "X100A", "Unit1_°²È«ÃŴżì4",FALSE, "Y101A", ""},
    {FALSE, "X100B", "Unit1_°²È«ÃŴżì5", FALSE,"Y101B", ""},
    {FALSE, "X100C", "Unit1_°²È«ÃŴżì6",FALSE, "Y101C", ""},
    {FALSE, "X100D", "Unit1_°²È«ÃÅËø¼ì1",FALSE, "Y101D", "Unit1_°²È«ÃÅËø1"},
    {FALSE, "X100E", "Unit1_°²È«ÃÅËø¼ì2",FALSE, "Y101E", "Unit1_°²È«ÃÅËø2"},
    {FALSE, "X100F", "Unit1_°²È«ÃÅËø¼ì3",FALSE, "Y101F", "Unit1_°²È«ÃÅËø3"},
    {FALSE, "X1020", "Unit1_·Ö×Ó±Ã-Alam(8-14)",FALSE, "Y1030", "Unit1_·Ö×Ó±ÃÆô¶¯(1-9)"},
    {FALSE, "X1021", "Unit1_·Ö×Ó±Ã-Ô¶³Ì/±¾µØÄ£Ê½(7-15)", FALSE,"Y1031", "Unit1_·Ö×Ó±ÃÁªËø×°ÖÃ(2-10)"},
    {FALSE, "X1022", "Unit1_·Ö×Ó±Ã-Õý³£ÔËÐУ¨4-12£©", FALSE,"Y1032", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§"},
    {FALSE, "X1023", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§Ô­Î»", FALSE,"Y1033", "Unit1_ÆøÄÒͨ¶Ï·§"},
    {FALSE, "X1024", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§µ½Î»", FALSE,"Y1034", ""},
    {FALSE, "X1025", "Unit1_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ", FALSE,"Y1035", "Unit1_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ"},
    {FALSE, "X1026", "Unit1_Ç»ÌåÍÐÆ¬×󯸏׵½Î»",FALSE, "Y1036", "Unit1_Ç»ÌåÍÐÆ¬×󯸏׵½Î»"},
    {FALSE, "X1027", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ", FALSE,"Y1037", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ"},
    {FALSE, "X1028", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»", FALSE,"Y1038", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»"},
    {FALSE, "X1029", "Unit1_ÃÅ·§Éý½µÆø¸×ԭλ", FALSE,"Y1039", "Unit1_ÃÅ·§Éý½µÆø¸×"},
    {FALSE, "X102A", "Unit1_ÃÅ·§Éý½µÆø¸×µ½Î»",FALSE, "Y103A", ""},
    {FALSE, "X102B", "Unit1_Ç»Ì寯տ¿ÕÆø·§Ô­Î»",FALSE, "Y103B", "Unit1_Ç»Ì寯տ¿ÕÆø·§"},
    {FALSE, "X102C", "Unit1_Ç»Ì寯տ¿ÕÆø·§µ½Î»", FALSE,"Y103C", "Unit1_·Ö×Ó±ÃÅÅÆø·§"},
    {FALSE, "X102D", "Unit1_ÏÂÇ»Æ½Ì¨Õæ¿Õ¼ì", FALSE,"Y103D", "Unit1_ÏÂǻƽ̨ÎüÕæ¿Õ"},
    {FALSE, "X102E", "Unit1_·Ö×Ó±ÃÅÅÆø·§Ô­Î»",FALSE, "Y103E", "Unit1_ÏÂÇ»Æ½Ì¨ÆÆÕæ¿Õ"},
    {FALSE, "X102F", "Unit1_·Ö×Ó±ÃÅÅÆø·§µ½Î»", FALSE,"Y103F", ""},
    {FALSE, "X1040", "Unit1_ÉϼÓÈÈÒÑÉϵç",FALSE, "Y1050", "Unit1_ÉϼÓÈÈÉϵç"},
    {FALSE, "X1041", "Unit1_ÉÏÖ÷ÎÂ¿Ø±í±¨¾¯", FALSE,"Y1051", "Unit1_ϼÓÈÈÉϵç"},
    {FALSE, "X1042", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y1052", ""},
    {FALSE, "X1043", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯2",FALSE, "Y1053", ""},
    {FALSE, "X1044", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯3", FALSE,"Y1054", ""},
    {FALSE, "X1045", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯4",FALSE, "Y1055", ""},
    {FALSE, "X1046", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯5",FALSE, "Y1056", ""},
    {FALSE, "X1047", "Unit1_ϼÓÈÈÒÑÉϵç",FALSE, "Y1057", ""},
    {FALSE, "X1048", "Unit1_ÏÂÖ÷ÎÂ¿Ø±í±¨¾¯",FALSE, "Y1058", ""},
    {FALSE, "X1049", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y1059", ""},
    {FALSE, "X104A", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯2", FALSE,"Y105A", ""},
    {FALSE, "X104B", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯3", FALSE,"Y105B", ""},
    {FALSE, "X104C", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯4", FALSE,"Y105C", ""},
    {FALSE, "X104D", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯5",FALSE, "Y105D", ""},
    {FALSE, "X104E", "",FALSE, "Y105E", ""},
    {FALSE, "X104F", "", FALSE,"Y105F", ""},
    {FALSE, "X1060", "Unit1_¸É±Ã-DVPÔËÐмì²â-11",FALSE, "Y1070", "Unit1_¸É±Ã-DVPÆô¶¯-1"},
    {FALSE, "X1061", "Unit1_¸É±Ã-MBPÔËÐмì²â-12",FALSE, "Y1071", "Unit1_¸É±Ã-MBPÆô¶¯-2"},
    {FALSE, "X1062", "Unit1_¸É±Ã-´íÎ󱨾¯ÖÐ-14",FALSE, "Y1072", "Unit1_¸É±Ã-Òì³£½â³ý-3"},
    {FALSE, "X1063", "Unit1_¸É±Ã-´íÎ󾯸æÖÐ-16",FALSE, "Y1073", ""},
    {FALSE, "X1064", "Unit1_¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18",FALSE, "Y1074", "Unit1_µªÆøÍ¨¶Ïµç´Å·§1"},
    {FALSE, "X1065", "Unit1_¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20",FALSE, "Y1075", "Unit1_µªÆøÍ¨¶Ïµç´Å·§2"},
    {FALSE, "X1066", "",FALSE, "Y1076", "Unit1_µªÆøÍ¨¶Ïµç´Å·§3"},
    {FALSE, "X1067", "",FALSE, "Y1077", "Unit1_µªÆøÍ¨¶Ïµç´Å·§4"},
    {FALSE, "X1068", "",FALSE, "Y1078", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§1"},
    {FALSE, "X1069", "",FALSE, "Y1079", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§2"},
    {FALSE, "X106A", "",FALSE, "Y107A", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§3"},
    {FALSE, "X106B", "", FALSE,"Y107B", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§4"},
    {FALSE, "X106C", "", FALSE,"Y107C", "Unit1_Ç»Ìåµ×°åͨ¶Ïµç´Å·§1"},
    {FALSE, "X106D", "Unit1_Ë®ÏäÉÏҺλ¼ì",FALSE, "Y107D", "Unit1_Ç»Ìåµ×°åͨ¶Ïµç´Å·§2"},
    {FALSE, "X106E", "Unit1_Ë®ÏäÖÐҺλ¼ì",FALSE, "Y107E", "Unit1_Ë®Ïä½øË®·§"},
    {FALSE, "X106F", "Unit1_Ë®ÏäÏÂҺλ¼ì", FALSE,"Y107F", "Unit1_Ë®Ïä³öË®·§"},
    {FALSE, "X1080", "Unit2_¼±Í£ EMO",FALSE, "Y1090", "Unit2_ËÄÉ«µÆ-ºì"},
    {FALSE, "X1081", "Unit2_×ܽøÆøÑ¹Á¦¼ì",FALSE, "Y1091", "Unit2_ËÄÉ«µÆ-»Æ"},
    {FALSE, "X1082", "Unit2_ËÅ·þµç¹ñÑ̸б¨¾¯",FALSE, "Y1092", "Unit2_ËÄÉ«µÆ-ÂÌ"},
    {FALSE, "X1083", "Unit2_¼ÓÈȵç¹ñÑ̸б¨¾¯", FALSE,"Y1093", "Unit2_ËÄÉ«µÆ-À¶"},
    {FALSE, "X1084", "°²È«¼ÌµçÆ÷¼ì",FALSE, "Y1094", "Unit2_·äÃùÆ÷-1"},
    {FALSE, "X1085", "", FALSE,"Y1095", "Unit2_·äÃùÆ÷-2"},
    {FALSE, "X1086", "", FALSE,"Y1096", "Unit2_·äÃùÆ÷-3"},
    {FALSE, "X1087", "Unit2_°²È«ÃŴżì1",FALSE, "Y1097", "Unit2_·äÃùÆ÷-4"},
    {FALSE, "X1088", "Unit2_°²È«ÃŴżì2",FALSE, "Y1098", "Unit2_»ų́ÕÕÃ÷"},
    {FALSE, "X1089", "Unit2_°²È«ÃŴżì3", FALSE,"Y1099", "Unit2_°²È«ÃÅËøÆÁ±Î"},
    {FALSE, "X108A", "Unit2_°²È«ÃŴżì4",FALSE, "Y109A", ""},
    {FALSE, "X108B", "Unit2_°²È«ÃŴżì5",FALSE, "Y109B", ""},
    {FALSE, "X108C", "Unit2_°²È«ÃŴżì6",FALSE, "Y109C", ""},
    {FALSE, "X108D", "Unit2_°²È«ÃÅËø¼ì1",FALSE, "Y109D", "Unit2_°²È«ÃÅËø1"},
    {FALSE, "X108E", "Unit2_°²È«ÃÅËø¼ì2",FALSE, "Y109E", "Unit2_°²È«ÃÅËø2"},
    {FALSE, "X108F", "Unit2_°²È«ÃÅËø¼ì3",FALSE, "Y109F", "Unit2_°²È«ÃÅËø3"},
    {FALSE, "X10A0", "Unit2_·Ö×Ó±Ã-Alam(8-14)", FALSE,"Y10B0", "Unit2_·Ö×Ó±ÃÆô¶¯(1-9)"},
    {FALSE, "X10A1", "Unit2_·Ö×Ó±Ã-Ô¶³Ì/±¾µØÄ£Ê½(7-15)", FALSE,"Y10B1", "Unit2_·Ö×Ó±ÃÁªËø×°ÖÃ(2-10)"},
    {FALSE, "X10A2", "Unit2_·Ö×Ó±Ã-Õý³£ÔËÐУ¨4-12£©",FALSE, "Y10B2", "Unit2_·Ö×Ó±Ãͨ¶Ï²å°å·§"},
    {FALSE, "X10A3", "", FALSE,"Y10B3", "Unit2_ÆøÄÒͨ¶Ï·§"},
    {FALSE, "X10A4", "",FALSE, "Y10B4", ""},
    {FALSE, "X10A5", "Unit2_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ",FALSE, "Y10B5", "Unit2_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ"},
    {FALSE, "X10A6", "Unit2_Ç»ÌåÍÐÆ¬×󯸏׵½Î»",FALSE, "Y10B6", "Unit2_Ç»ÌåÍÐÆ¬×󯸏׵½Î»"},
    {FALSE, "X10A7", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ",FALSE, "Y10B7", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ"},
    {FALSE, "X10A8", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»",FALSE, "Y10B8", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»"},
    {FALSE, "X10A9", "Unit2_ÃÅ·§Éý½µÆø¸×ԭλ", FALSE,"Y10B9", "Unit2_ÃÅ·§Éý½µÆø¸×"},
    {FALSE, "X10AA", "Unit2_ÃÅ·§Éý½µÆø¸×µ½Î»", FALSE,"Y10BA", ""},
    {FALSE, "X10AB", "Unit2_Ç»Ì寯տ¿ÕÆø·§Ô­Î»", FALSE,"Y10BB", "Unit2_Ç»Ì寯տ¿ÕÆø·§"},
    {FALSE, "X10AC", "Unit2_Ç»Ì寯տ¿ÕÆø·§µ½Î»",FALSE, "Y10BC", "Unit2_·Ö×Ó±ÃÅÅÆø·§"},
    {FALSE, "X10AD", "Unit2_ÏÂÇ»Æ½Ì¨Õæ¿Õ¼ì", FALSE,"Y10BD", "Unit2_ÏÂǻƽ̨ÎüÕæ¿Õ"},
    {FALSE, "X10AE", "Unit2_·Ö×Ó±ÃÅÅÆø·§Ô­Î»",FALSE, "Y10BE", "Unit2_ÏÂÇ»Æ½Ì¨ÆÆÕæ¿Õ"},
    {FALSE, "X10AF", "Unit2_·Ö×Ó±ÃÅÅÆø·§µ½Î»",FALSE, "Y10BF", ""},
    {FALSE, "X10C0", "Unit2_ÉϼÓÈÈÒÑÉϵç", FALSE,"Y10D0", "Unit2_ÉϼÓÈÈÉϵç"},
    {FALSE, "X10C1", "Unit2_ÉÏÖ÷ÎÂ¿Ø±í±¨¾¯",FALSE, "Y10D1", "Unit2_ϼÓÈÈÉϵç"},
    {FALSE, "X10C2", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y10D2", ""},
    {FALSE, "X10C3", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯2",FALSE, "Y10D3", ""},
    {FALSE, "X10C4", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯3",FALSE, "Y10D4", ""},
    {FALSE, "X10C5", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯4", FALSE,"Y10D5", ""},
    {FALSE, "X10C6", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯5", FALSE,"Y10D6", ""},
    {FALSE, "X10C7", "Unit2_ϼÓÈÈÒÑÉϵç", FALSE,"Y10D7", ""},
    {FALSE,"X10C8", "Unit2_ÏÂÖ÷ÎÂ¿Ø±í±¨¾¯", FALSE,"Y10D8", ""},
    {FALSE, "X10C9", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y10D9", ""},
    {FALSE, "X10CA", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯2", FALSE,"Y10DA", ""},
    {FALSE, "X10CB", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯3",FALSE, "Y10DB", ""},
    {FALSE, "X10CC", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯4",FALSE, "Y10DC", ""},
    {FALSE, "X10CD", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯5", FALSE,"Y10DD", ""},
    {FALSE, "X10CE", "",FALSE, "Y10DE", ""},
    {FALSE, "X10CF", "", FALSE,"Y10DF", ""},
    {FALSE, "X10E0", "Unit2_¸É±Ã-DVPÔËÐмì²â-11",FALSE, "Y10F0", "Unit2_¸É±Ã-DVPÆô¶¯-1"},
    {FALSE, "X10E1", "Unit2_¸É±Ã-MBPÔËÐмì²â-12",FALSE, "Y10F1", "Unit2_¸É±Ã-MBPÆô¶¯-2"},
    {FALSE, "X10E2", "Unit2_¸É±Ã-´íÎ󱨾¯ÖÐ-14", FALSE,"Y10F2", "Unit2_¸É±Ã-Òì³£½â³ý-3"},
    {FALSE, "X10E3", "Unit2_¸É±Ã-´íÎ󾯸æÖÐ-16",FALSE, "Y10F3", ""},
    {FALSE, "X10E4", "Unit2_¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18",FALSE, "Y10F4", "Unit2_µªÆøÍ¨¶Ïµç´Å·§1"},
    {FALSE, "X10E5", "Unit2_¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20",FALSE, "Y10F5", "Unit2_µªÆøÍ¨¶Ïµç´Å·§2"},
    {FALSE, "X10E6", "",FALSE, "Y10F6", "Unit2_µªÆøÍ¨¶Ïµç´Å·§3"},
    {FALSE, "X10E7", "",FALSE, "Y10F7", "Unit2_µªÆøÍ¨¶Ïµç´Å·§4"},
    {FALSE, "X10E8", "",FALSE, "Y10F8", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§1"},
    {FALSE, "X10E9", "",FALSE, "Y10F9", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§2"},
    {FALSE, "X10EA", "",FALSE,"Y10FA", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§3"},
    {FALSE, "X10EB", "",FALSE, "Y10FB", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§4"},
    {FALSE, "X10EC", "",FALSE, "Y10FC", "Unit2_Ç»Ìåµ×°åͨ¶Ïµç´Å·§1"},
    {FALSE, "X10ED", "Unit2_Ë®ÏäÉÏҺλ¼ì",FALSE, "Y10FD", "Unit2_Ç»Ìåµ×°åͨ¶Ïµç´Å·§2"},
    {FALSE, "X10EE", "Unit2_Ë®ÏäÖÐҺλ¼ì",FALSE, "Y10FE", "Unit2_Ë®Ïä½øË®·§"},
    {FALSE, "X10EF", "Unit2_Ë®ÏäÏÂҺλ¼ì",FALSE, "Y10FF", "Unit2_Ë®Ïä³öË®·§"}
    };
 
    m_vecMachines.resize(vecDefaultData.size());
    m_vecMachines.assign(vecDefaultData.begin(), vecDefaultData.end());
}
 
void IOManager::SaveToFile(const std::string& strMachineName) {
    std::ofstream file(m_directory + "\\" + strMachineName +"\\" + "IOConfiguration.iom");
    if (!file.is_open()) {
        std::cerr << "Failed to open file for writing: " << strMachineName << ".iom" << std::endl;
        return;
    }
 
    if (m_vecMachines.empty()) {
        DefaultMachineData();
    }
 
    for (const auto& entry : m_vecMachines) {
        file << entry.inputAddress << ","
            << entry.inputDescription << ","
            << entry.outputAddress << ","
            << entry.outputDescription << "\n";
    }
 
    file.close();
}
 
bool IOManager::LoadFromFile(const std::string& strMachineName) {
    std::ifstream file(m_directory + "\\" + strMachineName + "\\" + "IOConfiguration.iom");
    if (!file.is_open()) {
        std::cerr << "Failed to open file for reading: " << strMachineName << ".iom" << std::endl;
        return false;
    }
 
    m_vecMachines.clear();
 
    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;
        m_vecMachines.push_back(entry);
    }
 
    file.close();
    return true;
}
 
void IOManager::GetMachineData(std::vector<IOData>& vecMachines) {
    vecMachines.resize(m_vecMachines.size());
    vecMachines.assign(m_vecMachines.begin(), m_vecMachines.end());
}