1 //--------------------------------------------------------------------------
2 // Copyright (C) 2021-2021 Cisco and/or its affiliates. All rights reserved.
3 //
4 // This program is free software; you can redistribute it and/or modify it
5 // under the terms of the GNU General Public License Version 2 as published
6 // by the Free Software Foundation.  You may not use, modify or distribute
7 // this program under any other version of the GNU General Public License.
8 //
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License along
15 // with this program; if not, write to the Free Software Foundation, Inc.,
16 // 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 //--------------------------------------------------------------------------
18 
19 // iec104_parse_information_object_elements.h author Jared Rittle <jared.rittle@cisco.com>
20 
21 #ifndef IEC104_PARSE_INFORMATION_OBJECT_ELEMENTS_H
22 #define IEC104_PARSE_INFORMATION_OBJECT_ELEMENTS_H
23 
24 #include "iec104_parse_apdu.h"
25 
26 #define IEC104_MS_IN_MINUTE 60000
27 #define IEC104_MINS_IN_HOUR 60
28 #define IEC104_HOURS_IN_DAY 24
29 #define IEC104_TIME2ARES4YEAR_BASE 1900
30 #define IEC104_TIME2ARES4YEAR_1970 70
31 #define IEC104_TIME2ARES4YEAR_2027 127
32 #define IEC104_MAX_DAYOFMONTH_FEB_LEAPYEAR 29
33 #define IEC104_MAX_DAYOFMONTH_FEB_NONLEAPYEAR 28
34 #define IEC104_MAX_DAYOFMONTH_30 30
35 #define IEC104_MAX_DAYOFMONTH_31 31
36 
37 void parseIec104Coi(const Iec104CoiType* coi);
38 void parseIec104Qoi(const Iec104QoiType* qoi);
39 void parseIec104Qcc(const Iec104QccType* qcc);
40 void parseIec104Qpm(const Iec104QpmType* qpm);
41 void parseIec104Qpa(const Iec104QpaType* qpa);
42 void parseIec104Qoc(uint8_t qu, uint8_t se);
43 void parseIec104Qrp(const Iec104QrpType* qrp);
44 void parseIec104Frq(const Iec104FrqType* frq);
45 void parseIec104Srq(const Iec104SrqType* srq);
46 void parseIec104Scq(const Iec104ScqType* scq);
47 void parseIec104Lsq(const Iec104LsqType* lsq);
48 void parseIec104Afq(const Iec104AfqType* afq);
49 uint32_t parseIec104Vsq(const Iec104ApciI* apci);
50 void parseIec104CauseOfTx(const Iec104ApciI* apci);
51 void parseIec104TwoOctetCommonAddress(const Iec104ApciI* apci);
52 void parseIec104InformationObjectAddressWithThreeOctets(
53     const Iec104InformationObjectAddressThreeOctetType* ioa);
54 void parseIec104Siq(const Iec104SiqType* siq);
55 void parseIec104Diq(const Iec104DiqType* diq);
56 void parseIec104Qds(const Iec104QdsType* qds);
57 void parseIec104Qdp(const Iec104QdpType* qdp);
58 void parseIec104Vti(const Iec104VtiType* vti);
59 void parseIec104Nva(const Iec104NvaType* nva);
60 void parseIec104Sva(const Iec104SvaType* sva);
61 void parseIec104IeeeStd754(const Iec104IeeeStd754Type* ieeeStd754);
62 void parseIec104Bcr(const Iec104BcrType* bcr);
63 void parseIec104Sep(const Iec104SepType* sep);
64 void parseIec104Spe(const Iec104SpeType* spe);
65 void parseIec104Oci(const Iec104OciType* oci);
66 void parseIec104Bsi(const Iec104BsiType* bsi);
67 void parseIec104Fbp(const Iec104FbpType* fbp);
68 void parseIec104Sco(const Iec104ScoType* sco);
69 void parseIec104Dco(const Iec104DcoType* dco);
70 void parseIec104Rco(const Iec104RcoType* rco);
71 void parseIec104Time2aMilliseconds(const Iec104Time2aMillisecondsType* time2aMilliseconds);
72 void parseIec104Time2aIvresminute(const Iec104Time2aIvresminuteType* time2aIvresminute);
73 void parseIec104Time2aSures2hour(const Iec104Time2aSures2hourType* time2aSures2hour);
74 void parseIec104Time2aDowday(const Iec104Cp56Time2aType* sevenOctetBinaryTime);
75 void parseIec104Time2aRes3month(const Iec104Time2aRes3monthType* time2aRes3month);
76 void parseIec104Time2aRes4year(const Iec104Time2aRes4yearType* time2aRes4year);
77 void parseIec104Cp56Time2a(const Iec104Cp56Time2aType* sevenOctetBinaryTime);
78 void parseIec104Cp24Time2a(const Iec104Cp24Time2aType* threeOctetBinaryTime);
79 void parseIec104Cp16Time2a(const Iec104Cp16Time2aType* cp16Time2a);
80 void parseIec104Nof(const Iec104NofType* nof);
81 void parseIec104Nos(const Iec104NosType* nos);
82 void parseIec104Lof(const Iec104LofType* lof);
83 bool parseIec104Los(const Iec104LosType* los, uint16_t apduSize);
84 void parseIec104Chs(const Iec104ChsType* chs);
85 void parseIec104Sof(const Iec104SofType* sof);
86 void parseIec104Qos(const Iec104QosType* qos);
87 void parseIec104Scd(const Iec104ScdType* scd);
88 void parseIec104Tsc(const Iec104TscType* tsc);
89 void parseIec104Segment(const Iec104SegmentType* segment);
90 
91 struct GenericIec104AsduIOGroup
92 {
93     bool includeIOA;
94     uint16_t apduSize;
95     uint32_t asduType;
96     union
97     {
98         const Iec104M_SP_NA_1_IO_Group* m_sp_na_1IOGroup;
99         const Iec104M_SP_TA_1_IO_Group* m_sp_ta_1IOGroup;
100         const Iec104M_DP_NA_1_IO_Group* m_dp_na_1IOGroup;
101         const Iec104M_DP_TA_1_IO_Group* m_dp_ta_1IOGroup;
102         const Iec104M_ST_NA_1_IO_Group* m_st_na_1IOGroup;
103         const Iec104M_ST_TA_1_IO_Group* m_st_ta_1IOGroup;
104         const Iec104M_BO_NA_1_IO_Group* m_bo_na_1IOGroup;
105         const Iec104M_BO_TA_1_IO_Group* m_bo_ta_1IOGroup;
106         const Iec104M_ME_NA_1_IO_Group* m_me_na_1IOGroup;
107         const Iec104M_ME_TA_1_IO_Group* m_me_ta_1IOGroup;
108         const Iec104M_ME_NB_1_IO_Group* m_me_nb_1IOGroup;
109         const Iec104M_ME_TB_1_IO_Group* m_me_tb_1IOGroup;
110         const Iec104M_ME_NC_1_IO_Group* m_me_nc_1IOGroup;
111         const Iec104M_ME_TC_1_IO_Group* m_me_tc_1IOGroup;
112         const Iec104M_IT_NA_1_IO_Group* m_it_na_1IOGroup;
113         const Iec104M_IT_TA_1_IO_Group* m_it_ta_1IOGroup;
114         const Iec104M_EP_TA_1_IO_Group* m_ep_ta_1IOGroup;
115         const Iec104M_EP_TB_1_IO_Group* m_ep_tb_1IOGroup;
116         const Iec104M_EP_TC_1_IO_Group* m_ep_tc_1IOGroup;
117         const Iec104M_PS_NA_1_IO_Group* m_ps_na_1IOGroup;
118         const Iec104M_ME_ND_1_IO_Group* m_me_nd_1IOGroup;
119         const Iec104M_SP_TB_1_IO_Group* m_sp_tb_1IOGroup;
120         const Iec104M_DP_TB_1_IO_Group* m_dp_tb_1IOGroup;
121         const Iec104M_ST_TB_1_IO_Group* m_st_tb_1IOGroup;
122         const Iec104M_BO_TB_1_IO_Group* m_bo_tb_1IOGroup;
123         const Iec104M_ME_TD_1_IO_Group* m_me_td_1IOGroup;
124         const Iec104M_ME_TE_1_IO_Group* m_me_te_1IOGroup;
125         const Iec104M_ME_TF_1_IO_Group* m_me_tf_1IOGroup;
126         const Iec104M_IT_TB_1_IO_Group* m_it_tb_1IOGroup;
127         const Iec104M_EP_TD_1_IO_Group* m_ep_td_1IOGroup;
128         const Iec104M_EP_TE_1_IO_Group* m_ep_te_1IOGroup;
129         const Iec104M_EP_TF_1_IO_Group* m_ep_tf_1IOGroup;
130         const Iec104C_SC_NA_1_IO_Group* c_sc_na_1IOGroup;
131         const Iec104C_DC_NA_1_IO_Group* c_dc_na_1IOGroup;
132         const Iec104C_RC_NA_1_IO_Group* c_rc_na_1IOGroup;
133         const Iec104C_SE_NA_1_IO_Group* c_se_na_1IOGroup;
134         const Iec104C_SE_NB_1_IO_Group* c_se_nb_1IOGroup;
135         const Iec104C_SE_NC_1_IO_Group* c_se_nc_1IOGroup;
136         const Iec104C_BO_NA_1_IO_Group* c_bo_na_1IOGroup;
137         const Iec104C_SC_TA_1_IO_Group* c_sc_ta_1IOGroup;
138         const Iec104C_DC_TA_1_IO_Group* c_dc_ta_1IOGroup;
139         const Iec104C_RC_TA_1_IO_Group* c_rc_ta_1IOGroup;
140         const Iec104C_SE_TA_1_IO_Group* c_se_ta_1IOGroup;
141         const Iec104C_SE_TB_1_IO_Group* c_se_tb_1IOGroup;
142         const Iec104C_SE_TC_1_IO_Group* c_se_tc_1IOGroup;
143         const Iec104C_BO_TA_1_IO_Group* c_bo_ta_1IOGroup;
144         const Iec104M_EI_NA_1_IO_Group* m_ei_na_1IOGroup;
145         const Iec104C_IC_NA_1_IO_Group* c_ic_na_1IOGroup;
146         const Iec104C_CI_NA_1_IO_Group* c_ci_na_1IOGroup;
147         const Iec104C_RD_NA_1_IO_Group* c_rd_na_1IOGroup;
148         const Iec104C_CS_NA_1_IO_Group* c_cs_na_1IOGroup;
149         const Iec104C_TS_NA_1_IO_Group* c_ts_na_1IOGroup;
150         const Iec104C_RP_NA_1_IO_Group* c_rp_na_1IOGroup;
151         const Iec104C_CD_NA_1_IO_Group* c_cd_na_1IOGroup;
152         const Iec104C_TS_TA_1_IO_Group* c_ts_ta_1IOGroup;
153         const Iec104P_ME_NA_1_IO_Group* p_me_na_1IOGroup;
154         const Iec104P_ME_NB_1_IO_Group* p_me_nb_1IOGroup;
155         const Iec104P_ME_NC_1_IO_Group* p_me_nc_1IOGroup;
156         const Iec104P_AC_NA_1_IO_Group* p_ac_na_1IOGroup;
157         const Iec104F_FR_NA_1_IO_Group* f_fr_na_1IOGroup;
158         const Iec104F_SR_NA_1_IO_Group* f_sr_na_1IOGroup;
159         const Iec104F_SC_NA_1_IO_Group* f_sc_na_1IOGroup;
160         const Iec104F_LS_NA_1_IO_Group* f_ls_na_1IOGroup;
161         const Iec104F_AF_NA_1_IO_Group* f_af_na_1IOGroup;
162         const Iec104F_SG_NA_1_IO_Group* f_sg_na_1IOGroup;
163         const Iec104F_DR_TA_1_IO_Group* f_dr_ta_1IOGroup;
164         const Iec104F_SC_NB_1_IO_Group* f_sc_nb_1IOGroup;
165     };
166     union
167     {
168         const Iec104M_SP_NA_1_IO_Subgroup* m_sp_na_1IOSubgroup;
169         const Iec104M_SP_TA_1_IO_Subgroup* m_sp_ta_1IOSubgroup;
170         const Iec104M_DP_NA_1_IO_Subgroup* m_dp_na_1IOSubgroup;
171         const Iec104M_DP_TA_1_IO_Subgroup* m_dp_ta_1IOSubgroup;
172         const Iec104M_ST_NA_1_IO_Subgroup* m_st_na_1IOSubgroup;
173         const Iec104M_ST_TA_1_IO_Subgroup* m_st_ta_1IOSubgroup;
174         const Iec104M_BO_NA_1_IO_Subgroup* m_bo_na_1IOSubgroup;
175         const Iec104M_BO_TA_1_IO_Subgroup* m_bo_ta_1IOSubgroup;
176         const Iec104M_ME_NA_1_IO_Subgroup* m_me_na_1IOSubgroup;
177         const Iec104M_ME_TA_1_IO_Subgroup* m_me_ta_1IOSubgroup;
178         const Iec104M_ME_NB_1_IO_Subgroup* m_me_nb_1IOSubgroup;
179         const Iec104M_ME_TB_1_IO_Subgroup* m_me_tb_1IOSubgroup;
180         const Iec104M_ME_NC_1_IO_Subgroup* m_me_nc_1IOSubgroup;
181         const Iec104M_ME_TC_1_IO_Subgroup* m_me_tc_1IOSubgroup;
182         const Iec104M_IT_NA_1_IO_Subgroup* m_it_na_1IOSubgroup;
183         const Iec104M_IT_TA_1_IO_Subgroup* m_it_ta_1IOSubgroup;
184         const Iec104M_EP_TA_1_IO_Subgroup* m_ep_ta_1IOSubgroup;
185         const Iec104M_EP_TB_1_IO_Subgroup* m_ep_tb_1IOSubgroup;
186         const Iec104M_EP_TC_1_IO_Subgroup* m_ep_tc_1IOSubgroup;
187         const Iec104M_PS_NA_1_IO_Subgroup* m_ps_na_1IOSubgroup;
188         const Iec104M_ME_ND_1_IO_Subgroup* m_me_nd_1IOSubgroup;
189         const Iec104M_SP_TB_1_IO_Subgroup* m_sp_tb_1IOSubgroup;
190         const Iec104M_DP_TB_1_IO_Subgroup* m_dp_tb_1IOSubgroup;
191         const Iec104M_ST_TB_1_IO_Subgroup* m_st_tb_1IOSubgroup;
192         const Iec104M_BO_TB_1_IO_Subgroup* m_bo_tb_1IOSubgroup;
193         const Iec104M_ME_TD_1_IO_Subgroup* m_me_td_1IOSubgroup;
194         const Iec104M_ME_TE_1_IO_Subgroup* m_me_te_1IOSubgroup;
195         const Iec104M_ME_TF_1_IO_Subgroup* m_me_tf_1IOSubgroup;
196         const Iec104M_IT_TB_1_IO_Subgroup* m_it_tb_1IOSubgroup;
197         const Iec104M_EP_TD_1_IO_Subgroup* m_ep_td_1IOSubgroup;
198         const Iec104M_EP_TE_1_IO_Subgroup* m_ep_te_1IOSubgroup;
199         const Iec104M_EP_TF_1_IO_Subgroup* m_ep_tf_1IOSubgroup;
200         const Iec104C_SC_NA_1_IO_Subgroup* c_sc_na_1IOSubgroup;
201         const Iec104C_DC_NA_1_IO_Subgroup* c_dc_na_1IOSubgroup;
202         const Iec104C_RC_NA_1_IO_Subgroup* c_rc_na_1IOSubgroup;
203         const Iec104C_SE_NA_1_IO_Subgroup* c_se_na_1IOSubgroup;
204         const Iec104C_SE_NB_1_IO_Subgroup* c_se_nb_1IOSubgroup;
205         const Iec104C_SE_NC_1_IO_Subgroup* c_se_nc_1IOSubgroup;
206         const Iec104C_BO_NA_1_IO_Subgroup* c_bo_na_1IOSubgroup;
207         const Iec104C_SC_TA_1_IO_Subgroup* c_sc_ta_1IOSubgroup;
208         const Iec104C_DC_TA_1_IO_Subgroup* c_dc_ta_1IOSubgroup;
209         const Iec104C_RC_TA_1_IO_Subgroup* c_rc_ta_1IOSubgroup;
210         const Iec104C_SE_TA_1_IO_Subgroup* c_se_ta_1IOSubgroup;
211         const Iec104C_SE_TB_1_IO_Subgroup* c_se_tb_1IOSubgroup;
212         const Iec104C_SE_TC_1_IO_Subgroup* c_se_tc_1IOSubgroup;
213         const Iec104C_BO_TA_1_IO_Subgroup* c_bo_ta_1IOSubgroup;
214         const Iec104M_EI_NA_1_IO_Subgroup* m_ei_na_1IOSubgroup;
215         const Iec104C_IC_NA_1_IO_Subgroup* c_ic_na_1IOSubgroup;
216         const Iec104C_CI_NA_1_IO_Subgroup* c_ci_na_1IOSubgroup;
217         const Iec104C_RD_NA_1_IO_Subgroup* c_rd_na_1IOSubgroup;
218         const Iec104C_CS_NA_1_IO_Subgroup* c_cs_na_1IOSubgroup;
219         const Iec104C_TS_NA_1_IO_Subgroup* c_ts_na_1IOSubgroup;
220         const Iec104C_RP_NA_1_IO_Subgroup* c_rp_na_1IOSubgroup;
221         const Iec104C_CD_NA_1_IO_Subgroup* c_cd_na_1IOSubgroup;
222         const Iec104C_TS_TA_1_IO_Subgroup* c_ts_ta_1IOSubgroup;
223         const Iec104P_ME_NA_1_IO_Subgroup* p_me_na_1IOSubgroup;
224         const Iec104P_ME_NB_1_IO_Subgroup* p_me_nb_1IOSubgroup;
225         const Iec104P_ME_NC_1_IO_Subgroup* p_me_nc_1IOSubgroup;
226         const Iec104P_AC_NA_1_IO_Subgroup* p_ac_na_1IOSubgroup;
227         const Iec104F_FR_NA_1_IO_Subgroup* f_fr_na_1IOSubgroup;
228         const Iec104F_SR_NA_1_IO_Subgroup* f_sr_na_1IOSubgroup;
229         const Iec104F_SC_NA_1_IO_Subgroup* f_sc_na_1IOSubgroup;
230         const Iec104F_LS_NA_1_IO_Subgroup* f_ls_na_1IOSubgroup;
231         const Iec104F_AF_NA_1_IO_Subgroup* f_af_na_1IOSubgroup;
232         const Iec104F_SG_NA_1_IO_Subgroup* f_sg_na_1IOSubgroup;
233         const Iec104F_DR_TA_1_IO_Subgroup* f_dr_ta_1IOSubgroup;
234         const Iec104F_SC_NB_1_IO_Subgroup* f_sc_nb_1IOSubgroup;
235     };
236 } __attribute__((packed));
237 
238 enum Iec104MonthEnum
239 {
240     IEC104_MONTH_JAN = 1,
241     IEC104_MONTH_FEB = 2,
242     IEC104_MONTH_MAR = 3,
243     IEC104_MONTH_APR = 4,
244     IEC104_MONTH_MAY = 5,
245     IEC104_MONTH_JUN = 6,
246     IEC104_MONTH_JUL = 7,
247     IEC104_MONTH_AUG = 8,
248     IEC104_MONTH_SEP = 9,
249     IEC104_MONTH_OCT = 10,
250     IEC104_MONTH_NOV = 11,
251     IEC104_MONTH_DEC = 12,
252 };
253 
254 enum Iec104WeekdayEnum
255 {
256     IEC104_DAY_WEEKDAY_UNUSED = 0,
257     IEC104_DAY_MONDAY = 1,
258     IEC104_DAY_TUESDAY = 2,
259     IEC104_DAY_WEDNESDAY = 3,
260     IEC104_DAY_THURSDAY = 4,
261     IEC104_DAY_FRIDAY = 5,
262     IEC104_DAY_SATURDAY = 6,
263     IEC104_DAY_SUNDAY = 7,
264 };
265 
266 enum Iec104CoiUiEnum
267 {
268     IEC104_COI_UI_LOCPOWON = 0,
269     IEC104_COI_UI_LOCMANRST = 1,
270     IEC104_COI_UI_REMRST = 2,
271     IEC104_COI_UI_RES3 = 3,
272     IEC104_COI_UI_RES4 = 4,
273     IEC104_COI_UI_RES5 = 5,
274     IEC104_COI_UI_RES6 = 6,
275     IEC104_COI_UI_RES7 = 7,
276     IEC104_COI_UI_RES8 = 8,
277     IEC104_COI_UI_RES9 = 9,
278     IEC104_COI_UI_RES10 = 10,
279     IEC104_COI_UI_RES11 = 11,
280     IEC104_COI_UI_RES12 = 12,
281     IEC104_COI_UI_RES13 = 13,
282     IEC104_COI_UI_RES14 = 14,
283     IEC104_COI_UI_RES15 = 15,
284     IEC104_COI_UI_RES16 = 16,
285     IEC104_COI_UI_RES17 = 17,
286     IEC104_COI_UI_RES18 = 18,
287     IEC104_COI_UI_RES19 = 19,
288     IEC104_COI_UI_RES20 = 20,
289     IEC104_COI_UI_RES21 = 21,
290     IEC104_COI_UI_RES22 = 22,
291     IEC104_COI_UI_RES23 = 23,
292     IEC104_COI_UI_RES24 = 24,
293     IEC104_COI_UI_RES25 = 25,
294     IEC104_COI_UI_RES26 = 26,
295     IEC104_COI_UI_RES27 = 27,
296     IEC104_COI_UI_RES28 = 28,
297     IEC104_COI_UI_RES29 = 29,
298     IEC104_COI_UI_RES30 = 30,
299     IEC104_COI_UI_RES31 = 31,
300     IEC104_COI_UI_RES32 = 32,
301     IEC104_COI_UI_RES33 = 33,
302     IEC104_COI_UI_RES34 = 34,
303     IEC104_COI_UI_RES35 = 35,
304     IEC104_COI_UI_RES36 = 36,
305     IEC104_COI_UI_RES37 = 37,
306     IEC104_COI_UI_RES38 = 38,
307     IEC104_COI_UI_RES39 = 39,
308     IEC104_COI_UI_RES40 = 40,
309     IEC104_COI_UI_RES41 = 41,
310     IEC104_COI_UI_RES42 = 42,
311     IEC104_COI_UI_RES43 = 43,
312     IEC104_COI_UI_RES44 = 44,
313     IEC104_COI_UI_RES45 = 45,
314     IEC104_COI_UI_RES46 = 46,
315     IEC104_COI_UI_RES47 = 47,
316     IEC104_COI_UI_RES48 = 48,
317     IEC104_COI_UI_RES49 = 49,
318     IEC104_COI_UI_RES50 = 50,
319     IEC104_COI_UI_RES51 = 51,
320     IEC104_COI_UI_RES52 = 52,
321     IEC104_COI_UI_RES53 = 53,
322     IEC104_COI_UI_RES54 = 54,
323     IEC104_COI_UI_RES55 = 55,
324     IEC104_COI_UI_RES56 = 56,
325     IEC104_COI_UI_RES57 = 57,
326     IEC104_COI_UI_RES58 = 58,
327     IEC104_COI_UI_RES59 = 59,
328     IEC104_COI_UI_RES60 = 60,
329     IEC104_COI_UI_RES61 = 61,
330     IEC104_COI_UI_RES62 = 62,
331     IEC104_COI_UI_RES63 = 63,
332     IEC104_COI_UI_RES64 = 64,
333     IEC104_COI_UI_RES65 = 65,
334     IEC104_COI_UI_RES66 = 66,
335     IEC104_COI_UI_RES67 = 67,
336     IEC104_COI_UI_RES68 = 68,
337     IEC104_COI_UI_RES69 = 69,
338     IEC104_COI_UI_RES70 = 70,
339     IEC104_COI_UI_RES71 = 71,
340     IEC104_COI_UI_RES72 = 72,
341     IEC104_COI_UI_RES73 = 73,
342     IEC104_COI_UI_RES74 = 74,
343     IEC104_COI_UI_RES75 = 75,
344     IEC104_COI_UI_RES76 = 76,
345     IEC104_COI_UI_RES77 = 77,
346     IEC104_COI_UI_RES78 = 78,
347     IEC104_COI_UI_RES79 = 79,
348     IEC104_COI_UI_RES80 = 80,
349     IEC104_COI_UI_RES81 = 81,
350     IEC104_COI_UI_RES82 = 82,
351     IEC104_COI_UI_RES83 = 83,
352     IEC104_COI_UI_RES84 = 84,
353     IEC104_COI_UI_RES85 = 85,
354     IEC104_COI_UI_RES86 = 86,
355     IEC104_COI_UI_RES87 = 87,
356     IEC104_COI_UI_RES88 = 88,
357     IEC104_COI_UI_RES89 = 89,
358     IEC104_COI_UI_RES90 = 90,
359     IEC104_COI_UI_RES91 = 91,
360     IEC104_COI_UI_RES92 = 92,
361     IEC104_COI_UI_RES93 = 93,
362     IEC104_COI_UI_RES94 = 94,
363     IEC104_COI_UI_RES95 = 95,
364     IEC104_COI_UI_RES96 = 96,
365     IEC104_COI_UI_RES97 = 97,
366     IEC104_COI_UI_RES98 = 98,
367     IEC104_COI_UI_RES99 = 99,
368     IEC104_COI_UI_RES100 = 100,
369     IEC104_COI_UI_RES101 = 101,
370     IEC104_COI_UI_RES102 = 102,
371     IEC104_COI_UI_RES103 = 103,
372     IEC104_COI_UI_RES104 = 104,
373     IEC104_COI_UI_RES105 = 105,
374     IEC104_COI_UI_RES106 = 106,
375     IEC104_COI_UI_RES107 = 107,
376     IEC104_COI_UI_RES108 = 108,
377     IEC104_COI_UI_RES109 = 109,
378     IEC104_COI_UI_RES110 = 110,
379     IEC104_COI_UI_RES111 = 111,
380     IEC104_COI_UI_RES112 = 112,
381     IEC104_COI_UI_RES113 = 113,
382     IEC104_COI_UI_RES114 = 114,
383     IEC104_COI_UI_RES115 = 115,
384     IEC104_COI_UI_RES116 = 116,
385     IEC104_COI_UI_RES117 = 117,
386     IEC104_COI_UI_RES118 = 118,
387     IEC104_COI_UI_RES119 = 119,
388     IEC104_COI_UI_RES120 = 120,
389     IEC104_COI_UI_RES121 = 121,
390     IEC104_COI_UI_RES122 = 122,
391     IEC104_COI_UI_RES123 = 123,
392     IEC104_COI_UI_RES124 = 124,
393     IEC104_COI_UI_RES125 = 125,
394     IEC104_COI_UI_RES126 = 126,
395     IEC104_COI_UI_RES127 = 127,
396 };
397 
398 enum Iec104QoiEnum
399 {
400     IEC104_QOI_NOTUSED = 0,
401     IEC104_QOI_RES1 = 1,
402     IEC104_QOI_RES2 = 2,
403     IEC104_QOI_RES3 = 3,
404     IEC104_QOI_RES4 = 4,
405     IEC104_QOI_RES5 = 5,
406     IEC104_QOI_RES6 = 6,
407     IEC104_QOI_RES7 = 7,
408     IEC104_QOI_RES8 = 8,
409     IEC104_QOI_RES9 = 9,
410     IEC104_QOI_RES10 = 10,
411     IEC104_QOI_RES11 = 11,
412     IEC104_QOI_RES12 = 12,
413     IEC104_QOI_RES13 = 13,
414     IEC104_QOI_RES14 = 14,
415     IEC104_QOI_RES15 = 15,
416     IEC104_QOI_RES16 = 16,
417     IEC104_QOI_RES17 = 17,
418     IEC104_QOI_RES18 = 18,
419     IEC104_QOI_RES19 = 19,
420     IEC104_QOI_INROSTAT = 20,
421     IEC104_QOI_INRO1 = 21,
422     IEC104_QOI_INRO2 = 22,
423     IEC104_QOI_INRO3 = 23,
424     IEC104_QOI_INRO4 = 24,
425     IEC104_QOI_INRO5 = 25,
426     IEC104_QOI_INRO6 = 26,
427     IEC104_QOI_INRO7 = 27,
428     IEC104_QOI_INRO8 = 28,
429     IEC104_QOI_INRO9 = 29,
430     IEC104_QOI_INRO10 = 30,
431     IEC104_QOI_INRO11 = 31,
432     IEC104_QOI_INRO12 = 32,
433     IEC104_QOI_INRO13 = 33,
434     IEC104_QOI_INRO14 = 34,
435     IEC104_QOI_INRO15 = 35,
436     IEC104_QOI_INRO16 = 36,
437     IEC104_QOI_RES37 = 37,
438     IEC104_QOI_RES38 = 38,
439     IEC104_QOI_RES39 = 39,
440     IEC104_QOI_RES40 = 40,
441     IEC104_QOI_RES41 = 41,
442     IEC104_QOI_RES42 = 42,
443     IEC104_QOI_RES43 = 43,
444     IEC104_QOI_RES44 = 44,
445     IEC104_QOI_RES45 = 45,
446     IEC104_QOI_RES46 = 46,
447     IEC104_QOI_RES47 = 47,
448     IEC104_QOI_RES48 = 48,
449     IEC104_QOI_RES49 = 49,
450     IEC104_QOI_RES50 = 50,
451     IEC104_QOI_RES51 = 51,
452     IEC104_QOI_RES52 = 52,
453     IEC104_QOI_RES53 = 53,
454     IEC104_QOI_RES54 = 54,
455     IEC104_QOI_RES55 = 55,
456     IEC104_QOI_RES56 = 56,
457     IEC104_QOI_RES57 = 57,
458     IEC104_QOI_RES58 = 58,
459     IEC104_QOI_RES59 = 59,
460     IEC104_QOI_RES60 = 60,
461     IEC104_QOI_RES61 = 61,
462     IEC104_QOI_RES62 = 62,
463     IEC104_QOI_RES63 = 63,
464     IEC104_QOI_RES64 = 64,
465     IEC104_QOI_RES65 = 65,
466     IEC104_QOI_RES66 = 66,
467     IEC104_QOI_RES67 = 67,
468     IEC104_QOI_RES68 = 68,
469     IEC104_QOI_RES69 = 69,
470     IEC104_QOI_RES70 = 70,
471     IEC104_QOI_RES71 = 71,
472     IEC104_QOI_RES72 = 72,
473     IEC104_QOI_RES73 = 73,
474     IEC104_QOI_RES74 = 74,
475     IEC104_QOI_RES75 = 75,
476     IEC104_QOI_RES76 = 76,
477     IEC104_QOI_RES77 = 77,
478     IEC104_QOI_RES78 = 78,
479     IEC104_QOI_RES79 = 79,
480     IEC104_QOI_RES80 = 80,
481     IEC104_QOI_RES81 = 81,
482     IEC104_QOI_RES82 = 82,
483     IEC104_QOI_RES83 = 83,
484     IEC104_QOI_RES84 = 84,
485     IEC104_QOI_RES85 = 85,
486     IEC104_QOI_RES86 = 86,
487     IEC104_QOI_RES87 = 87,
488     IEC104_QOI_RES88 = 88,
489     IEC104_QOI_RES89 = 89,
490     IEC104_QOI_RES90 = 90,
491     IEC104_QOI_RES91 = 91,
492     IEC104_QOI_RES92 = 92,
493     IEC104_QOI_RES93 = 93,
494     IEC104_QOI_RES94 = 94,
495     IEC104_QOI_RES95 = 95,
496     IEC104_QOI_RES96 = 96,
497     IEC104_QOI_RES97 = 97,
498     IEC104_QOI_RES98 = 98,
499     IEC104_QOI_RES99 = 99,
500     IEC104_QOI_RES100 = 100,
501     IEC104_QOI_RES101 = 101,
502     IEC104_QOI_RES102 = 102,
503     IEC104_QOI_RES103 = 103,
504     IEC104_QOI_RES104 = 104,
505     IEC104_QOI_RES105 = 105,
506     IEC104_QOI_RES106 = 106,
507     IEC104_QOI_RES107 = 107,
508     IEC104_QOI_RES108 = 108,
509     IEC104_QOI_RES109 = 109,
510     IEC104_QOI_RES110 = 110,
511     IEC104_QOI_RES111 = 111,
512     IEC104_QOI_RES112 = 112,
513     IEC104_QOI_RES113 = 113,
514     IEC104_QOI_RES114 = 114,
515     IEC104_QOI_RES115 = 115,
516     IEC104_QOI_RES116 = 116,
517     IEC104_QOI_RES117 = 117,
518     IEC104_QOI_RES118 = 118,
519     IEC104_QOI_RES119 = 119,
520     IEC104_QOI_RES120 = 120,
521     IEC104_QOI_RES121 = 121,
522     IEC104_QOI_RES122 = 122,
523     IEC104_QOI_RES123 = 123,
524     IEC104_QOI_RES124 = 124,
525     IEC104_QOI_RES125 = 125,
526     IEC104_QOI_RES126 = 126,
527     IEC104_QOI_RES127 = 127,
528     IEC104_QOI_RES128 = 128,
529     IEC104_QOI_RES129 = 129,
530     IEC104_QOI_RES130 = 130,
531     IEC104_QOI_RES131 = 131,
532     IEC104_QOI_RES132 = 132,
533     IEC104_QOI_RES133 = 133,
534     IEC104_QOI_RES134 = 134,
535     IEC104_QOI_RES135 = 135,
536     IEC104_QOI_RES136 = 136,
537     IEC104_QOI_RES137 = 137,
538     IEC104_QOI_RES138 = 138,
539     IEC104_QOI_RES139 = 139,
540     IEC104_QOI_RES140 = 140,
541     IEC104_QOI_RES141 = 141,
542     IEC104_QOI_RES142 = 142,
543     IEC104_QOI_RES143 = 143,
544     IEC104_QOI_RES144 = 144,
545     IEC104_QOI_RES145 = 145,
546     IEC104_QOI_RES146 = 146,
547     IEC104_QOI_RES147 = 147,
548     IEC104_QOI_RES148 = 148,
549     IEC104_QOI_RES149 = 149,
550     IEC104_QOI_RES150 = 150,
551     IEC104_QOI_RES151 = 151,
552     IEC104_QOI_RES152 = 152,
553     IEC104_QOI_RES153 = 153,
554     IEC104_QOI_RES154 = 154,
555     IEC104_QOI_RES155 = 155,
556     IEC104_QOI_RES156 = 156,
557     IEC104_QOI_RES157 = 157,
558     IEC104_QOI_RES158 = 158,
559     IEC104_QOI_RES159 = 159,
560     IEC104_QOI_RES160 = 160,
561     IEC104_QOI_RES161 = 161,
562     IEC104_QOI_RES162 = 162,
563     IEC104_QOI_RES163 = 163,
564     IEC104_QOI_RES164 = 164,
565     IEC104_QOI_RES165 = 165,
566     IEC104_QOI_RES166 = 166,
567     IEC104_QOI_RES167 = 167,
568     IEC104_QOI_RES168 = 168,
569     IEC104_QOI_RES169 = 169,
570     IEC104_QOI_RES170 = 170,
571     IEC104_QOI_RES171 = 171,
572     IEC104_QOI_RES172 = 172,
573     IEC104_QOI_RES173 = 173,
574     IEC104_QOI_RES174 = 174,
575     IEC104_QOI_RES175 = 175,
576     IEC104_QOI_RES176 = 176,
577     IEC104_QOI_RES177 = 177,
578     IEC104_QOI_RES178 = 178,
579     IEC104_QOI_RES179 = 179,
580     IEC104_QOI_RES180 = 180,
581     IEC104_QOI_RES181 = 181,
582     IEC104_QOI_RES182 = 182,
583     IEC104_QOI_RES183 = 183,
584     IEC104_QOI_RES184 = 184,
585     IEC104_QOI_RES185 = 185,
586     IEC104_QOI_RES186 = 186,
587     IEC104_QOI_RES187 = 187,
588     IEC104_QOI_RES188 = 188,
589     IEC104_QOI_RES189 = 189,
590     IEC104_QOI_RES190 = 190,
591     IEC104_QOI_RES191 = 191,
592     IEC104_QOI_RES192 = 192,
593     IEC104_QOI_RES193 = 193,
594     IEC104_QOI_RES194 = 194,
595     IEC104_QOI_RES195 = 195,
596     IEC104_QOI_RES196 = 196,
597     IEC104_QOI_RES197 = 197,
598     IEC104_QOI_RES198 = 198,
599     IEC104_QOI_RES199 = 199,
600     IEC104_QOI_RES200 = 200,
601     IEC104_QOI_RES201 = 201,
602     IEC104_QOI_RES202 = 202,
603     IEC104_QOI_RES203 = 203,
604     IEC104_QOI_RES204 = 204,
605     IEC104_QOI_RES205 = 205,
606     IEC104_QOI_RES206 = 206,
607     IEC104_QOI_RES207 = 207,
608     IEC104_QOI_RES208 = 208,
609     IEC104_QOI_RES209 = 209,
610     IEC104_QOI_RES210 = 210,
611     IEC104_QOI_RES211 = 211,
612     IEC104_QOI_RES212 = 212,
613     IEC104_QOI_RES213 = 213,
614     IEC104_QOI_RES214 = 214,
615     IEC104_QOI_RES215 = 215,
616     IEC104_QOI_RES216 = 216,
617     IEC104_QOI_RES217 = 217,
618     IEC104_QOI_RES218 = 218,
619     IEC104_QOI_RES219 = 219,
620     IEC104_QOI_RES220 = 220,
621     IEC104_QOI_RES221 = 221,
622     IEC104_QOI_RES222 = 222,
623     IEC104_QOI_RES223 = 223,
624     IEC104_QOI_RES224 = 224,
625     IEC104_QOI_RES225 = 225,
626     IEC104_QOI_RES226 = 226,
627     IEC104_QOI_RES227 = 227,
628     IEC104_QOI_RES228 = 228,
629     IEC104_QOI_RES229 = 229,
630     IEC104_QOI_RES230 = 230,
631     IEC104_QOI_RES231 = 231,
632     IEC104_QOI_RES232 = 232,
633     IEC104_QOI_RES233 = 233,
634     IEC104_QOI_RES234 = 234,
635     IEC104_QOI_RES235 = 235,
636     IEC104_QOI_RES236 = 236,
637     IEC104_QOI_RES237 = 237,
638     IEC104_QOI_RES238 = 238,
639     IEC104_QOI_RES239 = 239,
640     IEC104_QOI_RES240 = 240,
641     IEC104_QOI_RES241 = 241,
642     IEC104_QOI_RES242 = 242,
643     IEC104_QOI_RES243 = 243,
644     IEC104_QOI_RES244 = 244,
645     IEC104_QOI_RES245 = 245,
646     IEC104_QOI_RES246 = 246,
647     IEC104_QOI_RES247 = 247,
648     IEC104_QOI_RES248 = 248,
649     IEC104_QOI_RES249 = 249,
650     IEC104_QOI_RES250 = 250,
651     IEC104_QOI_RES251 = 251,
652     IEC104_QOI_RES252 = 252,
653     IEC104_QOI_RES253 = 253,
654     IEC104_QOI_RES254 = 254,
655     IEC104_QOI_RES255 = 255,
656 };
657 
658 enum Iec104QccRqtEnum
659 {
660     IEC104_QCC_RQT_NOTUSED = 0,
661     IEC104_QCC_RQT_GROUP1 = 1,
662     IEC104_QCC_RQT_GROUP2 = 2,
663     IEC104_QCC_RQT_GROUP3 = 3,
664     IEC104_QCC_RQT_GROUP4 = 4,
665     IEC104_QCC_RQT_GENCTR = 5,
666     IEC104_QCC_RQT_RES6 = 6,
667     IEC104_QCC_RQT_RES7 = 7,
668     IEC104_QCC_RQT_RES8 = 8,
669     IEC104_QCC_RQT_RES9 = 9,
670     IEC104_QCC_RQT_RES10 = 10,
671     IEC104_QCC_RQT_RES11 = 11,
672     IEC104_QCC_RQT_RES12 = 12,
673     IEC104_QCC_RQT_RES13 = 13,
674     IEC104_QCC_RQT_RES14 = 14,
675     IEC104_QCC_RQT_RES15 = 15,
676     IEC104_QCC_RQT_RES16 = 16,
677     IEC104_QCC_RQT_RES17 = 17,
678     IEC104_QCC_RQT_RES18 = 18,
679     IEC104_QCC_RQT_RES19 = 19,
680     IEC104_QCC_RQT_RES20 = 20,
681     IEC104_QCC_RQT_RES21 = 21,
682     IEC104_QCC_RQT_RES22 = 22,
683     IEC104_QCC_RQT_RES23 = 23,
684     IEC104_QCC_RQT_RES24 = 24,
685     IEC104_QCC_RQT_RES25 = 25,
686     IEC104_QCC_RQT_RES26 = 26,
687     IEC104_QCC_RQT_RES27 = 27,
688     IEC104_QCC_RQT_RES28 = 28,
689     IEC104_QCC_RQT_RES29 = 29,
690     IEC104_QCC_RQT_RES30 = 30,
691     IEC104_QCC_RQT_RES31 = 31,
692     IEC104_QCC_RQT_RES32 = 32,
693     IEC104_QCC_RQT_RES33 = 33,
694     IEC104_QCC_RQT_RES34 = 34,
695     IEC104_QCC_RQT_RES35 = 35,
696     IEC104_QCC_RQT_RES36 = 36,
697     IEC104_QCC_RQT_RES37 = 37,
698     IEC104_QCC_RQT_RES38 = 38,
699     IEC104_QCC_RQT_RES39 = 39,
700     IEC104_QCC_RQT_RES40 = 40,
701     IEC104_QCC_RQT_RES41 = 41,
702     IEC104_QCC_RQT_RES42 = 42,
703     IEC104_QCC_RQT_RES43 = 43,
704     IEC104_QCC_RQT_RES44 = 44,
705     IEC104_QCC_RQT_RES45 = 45,
706     IEC104_QCC_RQT_RES46 = 46,
707     IEC104_QCC_RQT_RES47 = 47,
708     IEC104_QCC_RQT_RES48 = 48,
709     IEC104_QCC_RQT_RES49 = 49,
710     IEC104_QCC_RQT_RES50 = 50,
711     IEC104_QCC_RQT_RES51 = 51,
712     IEC104_QCC_RQT_RES52 = 52,
713     IEC104_QCC_RQT_RES53 = 53,
714     IEC104_QCC_RQT_RES54 = 54,
715     IEC104_QCC_RQT_RES55 = 55,
716     IEC104_QCC_RQT_RES56 = 56,
717     IEC104_QCC_RQT_RES57 = 57,
718     IEC104_QCC_RQT_RES58 = 58,
719     IEC104_QCC_RQT_RES59 = 59,
720     IEC104_QCC_RQT_RES60 = 60,
721     IEC104_QCC_RQT_RES61 = 61,
722     IEC104_QCC_RQT_RES62 = 62,
723     IEC104_QCC_RQT_RES63 = 63,
724 };
725 
726 enum Iec104QccFrzEnum
727 {
728     IEC104_QCC_FRZ_READ = 0,
729     IEC104_QCC_FRZ_CTRFRZWITHOUTRST = 1,
730     IEC104_QCC_FRZ_CTRFRZWITHRST = 2,
731     IEC104_QCC_FRZ_CTRRST = 3,
732 };
733 
734 enum Iec104QpmKpaEnum
735 {
736     IEC104_QPM_KPA_NOTUSED = 0,
737     IEC104_QPM_KPA_THRESHVAL = 1,
738     IEC104_QPM_KPA_SMOOTHFACTOR = 2,
739     IEC104_QPM_KPA_LOWTXLMT = 3,
740     IEC104_QPM_KPA_HIGHTXLMT = 4,
741     IEC104_QPM_KPA_RES5 = 5,
742     IEC104_QPM_KPA_RES6 = 6,
743     IEC104_QPM_KPA_RES7 = 7,
744     IEC104_QPM_KPA_RES8 = 8,
745     IEC104_QPM_KPA_RES9 = 9,
746     IEC104_QPM_KPA_RES10 = 10,
747     IEC104_QPM_KPA_RES11 = 11,
748     IEC104_QPM_KPA_RES12 = 12,
749     IEC104_QPM_KPA_RES13 = 13,
750     IEC104_QPM_KPA_RES14 = 14,
751     IEC104_QPM_KPA_RES15 = 15,
752     IEC104_QPM_KPA_RES16 = 16,
753     IEC104_QPM_KPA_RES17 = 17,
754     IEC104_QPM_KPA_RES18 = 18,
755     IEC104_QPM_KPA_RES19 = 19,
756     IEC104_QPM_KPA_RES20 = 20,
757     IEC104_QPM_KPA_RES21 = 21,
758     IEC104_QPM_KPA_RES22 = 22,
759     IEC104_QPM_KPA_RES23 = 23,
760     IEC104_QPM_KPA_RES24 = 24,
761     IEC104_QPM_KPA_RES25 = 25,
762     IEC104_QPM_KPA_RES26 = 26,
763     IEC104_QPM_KPA_RES27 = 27,
764     IEC104_QPM_KPA_RES28 = 28,
765     IEC104_QPM_KPA_RES29 = 29,
766     IEC104_QPM_KPA_RES30 = 30,
767     IEC104_QPM_KPA_RES31 = 31,
768     IEC104_QPM_KPA_RES32 = 32,
769     IEC104_QPM_KPA_RES33 = 33,
770     IEC104_QPM_KPA_RES34 = 34,
771     IEC104_QPM_KPA_RES35 = 35,
772     IEC104_QPM_KPA_RES36 = 36,
773     IEC104_QPM_KPA_RES37 = 37,
774     IEC104_QPM_KPA_RES38 = 38,
775     IEC104_QPM_KPA_RES39 = 39,
776     IEC104_QPM_KPA_RES40 = 40,
777     IEC104_QPM_KPA_RES41 = 41,
778     IEC104_QPM_KPA_RES42 = 42,
779     IEC104_QPM_KPA_RES43 = 43,
780     IEC104_QPM_KPA_RES44 = 44,
781     IEC104_QPM_KPA_RES45 = 45,
782     IEC104_QPM_KPA_RES46 = 46,
783     IEC104_QPM_KPA_RES47 = 47,
784     IEC104_QPM_KPA_RES48 = 48,
785     IEC104_QPM_KPA_RES49 = 49,
786     IEC104_QPM_KPA_RES50 = 50,
787     IEC104_QPM_KPA_RES51 = 51,
788     IEC104_QPM_KPA_RES52 = 52,
789     IEC104_QPM_KPA_RES53 = 53,
790     IEC104_QPM_KPA_RES54 = 54,
791     IEC104_QPM_KPA_RES55 = 55,
792     IEC104_QPM_KPA_RES56 = 56,
793     IEC104_QPM_KPA_RES57 = 57,
794     IEC104_QPM_KPA_RES58 = 58,
795     IEC104_QPM_KPA_RES59 = 59,
796     IEC104_QPM_KPA_RES60 = 60,
797     IEC104_QPM_KPA_RES61 = 61,
798     IEC104_QPM_KPA_RES62 = 62,
799     IEC104_QPM_KPA_RES63 = 63,
800 };
801 
802 enum Iec104QpaEnum
803 {
804     IEC104_QPA_NOTUSED = 0,
805     IEC104_QPA_ACTDEACTPREVPARAM = 1,
806     IEC104_QPA_ACTDEACTPARAM = 2,
807     IEC104_QPA_ACTDEACTCYCTX = 3,
808     IEC104_QPA_RES4 = 4,
809     IEC104_QPA_RES5 = 5,
810     IEC104_QPA_RES6 = 6,
811     IEC104_QPA_RES7 = 7,
812     IEC104_QPA_RES8 = 8,
813     IEC104_QPA_RES9 = 9,
814     IEC104_QPA_RES10 = 10,
815     IEC104_QPA_RES11 = 11,
816     IEC104_QPA_RES12 = 12,
817     IEC104_QPA_RES13 = 13,
818     IEC104_QPA_RES14 = 14,
819     IEC104_QPA_RES15 = 15,
820     IEC104_QPA_RES16 = 16,
821     IEC104_QPA_RES17 = 17,
822     IEC104_QPA_RES18 = 18,
823     IEC104_QPA_RES19 = 19,
824     IEC104_QPA_RES20 = 20,
825     IEC104_QPA_RES21 = 21,
826     IEC104_QPA_RES22 = 22,
827     IEC104_QPA_RES23 = 23,
828     IEC104_QPA_RES24 = 24,
829     IEC104_QPA_RES25 = 25,
830     IEC104_QPA_RES26 = 26,
831     IEC104_QPA_RES27 = 27,
832     IEC104_QPA_RES28 = 28,
833     IEC104_QPA_RES29 = 29,
834     IEC104_QPA_RES30 = 30,
835     IEC104_QPA_RES31 = 31,
836     IEC104_QPA_RES32 = 32,
837     IEC104_QPA_RES33 = 33,
838     IEC104_QPA_RES34 = 34,
839     IEC104_QPA_RES35 = 35,
840     IEC104_QPA_RES36 = 36,
841     IEC104_QPA_RES37 = 37,
842     IEC104_QPA_RES38 = 38,
843     IEC104_QPA_RES39 = 39,
844     IEC104_QPA_RES40 = 40,
845     IEC104_QPA_RES41 = 41,
846     IEC104_QPA_RES42 = 42,
847     IEC104_QPA_RES43 = 43,
848     IEC104_QPA_RES44 = 44,
849     IEC104_QPA_RES45 = 45,
850     IEC104_QPA_RES46 = 46,
851     IEC104_QPA_RES47 = 47,
852     IEC104_QPA_RES48 = 48,
853     IEC104_QPA_RES49 = 49,
854     IEC104_QPA_RES50 = 50,
855     IEC104_QPA_RES51 = 51,
856     IEC104_QPA_RES52 = 52,
857     IEC104_QPA_RES53 = 53,
858     IEC104_QPA_RES54 = 54,
859     IEC104_QPA_RES55 = 55,
860     IEC104_QPA_RES56 = 56,
861     IEC104_QPA_RES57 = 57,
862     IEC104_QPA_RES58 = 58,
863     IEC104_QPA_RES59 = 59,
864     IEC104_QPA_RES60 = 60,
865     IEC104_QPA_RES61 = 61,
866     IEC104_QPA_RES62 = 62,
867     IEC104_QPA_RES63 = 63,
868     IEC104_QPA_RES64 = 64,
869     IEC104_QPA_RES65 = 65,
870     IEC104_QPA_RES66 = 66,
871     IEC104_QPA_RES67 = 67,
872     IEC104_QPA_RES68 = 68,
873     IEC104_QPA_RES69 = 69,
874     IEC104_QPA_RES70 = 70,
875     IEC104_QPA_RES71 = 71,
876     IEC104_QPA_RES72 = 72,
877     IEC104_QPA_RES73 = 73,
878     IEC104_QPA_RES74 = 74,
879     IEC104_QPA_RES75 = 75,
880     IEC104_QPA_RES76 = 76,
881     IEC104_QPA_RES77 = 77,
882     IEC104_QPA_RES78 = 78,
883     IEC104_QPA_RES79 = 79,
884     IEC104_QPA_RES80 = 80,
885     IEC104_QPA_RES81 = 81,
886     IEC104_QPA_RES82 = 82,
887     IEC104_QPA_RES83 = 83,
888     IEC104_QPA_RES84 = 84,
889     IEC104_QPA_RES85 = 85,
890     IEC104_QPA_RES86 = 86,
891     IEC104_QPA_RES87 = 87,
892     IEC104_QPA_RES88 = 88,
893     IEC104_QPA_RES89 = 89,
894     IEC104_QPA_RES90 = 90,
895     IEC104_QPA_RES91 = 91,
896     IEC104_QPA_RES92 = 92,
897     IEC104_QPA_RES93 = 93,
898     IEC104_QPA_RES94 = 94,
899     IEC104_QPA_RES95 = 95,
900     IEC104_QPA_RES96 = 96,
901     IEC104_QPA_RES97 = 97,
902     IEC104_QPA_RES98 = 98,
903     IEC104_QPA_RES99 = 99,
904     IEC104_QPA_RES100 = 100,
905     IEC104_QPA_RES101 = 101,
906     IEC104_QPA_RES102 = 102,
907     IEC104_QPA_RES103 = 103,
908     IEC104_QPA_RES104 = 104,
909     IEC104_QPA_RES105 = 105,
910     IEC104_QPA_RES106 = 106,
911     IEC104_QPA_RES107 = 107,
912     IEC104_QPA_RES108 = 108,
913     IEC104_QPA_RES109 = 109,
914     IEC104_QPA_RES110 = 110,
915     IEC104_QPA_RES111 = 111,
916     IEC104_QPA_RES112 = 112,
917     IEC104_QPA_RES113 = 113,
918     IEC104_QPA_RES114 = 114,
919     IEC104_QPA_RES115 = 115,
920     IEC104_QPA_RES116 = 116,
921     IEC104_QPA_RES117 = 117,
922     IEC104_QPA_RES118 = 118,
923     IEC104_QPA_RES119 = 119,
924     IEC104_QPA_RES120 = 120,
925     IEC104_QPA_RES121 = 121,
926     IEC104_QPA_RES122 = 122,
927     IEC104_QPA_RES123 = 123,
928     IEC104_QPA_RES124 = 124,
929     IEC104_QPA_RES125 = 125,
930     IEC104_QPA_RES126 = 126,
931     IEC104_QPA_RES127 = 127,
932     IEC104_QPA_RES128 = 128,
933     IEC104_QPA_RES129 = 129,
934     IEC104_QPA_RES130 = 130,
935     IEC104_QPA_RES131 = 131,
936     IEC104_QPA_RES132 = 132,
937     IEC104_QPA_RES133 = 133,
938     IEC104_QPA_RES134 = 134,
939     IEC104_QPA_RES135 = 135,
940     IEC104_QPA_RES136 = 136,
941     IEC104_QPA_RES137 = 137,
942     IEC104_QPA_RES138 = 138,
943     IEC104_QPA_RES139 = 139,
944     IEC104_QPA_RES140 = 140,
945     IEC104_QPA_RES141 = 141,
946     IEC104_QPA_RES142 = 142,
947     IEC104_QPA_RES143 = 143,
948     IEC104_QPA_RES144 = 144,
949     IEC104_QPA_RES145 = 145,
950     IEC104_QPA_RES146 = 146,
951     IEC104_QPA_RES147 = 147,
952     IEC104_QPA_RES148 = 148,
953     IEC104_QPA_RES149 = 149,
954     IEC104_QPA_RES150 = 150,
955     IEC104_QPA_RES151 = 151,
956     IEC104_QPA_RES152 = 152,
957     IEC104_QPA_RES153 = 153,
958     IEC104_QPA_RES154 = 154,
959     IEC104_QPA_RES155 = 155,
960     IEC104_QPA_RES156 = 156,
961     IEC104_QPA_RES157 = 157,
962     IEC104_QPA_RES158 = 158,
963     IEC104_QPA_RES159 = 159,
964     IEC104_QPA_RES160 = 160,
965     IEC104_QPA_RES161 = 161,
966     IEC104_QPA_RES162 = 162,
967     IEC104_QPA_RES163 = 163,
968     IEC104_QPA_RES164 = 164,
969     IEC104_QPA_RES165 = 165,
970     IEC104_QPA_RES166 = 166,
971     IEC104_QPA_RES167 = 167,
972     IEC104_QPA_RES168 = 168,
973     IEC104_QPA_RES169 = 169,
974     IEC104_QPA_RES170 = 170,
975     IEC104_QPA_RES171 = 171,
976     IEC104_QPA_RES172 = 172,
977     IEC104_QPA_RES173 = 173,
978     IEC104_QPA_RES174 = 174,
979     IEC104_QPA_RES175 = 175,
980     IEC104_QPA_RES176 = 176,
981     IEC104_QPA_RES177 = 177,
982     IEC104_QPA_RES178 = 178,
983     IEC104_QPA_RES179 = 179,
984     IEC104_QPA_RES180 = 180,
985     IEC104_QPA_RES181 = 181,
986     IEC104_QPA_RES182 = 182,
987     IEC104_QPA_RES183 = 183,
988     IEC104_QPA_RES184 = 184,
989     IEC104_QPA_RES185 = 185,
990     IEC104_QPA_RES186 = 186,
991     IEC104_QPA_RES187 = 187,
992     IEC104_QPA_RES188 = 188,
993     IEC104_QPA_RES189 = 189,
994     IEC104_QPA_RES190 = 190,
995     IEC104_QPA_RES191 = 191,
996     IEC104_QPA_RES192 = 192,
997     IEC104_QPA_RES193 = 193,
998     IEC104_QPA_RES194 = 194,
999     IEC104_QPA_RES195 = 195,
1000     IEC104_QPA_RES196 = 196,
1001     IEC104_QPA_RES197 = 197,
1002     IEC104_QPA_RES198 = 198,
1003     IEC104_QPA_RES199 = 199,
1004     IEC104_QPA_RES200 = 200,
1005     IEC104_QPA_RES201 = 201,
1006     IEC104_QPA_RES202 = 202,
1007     IEC104_QPA_RES203 = 203,
1008     IEC104_QPA_RES204 = 204,
1009     IEC104_QPA_RES205 = 205,
1010     IEC104_QPA_RES206 = 206,
1011     IEC104_QPA_RES207 = 207,
1012     IEC104_QPA_RES208 = 208,
1013     IEC104_QPA_RES209 = 209,
1014     IEC104_QPA_RES210 = 210,
1015     IEC104_QPA_RES211 = 211,
1016     IEC104_QPA_RES212 = 212,
1017     IEC104_QPA_RES213 = 213,
1018     IEC104_QPA_RES214 = 214,
1019     IEC104_QPA_RES215 = 215,
1020     IEC104_QPA_RES216 = 216,
1021     IEC104_QPA_RES217 = 217,
1022     IEC104_QPA_RES218 = 218,
1023     IEC104_QPA_RES219 = 219,
1024     IEC104_QPA_RES220 = 220,
1025     IEC104_QPA_RES221 = 221,
1026     IEC104_QPA_RES222 = 222,
1027     IEC104_QPA_RES223 = 223,
1028     IEC104_QPA_RES224 = 224,
1029     IEC104_QPA_RES225 = 225,
1030     IEC104_QPA_RES226 = 226,
1031     IEC104_QPA_RES227 = 227,
1032     IEC104_QPA_RES228 = 228,
1033     IEC104_QPA_RES229 = 229,
1034     IEC104_QPA_RES230 = 230,
1035     IEC104_QPA_RES231 = 231,
1036     IEC104_QPA_RES232 = 232,
1037     IEC104_QPA_RES233 = 233,
1038     IEC104_QPA_RES234 = 234,
1039     IEC104_QPA_RES235 = 235,
1040     IEC104_QPA_RES236 = 236,
1041     IEC104_QPA_RES237 = 237,
1042     IEC104_QPA_RES238 = 238,
1043     IEC104_QPA_RES239 = 239,
1044     IEC104_QPA_RES240 = 240,
1045     IEC104_QPA_RES241 = 241,
1046     IEC104_QPA_RES242 = 242,
1047     IEC104_QPA_RES243 = 243,
1048     IEC104_QPA_RES244 = 244,
1049     IEC104_QPA_RES245 = 245,
1050     IEC104_QPA_RES246 = 246,
1051     IEC104_QPA_RES247 = 247,
1052     IEC104_QPA_RES248 = 248,
1053     IEC104_QPA_RES249 = 249,
1054     IEC104_QPA_RES250 = 250,
1055     IEC104_QPA_RES251 = 251,
1056     IEC104_QPA_RES252 = 252,
1057     IEC104_QPA_RES253 = 253,
1058     IEC104_QPA_RES254 = 254,
1059     IEC104_QPA_RES255 = 255,
1060 };
1061 
1062 enum Iec104QocQuEnum
1063 {
1064     IEC104_QOC_QU_NOADDDEF = 0,
1065     IEC104_QOC_QU_SHORTPULSE = 1,
1066     IEC104_QOC_QU_LONGPULSE = 2,
1067     IEC104_QOC_QU_PERSIST = 3,
1068     IEC104_QOC_QU_RES4 = 4,
1069     IEC104_QOC_QU_RES5 = 5,
1070     IEC104_QOC_QU_RES6 = 6,
1071     IEC104_QOC_QU_RES7 = 7,
1072     IEC104_QOC_QU_RES8 = 8,
1073     IEC104_QOC_QU_RES9 = 9,
1074     IEC104_QOC_QU_RES10 = 10,
1075     IEC104_QOC_QU_RES11 = 11,
1076     IEC104_QOC_QU_RES12 = 12,
1077     IEC104_QOC_QU_RES13 = 13,
1078     IEC104_QOC_QU_RES14 = 14,
1079     IEC104_QOC_QU_RES15 = 15,
1080     IEC104_QOC_QU_RES16 = 16,
1081     IEC104_QOC_QU_RES17 = 17,
1082     IEC104_QOC_QU_RES18 = 18,
1083     IEC104_QOC_QU_RES19 = 19,
1084     IEC104_QOC_QU_RES20 = 20,
1085     IEC104_QOC_QU_RES21 = 21,
1086     IEC104_QOC_QU_RES22 = 22,
1087     IEC104_QOC_QU_RES23 = 23,
1088     IEC104_QOC_QU_RES24 = 24,
1089     IEC104_QOC_QU_RES25 = 25,
1090     IEC104_QOC_QU_RES26 = 26,
1091     IEC104_QOC_QU_RES27 = 27,
1092     IEC104_QOC_QU_RES28 = 28,
1093     IEC104_QOC_QU_RES29 = 29,
1094     IEC104_QOC_QU_RES30 = 30,
1095     IEC104_QOC_QU_RES31 = 31,
1096 };
1097 
1098 enum Iec104QrpEnum
1099 {
1100     IEC104_QRP_NOTUSED = 0,
1101     IEC104_QRP_GENRST = 1,
1102     IEC104_QRP_RSTTIME = 2,
1103     IEC104_QRP_RES3 = 3,
1104     IEC104_QRP_RES4 = 4,
1105     IEC104_QRP_RES5 = 5,
1106     IEC104_QRP_RES6 = 6,
1107     IEC104_QRP_RES7 = 7,
1108     IEC104_QRP_RES8 = 8,
1109     IEC104_QRP_RES9 = 9,
1110     IEC104_QRP_RES10 = 10,
1111     IEC104_QRP_RES11 = 11,
1112     IEC104_QRP_RES12 = 12,
1113     IEC104_QRP_RES13 = 13,
1114     IEC104_QRP_RES14 = 14,
1115     IEC104_QRP_RES15 = 15,
1116     IEC104_QRP_RES16 = 16,
1117     IEC104_QRP_RES17 = 17,
1118     IEC104_QRP_RES18 = 18,
1119     IEC104_QRP_RES19 = 19,
1120     IEC104_QRP_RES20 = 20,
1121     IEC104_QRP_RES21 = 21,
1122     IEC104_QRP_RES22 = 22,
1123     IEC104_QRP_RES23 = 23,
1124     IEC104_QRP_RES24 = 24,
1125     IEC104_QRP_RES25 = 25,
1126     IEC104_QRP_RES26 = 26,
1127     IEC104_QRP_RES27 = 27,
1128     IEC104_QRP_RES28 = 28,
1129     IEC104_QRP_RES29 = 29,
1130     IEC104_QRP_RES30 = 30,
1131     IEC104_QRP_RES31 = 31,
1132     IEC104_QRP_RES32 = 32,
1133     IEC104_QRP_RES33 = 33,
1134     IEC104_QRP_RES34 = 34,
1135     IEC104_QRP_RES35 = 35,
1136     IEC104_QRP_RES36 = 36,
1137     IEC104_QRP_RES37 = 37,
1138     IEC104_QRP_RES38 = 38,
1139     IEC104_QRP_RES39 = 39,
1140     IEC104_QRP_RES40 = 40,
1141     IEC104_QRP_RES41 = 41,
1142     IEC104_QRP_RES42 = 42,
1143     IEC104_QRP_RES43 = 43,
1144     IEC104_QRP_RES44 = 44,
1145     IEC104_QRP_RES45 = 45,
1146     IEC104_QRP_RES46 = 46,
1147     IEC104_QRP_RES47 = 47,
1148     IEC104_QRP_RES48 = 48,
1149     IEC104_QRP_RES49 = 49,
1150     IEC104_QRP_RES50 = 50,
1151     IEC104_QRP_RES51 = 51,
1152     IEC104_QRP_RES52 = 52,
1153     IEC104_QRP_RES53 = 53,
1154     IEC104_QRP_RES54 = 54,
1155     IEC104_QRP_RES55 = 55,
1156     IEC104_QRP_RES56 = 56,
1157     IEC104_QRP_RES57 = 57,
1158     IEC104_QRP_RES58 = 58,
1159     IEC104_QRP_RES59 = 59,
1160     IEC104_QRP_RES60 = 60,
1161     IEC104_QRP_RES61 = 61,
1162     IEC104_QRP_RES62 = 62,
1163     IEC104_QRP_RES63 = 63,
1164     IEC104_QRP_RES64 = 64,
1165     IEC104_QRP_RES65 = 65,
1166     IEC104_QRP_RES66 = 66,
1167     IEC104_QRP_RES67 = 67,
1168     IEC104_QRP_RES68 = 68,
1169     IEC104_QRP_RES69 = 69,
1170     IEC104_QRP_RES70 = 70,
1171     IEC104_QRP_RES71 = 71,
1172     IEC104_QRP_RES72 = 72,
1173     IEC104_QRP_RES73 = 73,
1174     IEC104_QRP_RES74 = 74,
1175     IEC104_QRP_RES75 = 75,
1176     IEC104_QRP_RES76 = 76,
1177     IEC104_QRP_RES77 = 77,
1178     IEC104_QRP_RES78 = 78,
1179     IEC104_QRP_RES79 = 79,
1180     IEC104_QRP_RES80 = 80,
1181     IEC104_QRP_RES81 = 81,
1182     IEC104_QRP_RES82 = 82,
1183     IEC104_QRP_RES83 = 83,
1184     IEC104_QRP_RES84 = 84,
1185     IEC104_QRP_RES85 = 85,
1186     IEC104_QRP_RES86 = 86,
1187     IEC104_QRP_RES87 = 87,
1188     IEC104_QRP_RES88 = 88,
1189     IEC104_QRP_RES89 = 89,
1190     IEC104_QRP_RES90 = 90,
1191     IEC104_QRP_RES91 = 91,
1192     IEC104_QRP_RES92 = 92,
1193     IEC104_QRP_RES93 = 93,
1194     IEC104_QRP_RES94 = 94,
1195     IEC104_QRP_RES95 = 95,
1196     IEC104_QRP_RES96 = 96,
1197     IEC104_QRP_RES97 = 97,
1198     IEC104_QRP_RES98 = 98,
1199     IEC104_QRP_RES99 = 99,
1200     IEC104_QRP_RES100 = 100,
1201     IEC104_QRP_RES101 = 101,
1202     IEC104_QRP_RES102 = 102,
1203     IEC104_QRP_RES103 = 103,
1204     IEC104_QRP_RES104 = 104,
1205     IEC104_QRP_RES105 = 105,
1206     IEC104_QRP_RES106 = 106,
1207     IEC104_QRP_RES107 = 107,
1208     IEC104_QRP_RES108 = 108,
1209     IEC104_QRP_RES109 = 109,
1210     IEC104_QRP_RES110 = 110,
1211     IEC104_QRP_RES111 = 111,
1212     IEC104_QRP_RES112 = 112,
1213     IEC104_QRP_RES113 = 113,
1214     IEC104_QRP_RES114 = 114,
1215     IEC104_QRP_RES115 = 115,
1216     IEC104_QRP_RES116 = 116,
1217     IEC104_QRP_RES117 = 117,
1218     IEC104_QRP_RES118 = 118,
1219     IEC104_QRP_RES119 = 119,
1220     IEC104_QRP_RES120 = 120,
1221     IEC104_QRP_RES121 = 121,
1222     IEC104_QRP_RES122 = 122,
1223     IEC104_QRP_RES123 = 123,
1224     IEC104_QRP_RES124 = 124,
1225     IEC104_QRP_RES125 = 125,
1226     IEC104_QRP_RES126 = 126,
1227     IEC104_QRP_RES127 = 127,
1228     IEC104_QRP_RES128 = 128,
1229     IEC104_QRP_RES129 = 129,
1230     IEC104_QRP_RES130 = 130,
1231     IEC104_QRP_RES131 = 131,
1232     IEC104_QRP_RES132 = 132,
1233     IEC104_QRP_RES133 = 133,
1234     IEC104_QRP_RES134 = 134,
1235     IEC104_QRP_RES135 = 135,
1236     IEC104_QRP_RES136 = 136,
1237     IEC104_QRP_RES137 = 137,
1238     IEC104_QRP_RES138 = 138,
1239     IEC104_QRP_RES139 = 139,
1240     IEC104_QRP_RES140 = 140,
1241     IEC104_QRP_RES141 = 141,
1242     IEC104_QRP_RES142 = 142,
1243     IEC104_QRP_RES143 = 143,
1244     IEC104_QRP_RES144 = 144,
1245     IEC104_QRP_RES145 = 145,
1246     IEC104_QRP_RES146 = 146,
1247     IEC104_QRP_RES147 = 147,
1248     IEC104_QRP_RES148 = 148,
1249     IEC104_QRP_RES149 = 149,
1250     IEC104_QRP_RES150 = 150,
1251     IEC104_QRP_RES151 = 151,
1252     IEC104_QRP_RES152 = 152,
1253     IEC104_QRP_RES153 = 153,
1254     IEC104_QRP_RES154 = 154,
1255     IEC104_QRP_RES155 = 155,
1256     IEC104_QRP_RES156 = 156,
1257     IEC104_QRP_RES157 = 157,
1258     IEC104_QRP_RES158 = 158,
1259     IEC104_QRP_RES159 = 159,
1260     IEC104_QRP_RES160 = 160,
1261     IEC104_QRP_RES161 = 161,
1262     IEC104_QRP_RES162 = 162,
1263     IEC104_QRP_RES163 = 163,
1264     IEC104_QRP_RES164 = 164,
1265     IEC104_QRP_RES165 = 165,
1266     IEC104_QRP_RES166 = 166,
1267     IEC104_QRP_RES167 = 167,
1268     IEC104_QRP_RES168 = 168,
1269     IEC104_QRP_RES169 = 169,
1270     IEC104_QRP_RES170 = 170,
1271     IEC104_QRP_RES171 = 171,
1272     IEC104_QRP_RES172 = 172,
1273     IEC104_QRP_RES173 = 173,
1274     IEC104_QRP_RES174 = 174,
1275     IEC104_QRP_RES175 = 175,
1276     IEC104_QRP_RES176 = 176,
1277     IEC104_QRP_RES177 = 177,
1278     IEC104_QRP_RES178 = 178,
1279     IEC104_QRP_RES179 = 179,
1280     IEC104_QRP_RES180 = 180,
1281     IEC104_QRP_RES181 = 181,
1282     IEC104_QRP_RES182 = 182,
1283     IEC104_QRP_RES183 = 183,
1284     IEC104_QRP_RES184 = 184,
1285     IEC104_QRP_RES185 = 185,
1286     IEC104_QRP_RES186 = 186,
1287     IEC104_QRP_RES187 = 187,
1288     IEC104_QRP_RES188 = 188,
1289     IEC104_QRP_RES189 = 189,
1290     IEC104_QRP_RES190 = 190,
1291     IEC104_QRP_RES191 = 191,
1292     IEC104_QRP_RES192 = 192,
1293     IEC104_QRP_RES193 = 193,
1294     IEC104_QRP_RES194 = 194,
1295     IEC104_QRP_RES195 = 195,
1296     IEC104_QRP_RES196 = 196,
1297     IEC104_QRP_RES197 = 197,
1298     IEC104_QRP_RES198 = 198,
1299     IEC104_QRP_RES199 = 199,
1300     IEC104_QRP_RES200 = 200,
1301     IEC104_QRP_RES201 = 201,
1302     IEC104_QRP_RES202 = 202,
1303     IEC104_QRP_RES203 = 203,
1304     IEC104_QRP_RES204 = 204,
1305     IEC104_QRP_RES205 = 205,
1306     IEC104_QRP_RES206 = 206,
1307     IEC104_QRP_RES207 = 207,
1308     IEC104_QRP_RES208 = 208,
1309     IEC104_QRP_RES209 = 209,
1310     IEC104_QRP_RES210 = 210,
1311     IEC104_QRP_RES211 = 211,
1312     IEC104_QRP_RES212 = 212,
1313     IEC104_QRP_RES213 = 213,
1314     IEC104_QRP_RES214 = 214,
1315     IEC104_QRP_RES215 = 215,
1316     IEC104_QRP_RES216 = 216,
1317     IEC104_QRP_RES217 = 217,
1318     IEC104_QRP_RES218 = 218,
1319     IEC104_QRP_RES219 = 219,
1320     IEC104_QRP_RES220 = 220,
1321     IEC104_QRP_RES221 = 221,
1322     IEC104_QRP_RES222 = 222,
1323     IEC104_QRP_RES223 = 223,
1324     IEC104_QRP_RES224 = 224,
1325     IEC104_QRP_RES225 = 225,
1326     IEC104_QRP_RES226 = 226,
1327     IEC104_QRP_RES227 = 227,
1328     IEC104_QRP_RES228 = 228,
1329     IEC104_QRP_RES229 = 229,
1330     IEC104_QRP_RES230 = 230,
1331     IEC104_QRP_RES231 = 231,
1332     IEC104_QRP_RES232 = 232,
1333     IEC104_QRP_RES233 = 233,
1334     IEC104_QRP_RES234 = 234,
1335     IEC104_QRP_RES235 = 235,
1336     IEC104_QRP_RES236 = 236,
1337     IEC104_QRP_RES237 = 237,
1338     IEC104_QRP_RES238 = 238,
1339     IEC104_QRP_RES239 = 239,
1340     IEC104_QRP_RES240 = 240,
1341     IEC104_QRP_RES241 = 241,
1342     IEC104_QRP_RES242 = 242,
1343     IEC104_QRP_RES243 = 243,
1344     IEC104_QRP_RES244 = 244,
1345     IEC104_QRP_RES245 = 245,
1346     IEC104_QRP_RES246 = 246,
1347     IEC104_QRP_RES247 = 247,
1348     IEC104_QRP_RES248 = 248,
1349     IEC104_QRP_RES249 = 249,
1350     IEC104_QRP_RES250 = 250,
1351     IEC104_QRP_RES251 = 251,
1352     IEC104_QRP_RES252 = 252,
1353     IEC104_QRP_RES253 = 253,
1354     IEC104_QRP_RES254 = 254,
1355     IEC104_QRP_RES255 = 255,
1356 };
1357 
1358 enum Iec104FrqUiEnum
1359 {
1360     IEC104_FRQ_UI_DEFAULT = 0,
1361     IEC104_FRQ_UI_RES1 = 1,
1362     IEC104_FRQ_UI_RES2 = 2,
1363     IEC104_FRQ_UI_RES3 = 3,
1364     IEC104_FRQ_UI_RES4 = 4,
1365     IEC104_FRQ_UI_RES5 = 5,
1366     IEC104_FRQ_UI_RES6 = 6,
1367     IEC104_FRQ_UI_RES7 = 7,
1368     IEC104_FRQ_UI_RES8 = 8,
1369     IEC104_FRQ_UI_RES9 = 9,
1370     IEC104_FRQ_UI_RES10 = 10,
1371     IEC104_FRQ_UI_RES11 = 11,
1372     IEC104_FRQ_UI_RES12 = 12,
1373     IEC104_FRQ_UI_RES13 = 13,
1374     IEC104_FRQ_UI_RES14 = 14,
1375     IEC104_FRQ_UI_RES15 = 15,
1376     IEC104_FRQ_UI_RES16 = 16,
1377     IEC104_FRQ_UI_RES17 = 17,
1378     IEC104_FRQ_UI_RES18 = 18,
1379     IEC104_FRQ_UI_RES19 = 19,
1380     IEC104_FRQ_UI_RES20 = 20,
1381     IEC104_FRQ_UI_RES21 = 21,
1382     IEC104_FRQ_UI_RES22 = 22,
1383     IEC104_FRQ_UI_RES23 = 23,
1384     IEC104_FRQ_UI_RES24 = 24,
1385     IEC104_FRQ_UI_RES25 = 25,
1386     IEC104_FRQ_UI_RES26 = 26,
1387     IEC104_FRQ_UI_RES27 = 27,
1388     IEC104_FRQ_UI_RES28 = 28,
1389     IEC104_FRQ_UI_RES29 = 29,
1390     IEC104_FRQ_UI_RES30 = 30,
1391     IEC104_FRQ_UI_RES31 = 31,
1392     IEC104_FRQ_UI_RES32 = 32,
1393     IEC104_FRQ_UI_RES33 = 33,
1394     IEC104_FRQ_UI_RES34 = 34,
1395     IEC104_FRQ_UI_RES35 = 35,
1396     IEC104_FRQ_UI_RES36 = 36,
1397     IEC104_FRQ_UI_RES37 = 37,
1398     IEC104_FRQ_UI_RES38 = 38,
1399     IEC104_FRQ_UI_RES39 = 39,
1400     IEC104_FRQ_UI_RES40 = 40,
1401     IEC104_FRQ_UI_RES41 = 41,
1402     IEC104_FRQ_UI_RES42 = 42,
1403     IEC104_FRQ_UI_RES43 = 43,
1404     IEC104_FRQ_UI_RES44 = 44,
1405     IEC104_FRQ_UI_RES45 = 45,
1406     IEC104_FRQ_UI_RES46 = 46,
1407     IEC104_FRQ_UI_RES47 = 47,
1408     IEC104_FRQ_UI_RES48 = 48,
1409     IEC104_FRQ_UI_RES49 = 49,
1410     IEC104_FRQ_UI_RES50 = 50,
1411     IEC104_FRQ_UI_RES51 = 51,
1412     IEC104_FRQ_UI_RES52 = 52,
1413     IEC104_FRQ_UI_RES53 = 53,
1414     IEC104_FRQ_UI_RES54 = 54,
1415     IEC104_FRQ_UI_RES55 = 55,
1416     IEC104_FRQ_UI_RES56 = 56,
1417     IEC104_FRQ_UI_RES57 = 57,
1418     IEC104_FRQ_UI_RES58 = 58,
1419     IEC104_FRQ_UI_RES59 = 59,
1420     IEC104_FRQ_UI_RES60 = 60,
1421     IEC104_FRQ_UI_RES61 = 61,
1422     IEC104_FRQ_UI_RES62 = 62,
1423     IEC104_FRQ_UI_RES63 = 63,
1424     IEC104_FRQ_UI_RES64 = 64,
1425     IEC104_FRQ_UI_RES65 = 65,
1426     IEC104_FRQ_UI_RES66 = 66,
1427     IEC104_FRQ_UI_RES67 = 67,
1428     IEC104_FRQ_UI_RES68 = 68,
1429     IEC104_FRQ_UI_RES69 = 69,
1430     IEC104_FRQ_UI_RES70 = 70,
1431     IEC104_FRQ_UI_RES71 = 71,
1432     IEC104_FRQ_UI_RES72 = 72,
1433     IEC104_FRQ_UI_RES73 = 73,
1434     IEC104_FRQ_UI_RES74 = 74,
1435     IEC104_FRQ_UI_RES75 = 75,
1436     IEC104_FRQ_UI_RES76 = 76,
1437     IEC104_FRQ_UI_RES77 = 77,
1438     IEC104_FRQ_UI_RES78 = 78,
1439     IEC104_FRQ_UI_RES79 = 79,
1440     IEC104_FRQ_UI_RES80 = 80,
1441     IEC104_FRQ_UI_RES81 = 81,
1442     IEC104_FRQ_UI_RES82 = 82,
1443     IEC104_FRQ_UI_RES83 = 83,
1444     IEC104_FRQ_UI_RES84 = 84,
1445     IEC104_FRQ_UI_RES85 = 85,
1446     IEC104_FRQ_UI_RES86 = 86,
1447     IEC104_FRQ_UI_RES87 = 87,
1448     IEC104_FRQ_UI_RES88 = 88,
1449     IEC104_FRQ_UI_RES89 = 89,
1450     IEC104_FRQ_UI_RES90 = 90,
1451     IEC104_FRQ_UI_RES91 = 91,
1452     IEC104_FRQ_UI_RES92 = 92,
1453     IEC104_FRQ_UI_RES93 = 93,
1454     IEC104_FRQ_UI_RES94 = 94,
1455     IEC104_FRQ_UI_RES95 = 95,
1456     IEC104_FRQ_UI_RES96 = 96,
1457     IEC104_FRQ_UI_RES97 = 97,
1458     IEC104_FRQ_UI_RES98 = 98,
1459     IEC104_FRQ_UI_RES99 = 99,
1460     IEC104_FRQ_UI_RES100 = 100,
1461     IEC104_FRQ_UI_RES101 = 101,
1462     IEC104_FRQ_UI_RES102 = 102,
1463     IEC104_FRQ_UI_RES103 = 103,
1464     IEC104_FRQ_UI_RES104 = 104,
1465     IEC104_FRQ_UI_RES105 = 105,
1466     IEC104_FRQ_UI_RES106 = 106,
1467     IEC104_FRQ_UI_RES107 = 107,
1468     IEC104_FRQ_UI_RES108 = 108,
1469     IEC104_FRQ_UI_RES109 = 109,
1470     IEC104_FRQ_UI_RES110 = 110,
1471     IEC104_FRQ_UI_RES111 = 111,
1472     IEC104_FRQ_UI_RES112 = 112,
1473     IEC104_FRQ_UI_RES113 = 113,
1474     IEC104_FRQ_UI_RES114 = 114,
1475     IEC104_FRQ_UI_RES115 = 115,
1476     IEC104_FRQ_UI_RES116 = 116,
1477     IEC104_FRQ_UI_RES117 = 117,
1478     IEC104_FRQ_UI_RES118 = 118,
1479     IEC104_FRQ_UI_RES119 = 119,
1480     IEC104_FRQ_UI_RES120 = 120,
1481     IEC104_FRQ_UI_RES121 = 121,
1482     IEC104_FRQ_UI_RES122 = 122,
1483     IEC104_FRQ_UI_RES123 = 123,
1484     IEC104_FRQ_UI_RES124 = 124,
1485     IEC104_FRQ_UI_RES125 = 125,
1486     IEC104_FRQ_UI_RES126 = 126,
1487     IEC104_FRQ_UI_RES127 = 127,
1488 };
1489 
1490 enum Iec104SrqUiEnum
1491 {
1492     IEC104_SRQ_UI_DEFAULT = 0,
1493     IEC104_SRQ_UI_RES1 = 1,
1494     IEC104_SRQ_UI_RES2 = 2,
1495     IEC104_SRQ_UI_RES3 = 3,
1496     IEC104_SRQ_UI_RES4 = 4,
1497     IEC104_SRQ_UI_RES5 = 5,
1498     IEC104_SRQ_UI_RES6 = 6,
1499     IEC104_SRQ_UI_RES7 = 7,
1500     IEC104_SRQ_UI_RES8 = 8,
1501     IEC104_SRQ_UI_RES9 = 9,
1502     IEC104_SRQ_UI_RES10 = 10,
1503     IEC104_SRQ_UI_RES11 = 11,
1504     IEC104_SRQ_UI_RES12 = 12,
1505     IEC104_SRQ_UI_RES13 = 13,
1506     IEC104_SRQ_UI_RES14 = 14,
1507     IEC104_SRQ_UI_RES15 = 15,
1508     IEC104_SRQ_UI_RES16 = 16,
1509     IEC104_SRQ_UI_RES17 = 17,
1510     IEC104_SRQ_UI_RES18 = 18,
1511     IEC104_SRQ_UI_RES19 = 19,
1512     IEC104_SRQ_UI_RES20 = 20,
1513     IEC104_SRQ_UI_RES21 = 21,
1514     IEC104_SRQ_UI_RES22 = 22,
1515     IEC104_SRQ_UI_RES23 = 23,
1516     IEC104_SRQ_UI_RES24 = 24,
1517     IEC104_SRQ_UI_RES25 = 25,
1518     IEC104_SRQ_UI_RES26 = 26,
1519     IEC104_SRQ_UI_RES27 = 27,
1520     IEC104_SRQ_UI_RES28 = 28,
1521     IEC104_SRQ_UI_RES29 = 29,
1522     IEC104_SRQ_UI_RES30 = 30,
1523     IEC104_SRQ_UI_RES31 = 31,
1524     IEC104_SRQ_UI_RES32 = 32,
1525     IEC104_SRQ_UI_RES33 = 33,
1526     IEC104_SRQ_UI_RES34 = 34,
1527     IEC104_SRQ_UI_RES35 = 35,
1528     IEC104_SRQ_UI_RES36 = 36,
1529     IEC104_SRQ_UI_RES37 = 37,
1530     IEC104_SRQ_UI_RES38 = 38,
1531     IEC104_SRQ_UI_RES39 = 39,
1532     IEC104_SRQ_UI_RES40 = 40,
1533     IEC104_SRQ_UI_RES41 = 41,
1534     IEC104_SRQ_UI_RES42 = 42,
1535     IEC104_SRQ_UI_RES43 = 43,
1536     IEC104_SRQ_UI_RES44 = 44,
1537     IEC104_SRQ_UI_RES45 = 45,
1538     IEC104_SRQ_UI_RES46 = 46,
1539     IEC104_SRQ_UI_RES47 = 47,
1540     IEC104_SRQ_UI_RES48 = 48,
1541     IEC104_SRQ_UI_RES49 = 49,
1542     IEC104_SRQ_UI_RES50 = 50,
1543     IEC104_SRQ_UI_RES51 = 51,
1544     IEC104_SRQ_UI_RES52 = 52,
1545     IEC104_SRQ_UI_RES53 = 53,
1546     IEC104_SRQ_UI_RES54 = 54,
1547     IEC104_SRQ_UI_RES55 = 55,
1548     IEC104_SRQ_UI_RES56 = 56,
1549     IEC104_SRQ_UI_RES57 = 57,
1550     IEC104_SRQ_UI_RES58 = 58,
1551     IEC104_SRQ_UI_RES59 = 59,
1552     IEC104_SRQ_UI_RES60 = 60,
1553     IEC104_SRQ_UI_RES61 = 61,
1554     IEC104_SRQ_UI_RES62 = 62,
1555     IEC104_SRQ_UI_RES63 = 63,
1556     IEC104_SRQ_UI_RES64 = 64,
1557     IEC104_SRQ_UI_RES65 = 65,
1558     IEC104_SRQ_UI_RES66 = 66,
1559     IEC104_SRQ_UI_RES67 = 67,
1560     IEC104_SRQ_UI_RES68 = 68,
1561     IEC104_SRQ_UI_RES69 = 69,
1562     IEC104_SRQ_UI_RES70 = 70,
1563     IEC104_SRQ_UI_RES71 = 71,
1564     IEC104_SRQ_UI_RES72 = 72,
1565     IEC104_SRQ_UI_RES73 = 73,
1566     IEC104_SRQ_UI_RES74 = 74,
1567     IEC104_SRQ_UI_RES75 = 75,
1568     IEC104_SRQ_UI_RES76 = 76,
1569     IEC104_SRQ_UI_RES77 = 77,
1570     IEC104_SRQ_UI_RES78 = 78,
1571     IEC104_SRQ_UI_RES79 = 79,
1572     IEC104_SRQ_UI_RES80 = 80,
1573     IEC104_SRQ_UI_RES81 = 81,
1574     IEC104_SRQ_UI_RES82 = 82,
1575     IEC104_SRQ_UI_RES83 = 83,
1576     IEC104_SRQ_UI_RES84 = 84,
1577     IEC104_SRQ_UI_RES85 = 85,
1578     IEC104_SRQ_UI_RES86 = 86,
1579     IEC104_SRQ_UI_RES87 = 87,
1580     IEC104_SRQ_UI_RES88 = 88,
1581     IEC104_SRQ_UI_RES89 = 89,
1582     IEC104_SRQ_UI_RES90 = 90,
1583     IEC104_SRQ_UI_RES91 = 91,
1584     IEC104_SRQ_UI_RES92 = 92,
1585     IEC104_SRQ_UI_RES93 = 93,
1586     IEC104_SRQ_UI_RES94 = 94,
1587     IEC104_SRQ_UI_RES95 = 95,
1588     IEC104_SRQ_UI_RES96 = 96,
1589     IEC104_SRQ_UI_RES97 = 97,
1590     IEC104_SRQ_UI_RES98 = 98,
1591     IEC104_SRQ_UI_RES99 = 99,
1592     IEC104_SRQ_UI_RES100 = 100,
1593     IEC104_SRQ_UI_RES101 = 101,
1594     IEC104_SRQ_UI_RES102 = 102,
1595     IEC104_SRQ_UI_RES103 = 103,
1596     IEC104_SRQ_UI_RES104 = 104,
1597     IEC104_SRQ_UI_RES105 = 105,
1598     IEC104_SRQ_UI_RES106 = 106,
1599     IEC104_SRQ_UI_RES107 = 107,
1600     IEC104_SRQ_UI_RES108 = 108,
1601     IEC104_SRQ_UI_RES109 = 109,
1602     IEC104_SRQ_UI_RES110 = 110,
1603     IEC104_SRQ_UI_RES111 = 111,
1604     IEC104_SRQ_UI_RES112 = 112,
1605     IEC104_SRQ_UI_RES113 = 113,
1606     IEC104_SRQ_UI_RES114 = 114,
1607     IEC104_SRQ_UI_RES115 = 115,
1608     IEC104_SRQ_UI_RES116 = 116,
1609     IEC104_SRQ_UI_RES117 = 117,
1610     IEC104_SRQ_UI_RES118 = 118,
1611     IEC104_SRQ_UI_RES119 = 119,
1612     IEC104_SRQ_UI_RES120 = 120,
1613     IEC104_SRQ_UI_RES121 = 121,
1614     IEC104_SRQ_UI_RES122 = 122,
1615     IEC104_SRQ_UI_RES123 = 123,
1616     IEC104_SRQ_UI_RES124 = 124,
1617     IEC104_SRQ_UI_RES125 = 125,
1618     IEC104_SRQ_UI_RES126 = 126,
1619     IEC104_SRQ_UI_RES127 = 127,
1620 };
1621 
1622 enum Iec104ScqUi1Enum
1623 {
1624     IEC104_SCQ_UI1_DEFAULT = 0,
1625     IEC104_SCQ_UI1_SELECTFILE = 1,
1626     IEC104_SCQ_UI1_REQUESTFILE = 2,
1627     IEC104_SCQ_UI1_DEACTFILE = 3,
1628     IEC104_SCQ_UI1_DELETEFILE = 4,
1629     IEC104_SCQ_UI1_SELECTSECTION = 5,
1630     IEC104_SCQ_UI1_REQUESTSECTION = 6,
1631     IEC104_SCQ_UI1_DEACTSECTION = 7,
1632     IEC104_SCQ_UI1_RES8 = 8,
1633     IEC104_SCQ_UI1_RES9 = 9,
1634     IEC104_SCQ_UI1_RES10 = 10,
1635     IEC104_SCQ_UI1_RES11 = 11,
1636     IEC104_SCQ_UI1_RES12 = 12,
1637     IEC104_SCQ_UI1_RES13 = 13,
1638     IEC104_SCQ_UI1_RES14 = 14,
1639     IEC104_SCQ_UI1_RES15 = 15,
1640 };
1641 
1642 enum Iec104ScqUi2Enum
1643 {
1644     IEC104_SCQ_UI2_DEFAULT = 0,
1645     IEC104_SCQ_UI2_MEMUNAVAIL = 1,
1646     IEC104_SCQ_UI2_CHKSMFAILED = 2,
1647     IEC104_SCQ_UI2_UNEXPECTEDCOMM = 3,
1648     IEC104_SCQ_UI2_UNEXPECTEDNOF = 4,
1649     IEC104_SCQ_UI2_UNEXPECTEDNOS = 5,
1650     IEC104_SCQ_UI2_RES6 = 6,
1651     IEC104_SCQ_UI2_RES7 = 7,
1652     IEC104_SCQ_UI2_RES8 = 8,
1653     IEC104_SCQ_UI2_RES9 = 9,
1654     IEC104_SCQ_UI2_RES10 = 10,
1655     IEC104_SCQ_UI2_RES11 = 11,
1656     IEC104_SCQ_UI2_RES12 = 12,
1657     IEC104_SCQ_UI2_RES13 = 13,
1658     IEC104_SCQ_UI2_RES14 = 14,
1659     IEC104_SCQ_UI2_RES15 = 15,
1660 };
1661 
1662 enum Iec104LsqEnum
1663 {
1664     IEC104_LSQ_NOTUSED = 0,
1665     IEC104_LSQ_FILETRANSFERWITHOUTDEACT = 1,
1666     IEC104_LSQ_FILETRANSFERWITHDEACT = 2,
1667     IEC104_LSQ_SECTIONTRANSFERWITHOUTDEACT = 3,
1668     IEC104_LSQ_SECTIONTRANSFERWITHDEACT = 4,
1669     IEC104_LSQ_RES5 = 5,
1670     IEC104_LSQ_RES6 = 6,
1671     IEC104_LSQ_RES7 = 7,
1672     IEC104_LSQ_RES8 = 8,
1673     IEC104_LSQ_RES9 = 9,
1674     IEC104_LSQ_RES10 = 10,
1675     IEC104_LSQ_RES11 = 11,
1676     IEC104_LSQ_RES12 = 12,
1677     IEC104_LSQ_RES13 = 13,
1678     IEC104_LSQ_RES14 = 14,
1679     IEC104_LSQ_RES15 = 15,
1680     IEC104_LSQ_RES16 = 16,
1681     IEC104_LSQ_RES17 = 17,
1682     IEC104_LSQ_RES18 = 18,
1683     IEC104_LSQ_RES19 = 19,
1684     IEC104_LSQ_RES20 = 20,
1685     IEC104_LSQ_RES21 = 21,
1686     IEC104_LSQ_RES22 = 22,
1687     IEC104_LSQ_RES23 = 23,
1688     IEC104_LSQ_RES24 = 24,
1689     IEC104_LSQ_RES25 = 25,
1690     IEC104_LSQ_RES26 = 26,
1691     IEC104_LSQ_RES27 = 27,
1692     IEC104_LSQ_RES28 = 28,
1693     IEC104_LSQ_RES29 = 29,
1694     IEC104_LSQ_RES30 = 30,
1695     IEC104_LSQ_RES31 = 31,
1696     IEC104_LSQ_RES32 = 32,
1697     IEC104_LSQ_RES33 = 33,
1698     IEC104_LSQ_RES34 = 34,
1699     IEC104_LSQ_RES35 = 35,
1700     IEC104_LSQ_RES36 = 36,
1701     IEC104_LSQ_RES37 = 37,
1702     IEC104_LSQ_RES38 = 38,
1703     IEC104_LSQ_RES39 = 39,
1704     IEC104_LSQ_RES40 = 40,
1705     IEC104_LSQ_RES41 = 41,
1706     IEC104_LSQ_RES42 = 42,
1707     IEC104_LSQ_RES43 = 43,
1708     IEC104_LSQ_RES44 = 44,
1709     IEC104_LSQ_RES45 = 45,
1710     IEC104_LSQ_RES46 = 46,
1711     IEC104_LSQ_RES47 = 47,
1712     IEC104_LSQ_RES48 = 48,
1713     IEC104_LSQ_RES49 = 49,
1714     IEC104_LSQ_RES50 = 50,
1715     IEC104_LSQ_RES51 = 51,
1716     IEC104_LSQ_RES52 = 52,
1717     IEC104_LSQ_RES53 = 53,
1718     IEC104_LSQ_RES54 = 54,
1719     IEC104_LSQ_RES55 = 55,
1720     IEC104_LSQ_RES56 = 56,
1721     IEC104_LSQ_RES57 = 57,
1722     IEC104_LSQ_RES58 = 58,
1723     IEC104_LSQ_RES59 = 59,
1724     IEC104_LSQ_RES60 = 60,
1725     IEC104_LSQ_RES61 = 61,
1726     IEC104_LSQ_RES62 = 62,
1727     IEC104_LSQ_RES63 = 63,
1728     IEC104_LSQ_RES64 = 64,
1729     IEC104_LSQ_RES65 = 65,
1730     IEC104_LSQ_RES66 = 66,
1731     IEC104_LSQ_RES67 = 67,
1732     IEC104_LSQ_RES68 = 68,
1733     IEC104_LSQ_RES69 = 69,
1734     IEC104_LSQ_RES70 = 70,
1735     IEC104_LSQ_RES71 = 71,
1736     IEC104_LSQ_RES72 = 72,
1737     IEC104_LSQ_RES73 = 73,
1738     IEC104_LSQ_RES74 = 74,
1739     IEC104_LSQ_RES75 = 75,
1740     IEC104_LSQ_RES76 = 76,
1741     IEC104_LSQ_RES77 = 77,
1742     IEC104_LSQ_RES78 = 78,
1743     IEC104_LSQ_RES79 = 79,
1744     IEC104_LSQ_RES80 = 80,
1745     IEC104_LSQ_RES81 = 81,
1746     IEC104_LSQ_RES82 = 82,
1747     IEC104_LSQ_RES83 = 83,
1748     IEC104_LSQ_RES84 = 84,
1749     IEC104_LSQ_RES85 = 85,
1750     IEC104_LSQ_RES86 = 86,
1751     IEC104_LSQ_RES87 = 87,
1752     IEC104_LSQ_RES88 = 88,
1753     IEC104_LSQ_RES89 = 89,
1754     IEC104_LSQ_RES90 = 90,
1755     IEC104_LSQ_RES91 = 91,
1756     IEC104_LSQ_RES92 = 92,
1757     IEC104_LSQ_RES93 = 93,
1758     IEC104_LSQ_RES94 = 94,
1759     IEC104_LSQ_RES95 = 95,
1760     IEC104_LSQ_RES96 = 96,
1761     IEC104_LSQ_RES97 = 97,
1762     IEC104_LSQ_RES98 = 98,
1763     IEC104_LSQ_RES99 = 99,
1764     IEC104_LSQ_RES100 = 100,
1765     IEC104_LSQ_RES101 = 101,
1766     IEC104_LSQ_RES102 = 102,
1767     IEC104_LSQ_RES103 = 103,
1768     IEC104_LSQ_RES104 = 104,
1769     IEC104_LSQ_RES105 = 105,
1770     IEC104_LSQ_RES106 = 106,
1771     IEC104_LSQ_RES107 = 107,
1772     IEC104_LSQ_RES108 = 108,
1773     IEC104_LSQ_RES109 = 109,
1774     IEC104_LSQ_RES110 = 110,
1775     IEC104_LSQ_RES111 = 111,
1776     IEC104_LSQ_RES112 = 112,
1777     IEC104_LSQ_RES113 = 113,
1778     IEC104_LSQ_RES114 = 114,
1779     IEC104_LSQ_RES115 = 115,
1780     IEC104_LSQ_RES116 = 116,
1781     IEC104_LSQ_RES117 = 117,
1782     IEC104_LSQ_RES118 = 118,
1783     IEC104_LSQ_RES119 = 119,
1784     IEC104_LSQ_RES120 = 120,
1785     IEC104_LSQ_RES121 = 121,
1786     IEC104_LSQ_RES122 = 122,
1787     IEC104_LSQ_RES123 = 123,
1788     IEC104_LSQ_RES124 = 124,
1789     IEC104_LSQ_RES125 = 125,
1790     IEC104_LSQ_RES126 = 126,
1791     IEC104_LSQ_RES127 = 127,
1792     IEC104_LSQ_RES128 = 128,
1793     IEC104_LSQ_RES129 = 129,
1794     IEC104_LSQ_RES130 = 130,
1795     IEC104_LSQ_RES131 = 131,
1796     IEC104_LSQ_RES132 = 132,
1797     IEC104_LSQ_RES133 = 133,
1798     IEC104_LSQ_RES134 = 134,
1799     IEC104_LSQ_RES135 = 135,
1800     IEC104_LSQ_RES136 = 136,
1801     IEC104_LSQ_RES137 = 137,
1802     IEC104_LSQ_RES138 = 138,
1803     IEC104_LSQ_RES139 = 139,
1804     IEC104_LSQ_RES140 = 140,
1805     IEC104_LSQ_RES141 = 141,
1806     IEC104_LSQ_RES142 = 142,
1807     IEC104_LSQ_RES143 = 143,
1808     IEC104_LSQ_RES144 = 144,
1809     IEC104_LSQ_RES145 = 145,
1810     IEC104_LSQ_RES146 = 146,
1811     IEC104_LSQ_RES147 = 147,
1812     IEC104_LSQ_RES148 = 148,
1813     IEC104_LSQ_RES149 = 149,
1814     IEC104_LSQ_RES150 = 150,
1815     IEC104_LSQ_RES151 = 151,
1816     IEC104_LSQ_RES152 = 152,
1817     IEC104_LSQ_RES153 = 153,
1818     IEC104_LSQ_RES154 = 154,
1819     IEC104_LSQ_RES155 = 155,
1820     IEC104_LSQ_RES156 = 156,
1821     IEC104_LSQ_RES157 = 157,
1822     IEC104_LSQ_RES158 = 158,
1823     IEC104_LSQ_RES159 = 159,
1824     IEC104_LSQ_RES160 = 160,
1825     IEC104_LSQ_RES161 = 161,
1826     IEC104_LSQ_RES162 = 162,
1827     IEC104_LSQ_RES163 = 163,
1828     IEC104_LSQ_RES164 = 164,
1829     IEC104_LSQ_RES165 = 165,
1830     IEC104_LSQ_RES166 = 166,
1831     IEC104_LSQ_RES167 = 167,
1832     IEC104_LSQ_RES168 = 168,
1833     IEC104_LSQ_RES169 = 169,
1834     IEC104_LSQ_RES170 = 170,
1835     IEC104_LSQ_RES171 = 171,
1836     IEC104_LSQ_RES172 = 172,
1837     IEC104_LSQ_RES173 = 173,
1838     IEC104_LSQ_RES174 = 174,
1839     IEC104_LSQ_RES175 = 175,
1840     IEC104_LSQ_RES176 = 176,
1841     IEC104_LSQ_RES177 = 177,
1842     IEC104_LSQ_RES178 = 178,
1843     IEC104_LSQ_RES179 = 179,
1844     IEC104_LSQ_RES180 = 180,
1845     IEC104_LSQ_RES181 = 181,
1846     IEC104_LSQ_RES182 = 182,
1847     IEC104_LSQ_RES183 = 183,
1848     IEC104_LSQ_RES184 = 184,
1849     IEC104_LSQ_RES185 = 185,
1850     IEC104_LSQ_RES186 = 186,
1851     IEC104_LSQ_RES187 = 187,
1852     IEC104_LSQ_RES188 = 188,
1853     IEC104_LSQ_RES189 = 189,
1854     IEC104_LSQ_RES190 = 190,
1855     IEC104_LSQ_RES191 = 191,
1856     IEC104_LSQ_RES192 = 192,
1857     IEC104_LSQ_RES193 = 193,
1858     IEC104_LSQ_RES194 = 194,
1859     IEC104_LSQ_RES195 = 195,
1860     IEC104_LSQ_RES196 = 196,
1861     IEC104_LSQ_RES197 = 197,
1862     IEC104_LSQ_RES198 = 198,
1863     IEC104_LSQ_RES199 = 199,
1864     IEC104_LSQ_RES200 = 200,
1865     IEC104_LSQ_RES201 = 201,
1866     IEC104_LSQ_RES202 = 202,
1867     IEC104_LSQ_RES203 = 203,
1868     IEC104_LSQ_RES204 = 204,
1869     IEC104_LSQ_RES205 = 205,
1870     IEC104_LSQ_RES206 = 206,
1871     IEC104_LSQ_RES207 = 207,
1872     IEC104_LSQ_RES208 = 208,
1873     IEC104_LSQ_RES209 = 209,
1874     IEC104_LSQ_RES210 = 210,
1875     IEC104_LSQ_RES211 = 211,
1876     IEC104_LSQ_RES212 = 212,
1877     IEC104_LSQ_RES213 = 213,
1878     IEC104_LSQ_RES214 = 214,
1879     IEC104_LSQ_RES215 = 215,
1880     IEC104_LSQ_RES216 = 216,
1881     IEC104_LSQ_RES217 = 217,
1882     IEC104_LSQ_RES218 = 218,
1883     IEC104_LSQ_RES219 = 219,
1884     IEC104_LSQ_RES220 = 220,
1885     IEC104_LSQ_RES221 = 221,
1886     IEC104_LSQ_RES222 = 222,
1887     IEC104_LSQ_RES223 = 223,
1888     IEC104_LSQ_RES224 = 224,
1889     IEC104_LSQ_RES225 = 225,
1890     IEC104_LSQ_RES226 = 226,
1891     IEC104_LSQ_RES227 = 227,
1892     IEC104_LSQ_RES228 = 228,
1893     IEC104_LSQ_RES229 = 229,
1894     IEC104_LSQ_RES230 = 230,
1895     IEC104_LSQ_RES231 = 231,
1896     IEC104_LSQ_RES232 = 232,
1897     IEC104_LSQ_RES233 = 233,
1898     IEC104_LSQ_RES234 = 234,
1899     IEC104_LSQ_RES235 = 235,
1900     IEC104_LSQ_RES236 = 236,
1901     IEC104_LSQ_RES237 = 237,
1902     IEC104_LSQ_RES238 = 238,
1903     IEC104_LSQ_RES239 = 239,
1904     IEC104_LSQ_RES240 = 240,
1905     IEC104_LSQ_RES241 = 241,
1906     IEC104_LSQ_RES242 = 242,
1907     IEC104_LSQ_RES243 = 243,
1908     IEC104_LSQ_RES244 = 244,
1909     IEC104_LSQ_RES245 = 245,
1910     IEC104_LSQ_RES246 = 246,
1911     IEC104_LSQ_RES247 = 247,
1912     IEC104_LSQ_RES248 = 248,
1913     IEC104_LSQ_RES249 = 249,
1914     IEC104_LSQ_RES250 = 250,
1915     IEC104_LSQ_RES251 = 251,
1916     IEC104_LSQ_RES252 = 252,
1917     IEC104_LSQ_RES253 = 253,
1918     IEC104_LSQ_RES254 = 254,
1919     IEC104_LSQ_RES255 = 255,
1920 };
1921 
1922 enum Iec104AfqUi1Enum
1923 {
1924     IEC104_AFQ_UI1_NOTUSED = 0,
1925     IEC104_AFQ_UI1_POSFILEACK = 1,
1926     IEC104_AFQ_UI1_NEGFILEACK = 2,
1927     IEC104_AFQ_UI1_POSSECTIONACK = 3,
1928     IEC104_AFQ_UI1_NEGSECTIONACK = 4,
1929     IEC104_AFQ_UI1_RES5 = 5,
1930     IEC104_AFQ_UI1_RES6 = 6,
1931     IEC104_AFQ_UI1_RES7 = 7,
1932     IEC104_AFQ_UI1_RES8 = 8,
1933     IEC104_AFQ_UI1_RES9 = 9,
1934     IEC104_AFQ_UI1_RES10 = 10,
1935     IEC104_AFQ_UI1_RES11 = 11,
1936     IEC104_AFQ_UI1_RES12 = 12,
1937     IEC104_AFQ_UI1_RES13 = 13,
1938     IEC104_AFQ_UI1_RES14 = 14,
1939     IEC104_AFQ_UI1_RES15 = 15,
1940 };
1941 
1942 enum Iec104AfqUi2Enum
1943 {
1944     IEC104_AFQ_UI2_DEFAULT = 0,
1945     IEC104_AFQ_UI2_MEMUNAVAIL = 1,
1946     IEC104_AFQ_UI2_CHKSMFAILED = 2,
1947     IEC104_AFQ_UI2_UNEXPECTEDCOMM = 3,
1948     IEC104_AFQ_UI2_UNEXPECTEDNOF = 4,
1949     IEC104_AFQ_UI2_UNEXPECTEDNOS = 5,
1950     IEC104_AFQ_UI2_RES6 = 6,
1951     IEC104_AFQ_UI2_RES7 = 7,
1952     IEC104_AFQ_UI2_RES8 = 8,
1953     IEC104_AFQ_UI2_RES9 = 9,
1954     IEC104_AFQ_UI2_RES10 = 10,
1955     IEC104_AFQ_UI2_RES11 = 11,
1956     IEC104_AFQ_UI2_RES12 = 12,
1957     IEC104_AFQ_UI2_RES13 = 13,
1958     IEC104_AFQ_UI2_RES14 = 14,
1959     IEC104_AFQ_UI2_RES15 = 15,
1960 };
1961 
1962 enum Iec104DiqDpiEnum
1963 {
1964     IEC104_DIQ_DPI_INDETERMSTATE1 = 0,
1965     IEC104_DIQ_DPI_STATEOFF = 1,
1966     IEC104_DIQ_DPI_STATEON = 2,
1967     IEC104_DIQ_DPI_INDETERMSTATE2 = 3,
1968 };
1969 
1970 enum Iec104SepEsEnum
1971 {
1972     IEC104_SEP_ES_INDETERMSTATE1 = 0,
1973     IEC104_SEP_ES_STATEOFF = 1,
1974     IEC104_SEP_ES_STATEON = 2,
1975     IEC104_SEP_ES_INDETERMSTATE2 = 3,
1976 };
1977 
1978 enum Iec104DcoDcsEnum
1979 {
1980     IEC104_DCO_DCS_NOTPERMITTED1 = 0,
1981     IEC104_DCO_DCS_STATEOFF = 1,
1982     IEC104_DCO_DCS_STATEON = 2,
1983     IEC104_DCO_DCS_NOTPERMITTED2 = 3,
1984 };
1985 
1986 enum Iec104RcoRcsEnum
1987 {
1988     IEC104_RCO_RCS_NOTPERMITTED1 = 0,
1989     IEC104_RCO_RCS_STEPLOWER = 1,
1990     IEC104_RCO_RCS_STEPHIGHER = 2,
1991     IEC104_RCO_RCS_NOTPERMITTED2 = 3,
1992 };
1993 
1994 enum Iec104SofStatusEnum
1995 {
1996     IEC104_SOF_STATUS_DEFAULT = 0,
1997     IEC104_SOF_STATUS_RES1 = 1,
1998     IEC104_SOF_STATUS_RES2 = 2,
1999     IEC104_SOF_STATUS_RES3 = 3,
2000     IEC104_SOF_STATUS_RES4 = 4,
2001     IEC104_SOF_STATUS_RES5 = 5,
2002     IEC104_SOF_STATUS_RES6 = 6,
2003     IEC104_SOF_STATUS_RES7 = 7,
2004     IEC104_SOF_STATUS_RES8 = 8,
2005     IEC104_SOF_STATUS_RES9 = 9,
2006     IEC104_SOF_STATUS_RES10 = 10,
2007     IEC104_SOF_STATUS_RES11 = 11,
2008     IEC104_SOF_STATUS_RES12 = 12,
2009     IEC104_SOF_STATUS_RES13 = 13,
2010     IEC104_SOF_STATUS_RES14 = 14,
2011     IEC104_SOF_STATUS_RES15 = 15,
2012     IEC104_SOF_STATUS_RES16 = 16,
2013     IEC104_SOF_STATUS_RES17 = 17,
2014     IEC104_SOF_STATUS_RES18 = 18,
2015     IEC104_SOF_STATUS_RES19 = 19,
2016     IEC104_SOF_STATUS_RES20 = 20,
2017     IEC104_SOF_STATUS_RES21 = 21,
2018     IEC104_SOF_STATUS_RES22 = 22,
2019     IEC104_SOF_STATUS_RES23 = 23,
2020     IEC104_SOF_STATUS_RES24 = 24,
2021     IEC104_SOF_STATUS_RES25 = 25,
2022     IEC104_SOF_STATUS_RES26 = 26,
2023     IEC104_SOF_STATUS_RES27 = 27,
2024     IEC104_SOF_STATUS_RES28 = 28,
2025     IEC104_SOF_STATUS_RES29 = 29,
2026     IEC104_SOF_STATUS_RES30 = 30,
2027     IEC104_SOF_STATUS_RES31 = 31,
2028 };
2029 
2030 enum Iec104QosQlEnum
2031 {
2032     IEC104_QOS_QL_DEFAULT = 0,
2033     IEC104_QOS_QL_RES1 = 1,
2034     IEC104_QOS_QL_RES2 = 2,
2035     IEC104_QOS_QL_RES3 = 3,
2036     IEC104_QOS_QL_RES4 = 4,
2037     IEC104_QOS_QL_RES5 = 5,
2038     IEC104_QOS_QL_RES6 = 6,
2039     IEC104_QOS_QL_RES7 = 7,
2040     IEC104_QOS_QL_RES8 = 8,
2041     IEC104_QOS_QL_RES9 = 9,
2042     IEC104_QOS_QL_RES10 = 10,
2043     IEC104_QOS_QL_RES11 = 11,
2044     IEC104_QOS_QL_RES12 = 12,
2045     IEC104_QOS_QL_RES13 = 13,
2046     IEC104_QOS_QL_RES14 = 14,
2047     IEC104_QOS_QL_RES15 = 15,
2048     IEC104_QOS_QL_RES16 = 16,
2049     IEC104_QOS_QL_RES17 = 17,
2050     IEC104_QOS_QL_RES18 = 18,
2051     IEC104_QOS_QL_RES19 = 19,
2052     IEC104_QOS_QL_RES20 = 20,
2053     IEC104_QOS_QL_RES21 = 21,
2054     IEC104_QOS_QL_RES22 = 22,
2055     IEC104_QOS_QL_RES23 = 23,
2056     IEC104_QOS_QL_RES24 = 24,
2057     IEC104_QOS_QL_RES25 = 25,
2058     IEC104_QOS_QL_RES26 = 26,
2059     IEC104_QOS_QL_RES27 = 27,
2060     IEC104_QOS_QL_RES28 = 28,
2061     IEC104_QOS_QL_RES29 = 29,
2062     IEC104_QOS_QL_RES30 = 30,
2063     IEC104_QOS_QL_RES31 = 31,
2064     IEC104_QOS_QL_RES32 = 32,
2065     IEC104_QOS_QL_RES33 = 33,
2066     IEC104_QOS_QL_RES34 = 34,
2067     IEC104_QOS_QL_RES35 = 35,
2068     IEC104_QOS_QL_RES36 = 36,
2069     IEC104_QOS_QL_RES37 = 37,
2070     IEC104_QOS_QL_RES38 = 38,
2071     IEC104_QOS_QL_RES39 = 39,
2072     IEC104_QOS_QL_RES40 = 40,
2073     IEC104_QOS_QL_RES41 = 41,
2074     IEC104_QOS_QL_RES42 = 42,
2075     IEC104_QOS_QL_RES43 = 43,
2076     IEC104_QOS_QL_RES44 = 44,
2077     IEC104_QOS_QL_RES45 = 45,
2078     IEC104_QOS_QL_RES46 = 46,
2079     IEC104_QOS_QL_RES47 = 47,
2080     IEC104_QOS_QL_RES48 = 48,
2081     IEC104_QOS_QL_RES49 = 49,
2082     IEC104_QOS_QL_RES50 = 50,
2083     IEC104_QOS_QL_RES51 = 51,
2084     IEC104_QOS_QL_RES52 = 52,
2085     IEC104_QOS_QL_RES53 = 53,
2086     IEC104_QOS_QL_RES54 = 54,
2087     IEC104_QOS_QL_RES55 = 55,
2088     IEC104_QOS_QL_RES56 = 56,
2089     IEC104_QOS_QL_RES57 = 57,
2090     IEC104_QOS_QL_RES58 = 58,
2091     IEC104_QOS_QL_RES59 = 59,
2092     IEC104_QOS_QL_RES60 = 60,
2093     IEC104_QOS_QL_RES61 = 61,
2094     IEC104_QOS_QL_RES62 = 62,
2095     IEC104_QOS_QL_RES63 = 63,
2096     IEC104_QOS_QL_RES64 = 64,
2097     IEC104_QOS_QL_RES65 = 65,
2098     IEC104_QOS_QL_RES66 = 66,
2099     IEC104_QOS_QL_RES67 = 67,
2100     IEC104_QOS_QL_RES68 = 68,
2101     IEC104_QOS_QL_RES69 = 69,
2102     IEC104_QOS_QL_RES70 = 70,
2103     IEC104_QOS_QL_RES71 = 71,
2104     IEC104_QOS_QL_RES72 = 72,
2105     IEC104_QOS_QL_RES73 = 73,
2106     IEC104_QOS_QL_RES74 = 74,
2107     IEC104_QOS_QL_RES75 = 75,
2108     IEC104_QOS_QL_RES76 = 76,
2109     IEC104_QOS_QL_RES77 = 77,
2110     IEC104_QOS_QL_RES78 = 78,
2111     IEC104_QOS_QL_RES79 = 79,
2112     IEC104_QOS_QL_RES80 = 80,
2113     IEC104_QOS_QL_RES81 = 81,
2114     IEC104_QOS_QL_RES82 = 82,
2115     IEC104_QOS_QL_RES83 = 83,
2116     IEC104_QOS_QL_RES84 = 84,
2117     IEC104_QOS_QL_RES85 = 85,
2118     IEC104_QOS_QL_RES86 = 86,
2119     IEC104_QOS_QL_RES87 = 87,
2120     IEC104_QOS_QL_RES88 = 88,
2121     IEC104_QOS_QL_RES89 = 89,
2122     IEC104_QOS_QL_RES90 = 90,
2123     IEC104_QOS_QL_RES91 = 91,
2124     IEC104_QOS_QL_RES92 = 92,
2125     IEC104_QOS_QL_RES93 = 93,
2126     IEC104_QOS_QL_RES94 = 94,
2127     IEC104_QOS_QL_RES95 = 95,
2128     IEC104_QOS_QL_RES96 = 96,
2129     IEC104_QOS_QL_RES97 = 97,
2130     IEC104_QOS_QL_RES98 = 98,
2131     IEC104_QOS_QL_RES99 = 99,
2132     IEC104_QOS_QL_RES100 = 100,
2133     IEC104_QOS_QL_RES101 = 101,
2134     IEC104_QOS_QL_RES102 = 102,
2135     IEC104_QOS_QL_RES103 = 103,
2136     IEC104_QOS_QL_RES104 = 104,
2137     IEC104_QOS_QL_RES105 = 105,
2138     IEC104_QOS_QL_RES106 = 106,
2139     IEC104_QOS_QL_RES107 = 107,
2140     IEC104_QOS_QL_RES108 = 108,
2141     IEC104_QOS_QL_RES109 = 109,
2142     IEC104_QOS_QL_RES110 = 110,
2143     IEC104_QOS_QL_RES111 = 111,
2144     IEC104_QOS_QL_RES112 = 112,
2145     IEC104_QOS_QL_RES113 = 113,
2146     IEC104_QOS_QL_RES114 = 114,
2147     IEC104_QOS_QL_RES115 = 115,
2148     IEC104_QOS_QL_RES116 = 116,
2149     IEC104_QOS_QL_RES117 = 117,
2150     IEC104_QOS_QL_RES118 = 118,
2151     IEC104_QOS_QL_RES119 = 119,
2152     IEC104_QOS_QL_RES120 = 120,
2153     IEC104_QOS_QL_RES121 = 121,
2154     IEC104_QOS_QL_RES122 = 122,
2155     IEC104_QOS_QL_RES123 = 123,
2156     IEC104_QOS_QL_RES124 = 124,
2157     IEC104_QOS_QL_RES125 = 125,
2158     IEC104_QOS_QL_RES126 = 126,
2159     IEC104_QOS_QL_RES127 = 127,
2160 };
2161 
2162 #endif
2163 
2164