Compare commits
865 Commits
Author | SHA1 | Date |
---|---|---|
![]() |
24b5e28904 | 12 months ago |
![]() |
2fc6dc32d1 | 12 months ago |
![]() |
09c57e15f4 | 1 year ago |
![]() |
7d4614ad54 | 1 year ago |
![]() |
c62287c7c3 | 1 year ago |
![]() |
a49d0cc78b | 1 year ago |
![]() |
fd820643c5 | 1 year ago |
![]() |
3bc94bf1bd | 1 year ago |
![]() |
3c29e85b00 | 1 year ago |
![]() |
193b8bf054 | 1 year ago |
![]() |
0f2443a2fa | 1 year ago |
![]() |
7afa40390b | 1 year ago |
![]() |
a66e07deae | 1 year ago |
![]() |
681d1b0e05 | 1 year ago |
![]() |
249df0176a | 2 years ago |
![]() |
cdd0684ffb | 2 years ago |
![]() |
d6c53b1569 | 2 years ago |
![]() |
76e016f59d | 2 years ago |
![]() |
2823184077 | 2 years ago |
![]() |
5b350102de | 2 years ago |
![]() |
8c0a75cee9 | 2 years ago |
![]() |
7442c8da53 | 2 years ago |
![]() |
41e1ddd308 | 2 years ago |
![]() |
6f557c490f | 2 years ago |
![]() |
c83bad2531 | 2 years ago |
![]() |
aacf853876 | 2 years ago |
![]() |
e7c2e37ad4 | 2 years ago |
![]() |
1072d54f13 | 2 years ago |
![]() |
7fee3e5995 | 2 years ago |
![]() |
ec9519a0e7 | 2 years ago |
![]() |
ab8ac8304d | 2 years ago |
![]() |
5012b3e358 | 2 years ago |
![]() |
ec097240a6 | 2 years ago |
![]() |
1f1b005d26 | 2 years ago |
![]() |
f734c450cb | 2 years ago |
![]() |
1d62270730 | 2 years ago |
![]() |
27df38d205 | 2 years ago |
![]() |
23928b2b34 | 2 years ago |
![]() |
37453fd3c1 | 2 years ago |
![]() |
87ba6b0514 | 2 years ago |
![]() |
4a5a092796 | 2 years ago |
![]() |
1c1e3766da | 2 years ago |
![]() |
e51fda3a06 | 2 years ago |
![]() |
6f96104a09 | 2 years ago |
![]() |
d0e0dc22e9 | 2 years ago |
![]() |
30fec0a79f | 2 years ago |
![]() |
684a6ea92e | 2 years ago |
![]() |
dce3a9dab4 | 2 years ago |
![]() |
d658fe89ab | 2 years ago |
![]() |
718b3cda2c | 2 years ago |
![]() |
6cd2eab066 | 2 years ago |
![]() |
f41667367a | 2 years ago |
![]() |
f951ebc08e | 2 years ago |
![]() |
8798c739ba | 2 years ago |
![]() |
097c055f96 | 2 years ago |
![]() |
48b73261c3 | 3 years ago |
![]() |
79a8eaf260 | 3 years ago |
![]() |
76fd58e9be | 3 years ago |
![]() |
a385a74c4d | 3 years ago |
![]() |
b6867c9c88 | 3 years ago |
![]() |
edc1735916 | 3 years ago |
![]() |
8dae8c1cbe | 3 years ago |
![]() |
5f767ad03e | 3 years ago |
![]() |
9b977e2e4f | 3 years ago |
![]() |
880d4918f5 | 3 years ago |
![]() |
68ee9b056a | 3 years ago |
![]() |
27340ef5c5 | 3 years ago |
![]() |
e11f113b98 | 3 years ago |
![]() |
699d75dcd3 | 3 years ago |
![]() |
a657eb7721 | 3 years ago |
![]() |
c630abb8d1 | 3 years ago |
![]() |
19d05f5dc0 | 3 years ago |
![]() |
6904705083 | 3 years ago |
![]() |
bfd87c703d | 3 years ago |
![]() |
559bc76b34 | 3 years ago |
![]() |
c5979072c9 | 3 years ago |
![]() |
cf02b9fa3a | 3 years ago |
![]() |
29a4f498f9 | 3 years ago |
![]() |
28e9e07c7e | 3 years ago |
![]() |
ba18d18c8d | 3 years ago |
![]() |
ce2ce7e96b | 3 years ago |
![]() |
da088a1938 | 3 years ago |
![]() |
ad0bc86908 | 3 years ago |
![]() |
b355b64bf1 | 3 years ago |
![]() |
afc2d1035e | 3 years ago |
![]() |
b6cd6b61e0 | 3 years ago |
![]() |
23d71f322d | 3 years ago |
![]() |
df66698b4d | 3 years ago |
![]() |
91b0e6ed67 | 3 years ago |
![]() |
9da09a22a9 | 3 years ago |
![]() |
98f088a1d3 | 3 years ago |
![]() |
4b5db538fd | 3 years ago |
![]() |
65318c44b6 | 3 years ago |
![]() |
e1e6919411 | 3 years ago |
![]() |
3f8150e391 | 3 years ago |
![]() |
d00fb7fffb | 3 years ago |
![]() |
80f609d5e6 | 3 years ago |
![]() |
10622ba36b | 3 years ago |
![]() |
dd3e2a6870 | 3 years ago |
![]() |
e29736d732 | 3 years ago |
![]() |
d34b3f4f70 | 3 years ago |
![]() |
021b3100ac | 3 years ago |
![]() |
893e298107 | 3 years ago |
![]() |
219111eef1 | 3 years ago |
![]() |
7c06680cba | 3 years ago |
![]() |
a3b04b7bc4 | 3 years ago |
![]() |
fa8e3c0798 | 3 years ago |
![]() |
15398c9ab5 | 3 years ago |
![]() |
1615c8ea9a | 3 years ago |
![]() |
aeb8cb6157 | 3 years ago |
![]() |
4fb8113821 | 3 years ago |
![]() |
30217b41cc | 3 years ago |
![]() |
9424917185 | 3 years ago |
![]() |
22f6a823ea | 3 years ago |
![]() |
8addfc2095 | 3 years ago |
![]() |
4d951e04c5 | 3 years ago |
![]() |
3fe0effcda | 3 years ago |
![]() |
5b4f6f2fd9 | 3 years ago |
![]() |
a4fdf089bb | 3 years ago |
![]() |
b3868a2f9f | 3 years ago |
![]() |
319dc4494b | 3 years ago |
![]() |
a9efd32dbc | 3 years ago |
![]() |
35ac479430 | 3 years ago |
![]() |
00bf70aa8c | 3 years ago |
![]() |
8fe6f0d551 | 3 years ago |
![]() |
7d90a01287 | 3 years ago |
![]() |
9f09152d7c | 3 years ago |
![]() |
03a2137087 | 3 years ago |
![]() |
10a4bc6e76 | 3 years ago |
![]() |
25bcd14618 | 3 years ago |
![]() |
d2b36449c2 | 3 years ago |
![]() |
fd514f32d6 | 3 years ago |
![]() |
cfbe677bc5 | 3 years ago |
![]() |
9032e84415 | 3 years ago |
![]() |
8b43a644b1 | 3 years ago |
![]() |
26bec663d2 | 3 years ago |
![]() |
c76b5dd2da | 3 years ago |
![]() |
bb7c2421cd | 3 years ago |
![]() |
ee948a0c08 | 3 years ago |
![]() |
030ae3f7b5 | 3 years ago |
![]() |
e44a44c9e7 | 3 years ago |
![]() |
3288bc0fc5 | 3 years ago |
![]() |
584a733b2a | 3 years ago |
![]() |
b62060b67f | 3 years ago |
![]() |
5fe49d4618 | 3 years ago |
![]() |
1954da2b78 | 3 years ago |
![]() |
532298c378 | 3 years ago |
![]() |
5ca0cd5512 | 3 years ago |
![]() |
d4312d21ac | 3 years ago |
![]() |
1213b67a5a | 3 years ago |
![]() |
b444fba88c | 3 years ago |
![]() |
bf747f6bea | 3 years ago |
![]() |
e51ef87bf5 | 3 years ago |
![]() |
19f7066c38 | 3 years ago |
![]() |
ee2c461ff0 | 3 years ago |
![]() |
3cb6123a63 | 3 years ago |
![]() |
377d708f4e | 3 years ago |
![]() |
3e5fadce4b | 3 years ago |
![]() |
f60ff65fc4 | 3 years ago |
![]() |
9d9f03585f | 4 years ago |
![]() |
f0651adb36 | 4 years ago |
![]() |
2adb4dec23 | 4 years ago |
![]() |
258651eca8 | 4 years ago |
![]() |
210cf30897 | 4 years ago |
![]() |
77e8144348 | 4 years ago |
![]() |
d7b48a891e | 4 years ago |
![]() |
cb78c0e403 | 4 years ago |
![]() |
398b14e65f | 4 years ago |
![]() |
8aa988068c | 4 years ago |
![]() |
d40b359292 | 4 years ago |
![]() |
1f2da92626 | 4 years ago |
![]() |
ec1678e88a | 4 years ago |
![]() |
c838255c1e | 4 years ago |
![]() |
457b43a6e7 | 4 years ago |
![]() |
c210e086cd | 4 years ago |
![]() |
c7b554beb3 | 4 years ago |
![]() |
f7f3c2ae8f | 4 years ago |
![]() |
19c617c4f3 | 4 years ago |
![]() |
cfa94cbf10 | 4 years ago |
![]() |
96e93c4be3 | 4 years ago |
![]() |
2092f42f80 | 4 years ago |
![]() |
a82964bd66 | 4 years ago |
![]() |
5d1f66d7e6 | 4 years ago |
![]() |
824c9ad5dd | 4 years ago |
![]() |
f98c1a956d | 4 years ago |
![]() |
56847ec171 | 4 years ago |
![]() |
a7362928f4 | 4 years ago |
![]() |
c3191b2864 | 4 years ago |
![]() |
e06b485258 | 4 years ago |
![]() |
81b26f1cb6 | 4 years ago |
![]() |
b374644d30 | 4 years ago |
![]() |
b27681f408 | 4 years ago |
![]() |
d036b09712 | 4 years ago |
![]() |
94563cb9f6 | 4 years ago |
![]() |
83e21e207b | 4 years ago |
![]() |
88148f39ac | 4 years ago |
![]() |
d5ec52ef78 | 4 years ago |
![]() |
8c55ff636d | 4 years ago |
![]() |
aaf893da34 | 4 years ago |
![]() |
32087c47de | 4 years ago |
![]() |
20b99b4ef3 | 4 years ago |
![]() |
8918a442e0 | 4 years ago |
![]() |
8eeb6f06b3 | 4 years ago |
![]() |
de27a6388d | 4 years ago |
![]() |
e0b5ed180f | 4 years ago |
![]() |
92a3b7668d | 4 years ago |
![]() |
9d4fb692fe | 4 years ago |
![]() |
01b1f96590 | 4 years ago |
![]() |
0dc79d4dd8 | 4 years ago |
![]() |
36c65bd2e2 | 4 years ago |
![]() |
7ac0ccc7b6 | 4 years ago |
![]() |
93d8dfc856 | 4 years ago |
![]() |
7861582621 | 4 years ago |
![]() |
434b9f59b7 | 4 years ago |
![]() |
50fc97734e | 4 years ago |
![]() |
89812fd333 | 4 years ago |
![]() |
394bf4ccba | 4 years ago |
![]() |
ce9584d122 | 4 years ago |
![]() |
09c77afee4 | 4 years ago |
![]() |
9b19e88af7 | 4 years ago |
![]() |
856800936f | 4 years ago |
![]() |
a02c63b1de | 4 years ago |
![]() |
76b4e9ed7b | 4 years ago |
![]() |
00b42f969d | 4 years ago |
![]() |
2e18175dac | 4 years ago |
![]() |
ce13002ce1 | 4 years ago |
![]() |
d49c159686 | 4 years ago |
![]() |
472e586a14 | 4 years ago |
![]() |
d7a55eca08 | 4 years ago |
![]() |
ae6941f451 | 4 years ago |
![]() |
6998b7397c | 4 years ago |
![]() |
6f376620d3 | 4 years ago |
![]() |
c621840d42 | 4 years ago |
![]() |
dabff06fe8 | 4 years ago |
![]() |
7c3601cb74 | 4 years ago |
![]() |
6b9437b8c0 | 4 years ago |
![]() |
82e57900fa | 4 years ago |
![]() |
9790630d25 | 4 years ago |
![]() |
263c34f016 | 4 years ago |
![]() |
f259096e12 | 4 years ago |
![]() |
e67cb1af31 | 4 years ago |
![]() |
db5e24bc1a | 4 years ago |
![]() |
ba45973d59 | 4 years ago |
![]() |
f0c1d6348e | 4 years ago |
![]() |
6525a72930 | 4 years ago |
![]() |
c5579758bb | 4 years ago |
![]() |
bb64d9d8fe | 4 years ago |
![]() |
2ace50b712 | 4 years ago |
![]() |
ca58c70342 | 4 years ago |
![]() |
4ffed8de11 | 4 years ago |
![]() |
982b1097fc | 4 years ago |
![]() |
161e88a3ef | 4 years ago |
![]() |
8bec67d8d6 | 4 years ago |
![]() |
78cd0ed391 | 4 years ago |
![]() |
40b8f99201 | 4 years ago |
![]() |
ef1895c2be | 4 years ago |
![]() |
da08489bc3 | 4 years ago |
![]() |
7185c3b8d4 | 4 years ago |
![]() |
de3aba0cb6 | 4 years ago |
![]() |
c8078e3eb1 | 4 years ago |
![]() |
1bb76893a2 | 4 years ago |
![]() |
8b82cd34e1 | 4 years ago |
![]() |
1a09b9548a | 4 years ago |
![]() |
3514e08252 | 4 years ago |
![]() |
8578344e85 | 4 years ago |
![]() |
1b2d194694 | 4 years ago |
![]() |
d1fd0c7e34 | 4 years ago |
![]() |
f866132e84 | 4 years ago |
![]() |
efe4513d11 | 4 years ago |
![]() |
b2f417bdbf | 4 years ago |
![]() |
fcefc746fe | 4 years ago |
![]() |
91bb816621 | 4 years ago |
![]() |
72feb2f614 | 4 years ago |
![]() |
9e6e3487da | 4 years ago |
![]() |
e0b4a720dd | 4 years ago |
![]() |
cb3f460fcf | 4 years ago |
![]() |
530cdc0383 | 4 years ago |
![]() |
f6110c1158 | 4 years ago |
![]() |
5aec4c94b1 | 4 years ago |
![]() |
7540b6a8d7 | 4 years ago |
![]() |
abd26eedca | 4 years ago |
![]() |
cda2eba93b | 4 years ago |
![]() |
ee9d6656b3 | 4 years ago |
![]() |
56bda24641 | 4 years ago |
![]() |
5ba428fa5b | 4 years ago |
![]() |
3532623319 | 4 years ago |
![]() |
c4dcd37449 | 5 years ago |
![]() |
2b1104c0d3 | 5 years ago |
![]() |
bd4bd0fab6 | 5 years ago |
![]() |
4e15343f5b | 5 years ago |
![]() |
f49be0d844 | 5 years ago |
![]() |
ea268b46a7 | 5 years ago |
![]() |
fd3847dcc5 | 5 years ago |
![]() |
d546ebac6f | 5 years ago |
![]() |
ed810fde0f | 5 years ago |
![]() |
e04e424b02 | 5 years ago |
![]() |
7f381b54ba | 5 years ago |
![]() |
0fd1176ede | 5 years ago |
![]() |
91f3ed7989 | 5 years ago |
![]() |
dc22dc76ec | 5 years ago |
![]() |
42bb617841 | 5 years ago |
![]() |
d5d8b70dc2 | 5 years ago |
![]() |
842bc271cd | 5 years ago |
![]() |
cc905b5013 | 5 years ago |
![]() |
9e27ed5a77 | 5 years ago |
![]() |
5512b0f9be | 5 years ago |
![]() |
4dc971ba56 | 5 years ago |
![]() |
60d66e5ba4 | 5 years ago |
![]() |
3984a47324 | 5 years ago |
![]() |
5afa1310f3 | 5 years ago |
![]() |
5e39c94cf3 | 5 years ago |
![]() |
cdd00da057 | 5 years ago |
![]() |
e47601a81e | 5 years ago |
![]() |
b1fc481ab8 | 5 years ago |
![]() |
da9b77af7a | 5 years ago |
![]() |
35713550fb | 5 years ago |
![]() |
fe39cc9b24 | 5 years ago |
![]() |
19f2cbf0e7 | 5 years ago |
![]() |
b0fb3259e5 | 5 years ago |
![]() |
4f0667b597 | 5 years ago |
![]() |
de2ce1d008 | 5 years ago |
![]() |
db1671587e | 5 years ago |
![]() |
9e064ab709 | 5 years ago |
![]() |
23a3b3a371 | 5 years ago |
![]() |
5630275a0d | 5 years ago |
![]() |
8111734f40 | 5 years ago |
![]() |
6c2b9ad473 | 5 years ago |
![]() |
69bf867c41 | 5 years ago |
![]() |
895e74d680 | 5 years ago |
![]() |
db0a7d5e8a | 5 years ago |
![]() |
74a227bdf2 | 5 years ago |
![]() |
5f2e14f712 | 5 years ago |
![]() |
945fe080f3 | 5 years ago |
![]() |
176de25ca0 | 5 years ago |
![]() |
bc29a0b048 | 5 years ago |
![]() |
d08f5a67ac | 5 years ago |
![]() |
96ba766a0a | 5 years ago |
![]() |
8bf76601ea | 5 years ago |
![]() |
474a482766 | 5 years ago |
![]() |
bf27774a86 | 5 years ago |
![]() |
40f8b76ad7 | 5 years ago |
![]() |
4793e298ff | 5 years ago |
![]() |
ae4f940753 | 5 years ago |
![]() |
0879ad0d46 | 5 years ago |
![]() |
c02e99a022 | 5 years ago |
![]() |
3e98fdfa90 | 5 years ago |
![]() |
4deca9a4c0 | 5 years ago |
![]() |
5d704b8026 | 5 years ago |
![]() |
a606848a8b | 5 years ago |
![]() |
7b671f3a01 | 5 years ago |
![]() |
b88c4216c8 | 5 years ago |
![]() |
1f174c3f65 | 5 years ago |
![]() |
8ac9a732df | 5 years ago |
![]() |
2baeb59e61 | 5 years ago |
![]() |
146dbb9057 | 5 years ago |
![]() |
0c9d1b16f8 | 5 years ago |
![]() |
8a55ef47bf | 5 years ago |
![]() |
14f4f1ccf0 | 5 years ago |
![]() |
fb5ed11001 | 5 years ago |
![]() |
a5bcd3c251 | 5 years ago |
![]() |
9348683462 | 5 years ago |
![]() |
cc80bffa69 | 5 years ago |
![]() |
53d8a2f715 | 5 years ago |
![]() |
23da9ba28e | 5 years ago |
![]() |
981c2dd5f3 | 5 years ago |
![]() |
e59aa5521e | 5 years ago |
![]() |
767bc887de | 5 years ago |
![]() |
49cc901263 | 5 years ago |
![]() |
a165d1698d | 5 years ago |
![]() |
3f42387ed7 | 5 years ago |
![]() |
e4fcb923a0 | 5 years ago |
![]() |
00a821e67e | 5 years ago |
![]() |
543d7802f5 | 5 years ago |
![]() |
b27e363372 | 5 years ago |
![]() |
18833799cc | 5 years ago |
![]() |
42802db6f1 | 5 years ago |
![]() |
036f60e4f1 | 5 years ago |
![]() |
07525b598f | 5 years ago |
![]() |
1f56110d32 | 5 years ago |
![]() |
98e7c5816a | 5 years ago |
![]() |
fb9fc7b88b | 5 years ago |
![]() |
7ee278cead | 5 years ago |
![]() |
a095c16139 | 5 years ago |
![]() |
ec5ccb62a0 | 5 years ago |
![]() |
5e520f21b5 | 5 years ago |
![]() |
7e1c2ef18f | 5 years ago |
![]() |
e1ab323c1b | 5 years ago |
![]() |
3a2eea3611 | 5 years ago |
![]() |
fcdb83bc2f | 5 years ago |
![]() |
b04e651623 | 5 years ago |
![]() |
bef1ad21b4 | 5 years ago |
![]() |
bafe27a0e8 | 5 years ago |
![]() |
9809582f96 | 5 years ago |
![]() |
42013e1550 | 5 years ago |
![]() |
0b58716ea3 | 5 years ago |
![]() |
3e1a23a6d0 | 5 years ago |
![]() |
aabe20031f | 5 years ago |
![]() |
69e359b03f | 5 years ago |
![]() |
a17e9603e0 | 5 years ago |
![]() |
2bc47a6a6c | 5 years ago |
![]() |
131fcf5236 | 5 years ago |
![]() |
ed8c8b3ac7 | 5 years ago |
![]() |
e4b2849894 | 5 years ago |
![]() |
6a3c66eafa | 5 years ago |
![]() |
ee4da06690 | 5 years ago |
![]() |
cbd5c0b36f | 5 years ago |
![]() |
504c260667 | 5 years ago |
![]() |
9ab37e9836 | 5 years ago |
![]() |
805d73b86f | 5 years ago |
![]() |
9ac8192bae | 5 years ago |
![]() |
3e83cd6194 | 5 years ago |
![]() |
34647c6876 | 5 years ago |
![]() |
401a436c95 | 5 years ago |
![]() |
473eec8464 | 5 years ago |
![]() |
f5b5c0d3ad | 5 years ago |
![]() |
dcbd9f94ab | 5 years ago |
![]() |
172883478a | 5 years ago |
![]() |
30f98e54cb | 5 years ago |
![]() |
ca97f2548f | 5 years ago |
![]() |
7bac935648 | 5 years ago |
![]() |
7c68e3e3f6 | 5 years ago |
![]() |
c2c7c7171e | 5 years ago |
![]() |
649db2b3d6 | 5 years ago |
![]() |
b857e4c4ec | 5 years ago |
![]() |
88acbd49c4 | 5 years ago |
![]() |
0129032f08 | 5 years ago |
![]() |
cc22c69fb1 | 5 years ago |
![]() |
24a380c845 | 5 years ago |
![]() |
8bc7b75e11 | 5 years ago |
![]() |
2467457b5b | 5 years ago |
![]() |
80d11fbf78 | 5 years ago |
![]() |
4ee5891388 | 5 years ago |
![]() |
2f5817e0ac | 5 years ago |
![]() |
920eabe31f | 5 years ago |
![]() |
1c2db6e3be | 5 years ago |
![]() |
004789cf39 | 5 years ago |
![]() |
4a3702112e | 5 years ago |
![]() |
27ae0a5c0f | 5 years ago |
![]() |
69d93f398c | 5 years ago |
![]() |
de6886c6f3 | 5 years ago |
![]() |
cf7dbcc612 | 5 years ago |
![]() |
02f03aea2f | 5 years ago |
![]() |
7ece9922ed | 5 years ago |
![]() |
092d8786ac | 5 years ago |
![]() |
538b9698bc | 5 years ago |
![]() |
c4de14eb45 | 5 years ago |
![]() |
d38e590c99 | 5 years ago |
![]() |
5f02ea1661 | 5 years ago |
![]() |
ede2c7766c | 5 years ago |
![]() |
801d43e118 | 5 years ago |
![]() |
a7d744d55d | 5 years ago |
![]() |
d85b7ac777 | 5 years ago |
![]() |
b3c5ecdcf2 | 5 years ago |
![]() |
3bf0e9a689 | 5 years ago |
![]() |
9ca6d696c3 | 5 years ago |
![]() |
83e8e14603 | 5 years ago |
![]() |
9b5c45a0b3 | 5 years ago |
![]() |
db5740db0e | 5 years ago |
![]() |
0e184389b9 | 5 years ago |
![]() |
b6b94b0438 | 5 years ago |
![]() |
e1eb09d55b | 5 years ago |
![]() |
9c2942a261 | 5 years ago |
![]() |
ae66945751 | 5 years ago |
![]() |
1fcbad0b65 | 5 years ago |
![]() |
d55afdfb92 | 5 years ago |
![]() |
12d703e453 | 5 years ago |
![]() |
94dcbb0119 | 5 years ago |
![]() |
b0fbf9f3a3 | 5 years ago |
![]() |
d42f96ee97 | 5 years ago |
![]() |
7e4e396403 | 5 years ago |
![]() |
a6bad96d25 | 5 years ago |
![]() |
0bc014580a | 5 years ago |
![]() |
8e95e7dbb8 | 5 years ago |
![]() |
c4a5fd2f27 | 5 years ago |
![]() |
b0bce92073 | 5 years ago |
![]() |
73f1a98b4a | 5 years ago |
![]() |
994eea4b9a | 5 years ago |
![]() |
cdf371e92e | 5 years ago |
![]() |
cc88bea491 | 5 years ago |
![]() |
cc08420e50 | 5 years ago |
![]() |
97e65d5743 | 5 years ago |
![]() |
d798814fb4 | 5 years ago |
![]() |
1744616866 | 5 years ago |
![]() |
4871989658 | 5 years ago |
![]() |
95f751ef63 | 5 years ago |
![]() |
6a2db3fe46 | 5 years ago |
![]() |
4a15e9987b | 5 years ago |
![]() |
fa3c5dd256 | 5 years ago |
![]() |
f4957cf62a | 5 years ago |
![]() |
0d4930ac25 | 5 years ago |
![]() |
9526b6aece | 5 years ago |
![]() |
efe889d567 | 6 years ago |
![]() |
ff53028ec4 | 6 years ago |
![]() |
29efa333f8 | 6 years ago |
![]() |
cb8f159914 | 6 years ago |
![]() |
fd84d21c10 | 6 years ago |
![]() |
bfcb65eabc | 6 years ago |
![]() |
c7f7989b85 | 6 years ago |
![]() |
0ba4a70d33 | 6 years ago |
![]() |
bfef9ce5e9 | 6 years ago |
![]() |
09b23aaa74 | 6 years ago |
![]() |
ae07c77d39 | 6 years ago |
![]() |
2dba040c1a | 6 years ago |
![]() |
922f3055b4 | 6 years ago |
![]() |
800c76c50e | 6 years ago |
![]() |
3fd4fed886 | 6 years ago |
![]() |
4aaced2639 | 6 years ago |
![]() |
4dede9b8a1 | 6 years ago |
![]() |
d8153483b5 | 6 years ago |
![]() |
3a248a4f20 | 6 years ago |
![]() |
0c83507727 | 6 years ago |
![]() |
7d22aba900 | 6 years ago |
![]() |
85506b994d | 6 years ago |
![]() |
0a51f2688d | 6 years ago |
![]() |
ca43b02095 | 6 years ago |
![]() |
757dd4240d | 6 years ago |
![]() |
8726bb19d1 | 6 years ago |
![]() |
94bcd9e2e2 | 6 years ago |
![]() |
0e71091830 | 6 years ago |
![]() |
0be1a98d51 | 6 years ago |
![]() |
e954529117 | 6 years ago |
![]() |
e2d3ef2c72 | 6 years ago |
![]() |
4bbfd43f2e | 6 years ago |
![]() |
ac008c2e76 | 6 years ago |
![]() |
33db13de16 | 6 years ago |
![]() |
d0da45be41 | 6 years ago |
![]() |
d984573067 | 6 years ago |
![]() |
b4b74c69a4 | 6 years ago |
![]() |
37d43fe8d4 | 6 years ago |
![]() |
d20da7c15d | 6 years ago |
![]() |
c71015f240 | 6 years ago |
![]() |
1831be663e | 6 years ago |
![]() |
d86055173d | 6 years ago |
![]() |
abcf93416f | 6 years ago |
![]() |
e834bd0cf6 | 6 years ago |
![]() |
f788256247 | 6 years ago |
![]() |
df0e7c08df | 6 years ago |
![]() |
b82a78db46 | 6 years ago |
![]() |
8991954e3c | 6 years ago |
![]() |
18c2e30f87 | 6 years ago |
![]() |
0237c9b95c | 6 years ago |
![]() |
925c19bff6 | 6 years ago |
![]() |
9f86812002 | 6 years ago |
![]() |
afe9afafc0 | 6 years ago |
![]() |
d6bf4047e1 | 6 years ago |
![]() |
7cff085bf0 | 6 years ago |
![]() |
b4c7cefb15 | 6 years ago |
![]() |
c23a698c8d | 6 years ago |
![]() |
118a731b36 | 6 years ago |
![]() |
7d1a552cde | 6 years ago |
![]() |
88fce24b83 | 6 years ago |
![]() |
320f41fc1f | 6 years ago |
![]() |
23e381fa76 | 6 years ago |
![]() |
6c53924c05 | 6 years ago |
![]() |
8c1b75b382 | 6 years ago |
![]() |
6cbadb4b45 | 6 years ago |
![]() |
2dbd775fe1 | 6 years ago |
![]() |
881ebac3dc | 6 years ago |
![]() |
5fbb67c44c | 6 years ago |
![]() |
6738215c8f | 6 years ago |
![]() |
9192e5d21b | 6 years ago |
![]() |
1120a76ecd | 6 years ago |
![]() |
5bd03b0611 | 6 years ago |
![]() |
cee97f7676 | 6 years ago |
![]() |
11d1a5ca6d | 6 years ago |
![]() |
3b32c14870 | 6 years ago |
![]() |
a03f57c0a7 | 6 years ago |
![]() |
c988b78e5f | 6 years ago |
![]() |
16c7124c2b | 6 years ago |
![]() |
3a820f3546 | 6 years ago |
![]() |
b6d8dfc69c | 6 years ago |
![]() |
7ed8516344 | 6 years ago |
![]() |
a39397d21d | 6 years ago |
![]() |
8b6e4b0b29 | 6 years ago |
![]() |
c223b1c2b5 | 6 years ago |
![]() |
17205ed874 | 6 years ago |
![]() |
aad53f380e | 6 years ago |
![]() |
8bbc905533 | 6 years ago |
![]() |
69729bd8a0 | 6 years ago |
![]() |
939476e52a | 6 years ago |
![]() |
eaaaa2b0a5 | 6 years ago |
![]() |
547d5118e0 | 6 years ago |
![]() |
5e16971bbf | 6 years ago |
![]() |
6f7df75d85 | 6 years ago |
![]() |
ec947b234e | 6 years ago |
![]() |
6e9047916c | 6 years ago |
![]() |
e4c3875e3e | 6 years ago |
![]() |
83f9f1eaa6 | 6 years ago |
![]() |
31e183d357 | 6 years ago |
![]() |
3242f147be | 6 years ago |
![]() |
903abe0b6d | 6 years ago |
![]() |
320f511d33 | 6 years ago |
![]() |
d06ab546a9 | 6 years ago |
![]() |
ebb0f761d2 | 6 years ago |
![]() |
9a97519815 | 6 years ago |
![]() |
1549367eed | 6 years ago |
![]() |
e7ece50f08 | 6 years ago |
![]() |
cba8bf5714 | 6 years ago |
![]() |
236a773365 | 6 years ago |
![]() |
c7d0f88ce2 | 6 years ago |
![]() |
9c58a886c5 | 6 years ago |
![]() |
119b3d71f7 | 6 years ago |
![]() |
ee3d4f0164 | 6 years ago |
![]() |
4254af3ff9 | 6 years ago |
![]() |
dfaae6662d | 6 years ago |
![]() |
241ab5a33d | 6 years ago |
![]() |
6b2404e80b | 6 years ago |
![]() |
46d7f6ff2d | 6 years ago |
![]() |
3391f4c139 | 6 years ago |
![]() |
74d78d0618 | 6 years ago |
![]() |
cbd0008f48 | 6 years ago |
![]() |
88849e1663 | 6 years ago |
![]() |
70ec56a0b2 | 6 years ago |
![]() |
2cf288fbeb | 6 years ago |
![]() |
57f6df3c3a | 6 years ago |
![]() |
2bfd0fd0ef | 6 years ago |
![]() |
0b181ae22c | 6 years ago |
![]() |
01ea43e95f | 6 years ago |
![]() |
486c46229f | 6 years ago |
![]() |
0d025800b4 | 6 years ago |
![]() |
965cebbe2d | 6 years ago |
![]() |
f34cdb24e7 | 6 years ago |
![]() |
84fcfbbd22 | 6 years ago |
![]() |
4c123c0c3c | 6 years ago |
![]() |
834291e7c7 | 6 years ago |
![]() |
73417cdbf2 | 6 years ago |
![]() |
b909907041 | 6 years ago |
![]() |
bac41913c1 | 6 years ago |
![]() |
d4304e0a38 | 6 years ago |
![]() |
4f59099c59 | 6 years ago |
![]() |
0d5fa50947 | 6 years ago |
![]() |
60741394a3 | 6 years ago |
![]() |
8f5b501d75 | 6 years ago |
![]() |
f5236f84fc | 6 years ago |
![]() |
4b4a85dcc2 | 6 years ago |
![]() |
2e9761c541 | 6 years ago |
![]() |
c2d73c3fe8 | 6 years ago |
![]() |
7cb69c983a | 6 years ago |
![]() |
daff495246 | 6 years ago |
![]() |
8099734f11 | 6 years ago |
![]() |
6c14425ca8 | 6 years ago |
![]() |
5a3c3ba4b3 | 6 years ago |
![]() |
28e2acbd33 | 6 years ago |
![]() |
f0df571f42 | 6 years ago |
![]() |
a9fa07a7d4 | 6 years ago |
![]() |
544b301861 | 6 years ago |
![]() |
2911781070 | 6 years ago |
![]() |
38d67a4e69 | 6 years ago |
![]() |
ebc71d9731 | 6 years ago |
![]() |
16c061b4df | 6 years ago |
![]() |
5a83af9206 | 7 years ago |
![]() |
6e9a794047 | 7 years ago |
![]() |
d376370aaa | 7 years ago |
![]() |
a3c2c4652e | 7 years ago |
![]() |
c98a2b0baa | 7 years ago |
![]() |
95cf87ebb4 | 7 years ago |
![]() |
994484d1a6 | 7 years ago |
![]() |
ecdbb8fcff | 7 years ago |
![]() |
1f144a008e | 7 years ago |
![]() |
26a45a078b | 7 years ago |
![]() |
9f03b5d3b8 | 7 years ago |
![]() |
0cddcb7d12 | 7 years ago |
![]() |
8ffbd9f265 | 7 years ago |
![]() |
ac14a4722d | 7 years ago |
![]() |
0d2775742a | 7 years ago |
![]() |
93d8bfb19d | 7 years ago |
![]() |
0308f87b85 | 7 years ago |
![]() |
9f8d52005b | 7 years ago |
![]() |
f2c811c7c7 | 7 years ago |
![]() |
287769dcba | 7 years ago |
![]() |
b35a566145 | 7 years ago |
![]() |
0dff4286aa | 7 years ago |
![]() |
0421ea2101 | 7 years ago |
![]() |
9ed1510223 | 7 years ago |
![]() |
732ad79070 | 7 years ago |
![]() |
0b2d97c738 | 7 years ago |
![]() |
9959158995 | 7 years ago |
![]() |
b6be355a99 | 7 years ago |
![]() |
e51b676414 | 7 years ago |
![]() |
5aa78a8b18 | 7 years ago |
![]() |
88b74cfab8 | 7 years ago |
![]() |
a81b76c5e3 | 7 years ago |
![]() |
9309cb78de | 7 years ago |
![]() |
199d091c6d | 7 years ago |
![]() |
0a27ec758f | 7 years ago |
![]() |
952f12bffb | 7 years ago |
![]() |
452abd7dbf | 7 years ago |
![]() |
6af7973b09 | 7 years ago |
![]() |
46f87a1656 | 7 years ago |
![]() |
3d8ab44a49 | 7 years ago |
![]() |
1c461009c2 | 7 years ago |
![]() |
87cac8dc00 | 7 years ago |
![]() |
4bd8b40b6c | 7 years ago |
![]() |
01933c415a | 7 years ago |
![]() |
1434f3e345 | 7 years ago |
![]() |
d9cb36817a | 7 years ago |
![]() |
4f1dd17752 | 7 years ago |
![]() |
832bb5e9f1 | 7 years ago |
![]() |
92c3d3adb8 | 7 years ago |
![]() |
256f55aaef | 7 years ago |
![]() |
821b065453 | 7 years ago |
![]() |
b4eab23c12 | 7 years ago |
![]() |
9826749400 | 7 years ago |
![]() |
5e35e6694b | 7 years ago |
![]() |
b6c9a56d4a | 7 years ago |
![]() |
e252715aa9 | 7 years ago |
![]() |
4157c9c5da | 7 years ago |
![]() |
bbb56a16a3 | 7 years ago |
![]() |
3b577fbf3a | 7 years ago |
![]() |
1d61afaa8b | 7 years ago |
![]() |
6a7266da93 | 7 years ago |
![]() |
0c006f2892 | 7 years ago |
![]() |
afab66cb4d | 7 years ago |
![]() |
cd50bc63b2 | 7 years ago |
![]() |
388337a60d | 7 years ago |
![]() |
5ed474a44a | 7 years ago |
![]() |
ef076efe9f | 7 years ago |
![]() |
3e30910319 | 7 years ago |
![]() |
0842097b7e | 7 years ago |
![]() |
e9936b1d0e | 7 years ago |
![]() |
4dc0f9c987 | 7 years ago |
![]() |
618a84d37c | 7 years ago |
![]() |
91c22b3193 | 7 years ago |
![]() |
cad88b67a1 | 7 years ago |
![]() |
89d623866e | 7 years ago |
![]() |
aca462c761 | 7 years ago |
![]() |
f78f338b49 | 7 years ago |
![]() |
e5be822032 | 7 years ago |
![]() |
4ba6d9903d | 7 years ago |
![]() |
d0f4c06d62 | 7 years ago |
![]() |
154b3623e7 | 7 years ago |
![]() |
d5df360f3a | 7 years ago |
![]() |
a817b3d3c6 | 7 years ago |
![]() |
2c5fb89449 | 7 years ago |
![]() |
33ce512c47 | 7 years ago |
![]() |
46211a01e7 | 7 years ago |
![]() |
e12113acde | 7 years ago |
![]() |
43e0fb4d05 | 7 years ago |
![]() |
1cc350ed4a | 7 years ago |
![]() |
c04b4e928d | 7 years ago |
![]() |
5ef3acc3e6 | 7 years ago |
![]() |
8f4af64685 | 7 years ago |
![]() |
1eaf43ac8b | 7 years ago |
![]() |
14e3a9668c | 7 years ago |
![]() |
f644b8d777 | 7 years ago |
![]() |
23208aa066 | 7 years ago |
![]() |
c9fe177a87 | 7 years ago |
![]() |
861c5b244b | 7 years ago |
![]() |
cf63ab1269 | 7 years ago |
![]() |
916f9da92e | 7 years ago |
![]() |
0ff713b7f1 | 7 years ago |
![]() |
836892849c | 7 years ago |
![]() |
e90d5d44fa | 7 years ago |
![]() |
1d120f87de | 7 years ago |
![]() |
44d8ad8d15 | 7 years ago |
![]() |
7415fbc8da | 7 years ago |
![]() |
871c63ad68 | 7 years ago |
![]() |
18cc25f1ff | 7 years ago |
![]() |
9925d98101 | 7 years ago |
![]() |
ed75aa3f46 | 7 years ago |
![]() |
46437cdbe1 | 7 years ago |
![]() |
7ec38e9615 | 7 years ago |
![]() |
2b7dc5c5fe | 7 years ago |
![]() |
5201473262 | 7 years ago |
![]() |
e6884d721b | 7 years ago |
![]() |
a14d39e2e2 | 7 years ago |
![]() |
ea20cb2081 | 7 years ago |
![]() |
9eb8b17002 | 7 years ago |
![]() |
e8ea5f142f | 7 years ago |
![]() |
54d8fb74d7 | 7 years ago |
![]() |
a5e15003ce | 7 years ago |
![]() |
56d7ee4f0b | 7 years ago |
![]() |
70c1cd691d | 7 years ago |
![]() |
8d45d44cc2 | 7 years ago |
![]() |
4d32e3c1ae | 7 years ago |
![]() |
069646f954 | 7 years ago |
![]() |
d9800a5f74 | 7 years ago |
![]() |
9d26990313 | 7 years ago |
![]() |
7767e282d6 | 7 years ago |
![]() |
fc1d62d1a7 | 7 years ago |
![]() |
c80a87d5e8 | 7 years ago |
![]() |
7600c0f3cf | 7 years ago |
![]() |
aa7e89684e | 7 years ago |
![]() |
5692d0246b | 7 years ago |
![]() |
80ce9c8967 | 7 years ago |
![]() |
026357b5eb | 7 years ago |
![]() |
6ba363bd4a | 7 years ago |
![]() |
bed67e4f50 | 7 years ago |
![]() |
aa86d3b259 | 7 years ago |
![]() |
a0adcf94e7 | 7 years ago |
![]() |
2f0211b188 | 7 years ago |
![]() |
c0ce64c758 | 7 years ago |
![]() |
a830fc3cfb | 7 years ago |
![]() |
e905bc242b | 7 years ago |
![]() |
77f97dc006 | 7 years ago |
![]() |
51c29fe9a7 | 7 years ago |
![]() |
e980a519ae | 7 years ago |
![]() |
d108dae115 | 7 years ago |
![]() |
2585aab516 | 7 years ago |
![]() |
d0061fce96 | 7 years ago |
![]() |
8b957b8f82 | 7 years ago |
![]() |
eef34cf40e | 7 years ago |
![]() |
26af0d93c2 | 7 years ago |
![]() |
6199da1e55 | 7 years ago |
![]() |
14c8434201 | 7 years ago |
![]() |
e7905cc16b | 7 years ago |
![]() |
020b1f40aa | 7 years ago |
![]() |
713ca54cd0 | 7 years ago |
![]() |
6618093f7a | 7 years ago |
![]() |
3f07176dc3 | 7 years ago |
![]() |
58b4d6c107 | 7 years ago |
![]() |
0b51d6841a | 7 years ago |
![]() |
02cda48128 | 7 years ago |
![]() |
9995a7cfc4 | 7 years ago |
![]() |
4d8e256967 | 7 years ago |
![]() |
71493036dc | 7 years ago |
![]() |
0a3d86601b | 7 years ago |
![]() |
27e883a1bc | 7 years ago |
![]() |
143bc977c0 | 7 years ago |
![]() |
af35ee17fa | 7 years ago |
![]() |
e6765585cf | 7 years ago |
![]() |
de04f3630b | 7 years ago |
![]() |
7d890b7450 | 7 years ago |
![]() |
210a81d14e | 7 years ago |
![]() |
2f71744079 | 7 years ago |
![]() |
dc4fbd76ad | 7 years ago |
![]() |
c36050f455 | 7 years ago |
![]() |
b5cb80868c | 7 years ago |
![]() |
eacdfa953d | 7 years ago |
![]() |
47d34702b1 | 7 years ago |
![]() |
2e160d6279 | 7 years ago |
![]() |
77c4d3ae03 | 7 years ago |
![]() |
894ea2e726 | 7 years ago |
![]() |
5de644b3bc | 7 years ago |
![]() |
ab51835377 | 7 years ago |
![]() |
a7cb12f5b0 | 7 years ago |
![]() |
4605c60a3b | 7 years ago |
![]() |
2119503cbf | 7 years ago |
![]() |
5064c9c31c | 7 years ago |
![]() |
2c193fed6e | 7 years ago |
![]() |
9cb032138b | 7 years ago |
![]() |
a54c5ebca2 | 7 years ago |
![]() |
9fce1a342a | 7 years ago |
![]() |
49d06cc9d3 | 7 years ago |
![]() |
38ee7b43ef | 7 years ago |
![]() |
56046beebe | 7 years ago |
![]() |
48b14619a3 | 7 years ago |
![]() |
cc24c86484 | 7 years ago |
![]() |
c28d06f4d8 | 7 years ago |
![]() |
7cb5ff670a | 7 years ago |
![]() |
fe4ae3f38f | 7 years ago |
![]() |
9a8415b3e6 | 7 years ago |
![]() |
7ff48e85c5 | 7 years ago |
![]() |
2c9a4bb088 | 7 years ago |
![]() |
9e15185c74 | 7 years ago |
![]() |
605913b0c1 | 7 years ago |
![]() |
a451731454 | 7 years ago |
![]() |
2e434d8d47 | 7 years ago |
![]() |
1ac2a7390f | 7 years ago |
![]() |
cab1f783fd | 7 years ago |
![]() |
eb97d64ae2 | 7 years ago |
![]() |
731608e5b0 | 7 years ago |
![]() |
da17f8210a | 7 years ago |
![]() |
cf049071cc | 7 years ago |
![]() |
76ab1ec9f6 | 7 years ago |
@ -0,0 +1,26 @@
|
||||
name: CIFuzz
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
Fuzzing:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Build Fuzzers
|
||||
id: build
|
||||
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
||||
with:
|
||||
oss-fuzz-project-name: 'libiec61850'
|
||||
dry-run: false
|
||||
language: c
|
||||
- name: Run Fuzzers
|
||||
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
||||
with:
|
||||
oss-fuzz-project-name: 'libiec61850'
|
||||
fuzz-seconds: 300
|
||||
dry-run: false
|
||||
language: c
|
||||
- name: Upload Crash
|
||||
uses: actions/upload-artifact@v3
|
||||
if: failure() && steps.build.outcome == 'success'
|
||||
with:
|
||||
name: artifacts
|
||||
path: ./out/artifacts
|
@ -0,0 +1,12 @@
|
||||
name: Greetings
|
||||
|
||||
on: [pull_request, issues]
|
||||
|
||||
jobs:
|
||||
greeting:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/first-interaction@v1
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
pr-message: 'Push requests and other code contributions can only be accepted from authorized persons that have signed our contributor license agreement(CLA). When in doubt please write to info@libiec61850.com.'
|
@ -0,0 +1,2 @@
|
||||
build/
|
||||
/Debug/
|
@ -0,0 +1,5 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please report security issues to `info@libiec61850.com`
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{0DA95476-B149-450B-AC36-01CEECFC1A43}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>clientexamplesettinggroup</RootNamespace>
|
||||
<AssemblyName>client-example-setting-group</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850forCSharp\IEC61850.NET.csproj">
|
||||
<Project>{C35D624E-5506-4560-8074-1728F1FA1A4D}</Project>
|
||||
<Name>IEC61850.NET</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -0,0 +1,26 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\Control.cs" Link="Control.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\DataSet.cs" Link="DataSet.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\GooseControlBlock.cs" Link="GooseControlBlock.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\GooseSubscriber.cs" Link="GooseSubscriber.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\IEC61850ClientAPI.cs" Link="IEC61850ClientAPI.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\IEC61850CommonAPI.cs" Link="IEC61850CommonAPI.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\IEC61850ServerAPI.cs" Link="IEC61850ServerAPI.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\IedServerConfig.cs" Link="IedServerConfig.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\IsoConnectionParameters.cs" Link="IsoConnectionParameters.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\MmsValue.cs" Link="MmsValue.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\MmsVariableSpecification.cs" Link="MmsVariableSpecification.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\ReportControlBlock.cs" Link="ReportControlBlock.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\Reporting.cs" Link="Reporting.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\SampledValuesControlBlock.cs" Link="SampledValuesControlBlock.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\SampledValuesSubscriber.cs" Link="SampledValuesSubscriber.cs" />
|
||||
<Compile Include="..\..\..\IEC61850forCSharp\TLS.cs" Link="TLS.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\example1\Main.cs" Link="Main.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\example2\WriteValueExample.cs" Link="WriteValueExample.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\example3\Main.cs" Link="Main.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\authenticate\Main.cs" Link="Main.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\control\ControlExample.cs" Link="ControlExample.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\datasets\DataSetExample.cs" Link="DataSetExample.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\files\FileServicesExample.cs" Link="FileServicesExample.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\log_client\Program.cs" Link="Program.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\model_browsing\ModelBrowsing.cs" Link="ModelBrowsing.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\reporting\ReportingExample.cs" Link="ReportingExample.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,28 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\tls_client_example\Program.cs" Link="Program.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="..\..\..\tls_client_example\client1-key.pem" Link="client1-key.pem">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="..\..\..\tls_client_example\client1.cer" Link="client1.cer">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="..\..\..\tls_client_example\root.cer" Link="root.cer">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\goose_subscriber\Program.cs" Link="Program.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\server1\Program.cs" Link="Program.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="..\..\..\server1\model.cfg" Link="model.cfg">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\sv_subscriber\Program.cs" Link="Program.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
||||
</startup>
|
||||
</configuration>
|
@ -0,0 +1,217 @@
|
||||
MODEL(simpleIO){
|
||||
LD(GenericIO){
|
||||
LN(LLN0){
|
||||
DO(Mod 0){
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Health 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(NamPlt 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
DA(swRev 0 20 5 0 0);
|
||||
DA(d 0 20 5 0 0);
|
||||
DA(configRev 0 20 5 0 0);
|
||||
DA(ldNs 0 20 11 0 0);
|
||||
}
|
||||
DS(Events){
|
||||
DE(GGIO1$ST$SPCSO1$stVal);
|
||||
DE(GGIO1$ST$SPCSO2$stVal);
|
||||
DE(GGIO1$ST$SPCSO3$stVal);
|
||||
DE(GGIO1$ST$SPCSO4$stVal);
|
||||
}
|
||||
DS(Events2){
|
||||
DE(GGIO1$ST$SPCSO1);
|
||||
DE(GGIO1$ST$SPCSO2);
|
||||
DE(GGIO1$ST$SPCSO3);
|
||||
DE(GGIO1$ST$SPCSO4);
|
||||
}
|
||||
DS(Events3){
|
||||
DE(GGIO1$ST$SPCSO1$stVal);
|
||||
DE(GGIO1$ST$SPCSO1$q);
|
||||
DE(GGIO1$ST$SPCSO2$stVal);
|
||||
DE(GGIO1$ST$SPCSO2$q);
|
||||
DE(GGIO1$ST$SPCSO3$stVal);
|
||||
DE(GGIO1$ST$SPCSO3$q);
|
||||
DE(GGIO1$ST$SPCSO4$stVal);
|
||||
DE(GGIO1$ST$SPCSO4$q);
|
||||
}
|
||||
DS(AnalogValues){
|
||||
DE(GGIO1$MX$AnIn1);
|
||||
DE(GGIO1$MX$AnIn2);
|
||||
DE(GGIO1$MX$AnIn3);
|
||||
DE(GGIO1$MX$AnIn4);
|
||||
}
|
||||
RC(EventsRCB01 Events 0 Events 1 24 175 50 1000);
|
||||
RC(AnalogValuesRCB01 AnalogValues 0 AnalogValues 1 24 175 50 1000);
|
||||
GC(gcbEvents events Events3 2 0 1000 3000 ){
|
||||
PA(4 1 4096 010ccd010001);
|
||||
}
|
||||
GC(gcbAnalogValues analog AnalogValues 2 0 -1 -1 ){
|
||||
PA(4 1 4096 010ccd010001);
|
||||
}
|
||||
}
|
||||
LN(LPHD1){
|
||||
DO(PhyNam 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
}
|
||||
DO(PhyHealth 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Proxy 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
}
|
||||
LN(GGIO1){
|
||||
DO(Mod 0){
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Health 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(NamPlt 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
DA(swRev 0 20 5 0 0);
|
||||
DA(d 0 20 5 0 0);
|
||||
}
|
||||
DO(AnIn1 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn2 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn3 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn4 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(SPCSO1 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SPCSO2 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SPCSO3 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SPCSO4 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind1 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind2 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind3 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind4 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,261 +1,275 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<SCL xmlns="http://www.iec.ch/61850/2003/SCL">
|
||||
<Header id="" nameStructure="IEDName">
|
||||
</Header>
|
||||
<Communication>
|
||||
<SubNetwork name="subnetwork1" type="8-MMS">
|
||||
<Text>Station bus</Text>
|
||||
<BitRate unit="b/s">10</BitRate>
|
||||
<ConnectedAP iedName="simpleIO" apName="accessPoint1">
|
||||
<Address>
|
||||
<P type="IP">10.0.0.2</P>
|
||||
<P type="IP-SUBNET">255.255.255.0</P>
|
||||
<P type="IP-GATEWAY">10.0.0.1</P>
|
||||
<P type="OSI-TSEL">0001</P>
|
||||
<P type="OSI-PSEL">00000001</P>
|
||||
<P type="OSI-SSEL">0001</P>
|
||||
</Address>
|
||||
<GSE ldInst="GenericIO" cbName="gcbEvents">
|
||||
<Address>
|
||||
<P type="VLAN-ID">1</P>
|
||||
<P type="VLAN-PRIORITY">4</P>
|
||||
<P type="MAC-Address">01-0c-cd-01-00-01</P>
|
||||
<P type="APPID">1000</P>
|
||||
</Address>
|
||||
</GSE>
|
||||
<GSE ldInst="GenericIO" cbName="gcbAnalogValues">
|
||||
<Address>
|
||||
<P type="VLAN-ID">1</P>
|
||||
<P type="VLAN-PRIORITY">4</P>
|
||||
<P type="MAC-Address">01-0c-cd-01-00-01</P>
|
||||
<P type="APPID">1000</P>
|
||||
</Address>
|
||||
</GSE>
|
||||
</ConnectedAP>
|
||||
</SubNetwork>
|
||||
</Communication>
|
||||
<IED name="simpleIO">
|
||||
<Services>
|
||||
<DynAssociation />
|
||||
<GetDirectory />
|
||||
<GetDataObjectDefinition />
|
||||
<GetDataSetValue />
|
||||
<DataSetDirectory />
|
||||
<ReadWrite />
|
||||
<GetCBValues />
|
||||
<ConfLNs fixPrefix="true" fixLnInst="true" />
|
||||
<GOOSE max="5" />
|
||||
<GSSE max="5" />
|
||||
<FileHandling />
|
||||
<GSEDir />
|
||||
<TimerActivatedControl />
|
||||
</Services>
|
||||
<AccessPoint name="accessPoint1">
|
||||
<Server>
|
||||
<Authentication />
|
||||
<LDevice inst="GenericIO">
|
||||
<LN0 lnClass="LLN0" lnType="LLN01" inst="">
|
||||
<DataSet name="Events" desc="Events">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO1" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO2" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO3" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO4" daName="stVal" />
|
||||
</DataSet>
|
||||
|
||||
<DataSet name="Events2" desc="Events2">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO1" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO2" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO3" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO4" />
|
||||
</DataSet>
|
||||
|
||||
<DataSet name="AnalogValues" desc="analog values">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn1" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn2" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn3" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn4" />
|
||||
</DataSet>
|
||||
|
||||
<ReportControl name="EventsRCB" confRev="1" datSet="Events" rptID="Events" buffered="false" intgPd="1000" bufTime="50">
|
||||
<TrgOps period="true" />
|
||||
<OptFields seqNum="true" timeStamp="true" dataSet="true" reasonCode="true" entryID="true" configRef="true" />
|
||||
<RptEnabled max="1" />
|
||||
</ReportControl>
|
||||
<ReportControl name="AnalogValuesRCB" confRev="1" datSet="AnalogValues" rptID="AnalogValues" buffered="false" intgPd="1000" bufTime="50">
|
||||
<TrgOps period="true" />
|
||||
<OptFields seqNum="true" timeStamp="true" dataSet="true" reasonCode="true" entryID="true" configRef="true" />
|
||||
<RptEnabled max="1" />
|
||||
</ReportControl>
|
||||
<GSEControl appID="events" name="gcbEvents" type="GOOSE" datSet="Events" confRev="2" minTime="1000" maxTime="3000" />
|
||||
<GSEControl appID="analog" name="gcbAnalogValues" type="GOOSE" datSet="AnalogValues" confRev="2"/>
|
||||
<DOI name="Mod">
|
||||
<DAI name="ctlModel">
|
||||
<Val>status-only</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
</LN0>
|
||||
<LN lnClass="LPHD" lnType="LPHD1" inst="1" prefix="" />
|
||||
<LN lnClass="GGIO" lnType="GGIO1" inst="1" prefix="">
|
||||
<DOI name="Mod">
|
||||
<DAI name="ctlModel">
|
||||
<Val>status-only</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO1">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO2">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO3">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO4">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
</LN>
|
||||
</LDevice>
|
||||
</Server>
|
||||
</AccessPoint>
|
||||
</IED>
|
||||
<DataTypeTemplates>
|
||||
<LNodeType id="LLN01" lnClass="LLN0">
|
||||
<DO name="Mod" type="INC_1_Mod" />
|
||||
<DO name="Beh" type="INS_1_Beh" />
|
||||
<DO name="Health" type="INS_1_Beh" />
|
||||
<DO name="NamPlt" type="LPL_1_NamPlt" />
|
||||
</LNodeType>
|
||||
<LNodeType id="LPHD1" lnClass="LPHD">
|
||||
<DO name="PhyNam" type="DPL_1_PhyNam" />
|
||||
<DO name="PhyHealth" type="INS_1_Beh" />
|
||||
<DO name="Proxy" type="SPS_1_Proxy" />
|
||||
</LNodeType>
|
||||
<LNodeType id="GGIO1" lnClass="GGIO">
|
||||
<DO name="Mod" type="INC_2_Mod" />
|
||||
<DO name="Beh" type="INS_1_Beh" />
|
||||
<DO name="Health" type="INS_1_Beh" />
|
||||
<DO name="NamPlt" type="LPL_2_NamPlt" />
|
||||
<DO name="AnIn1" type="MV_1_AnIn1" />
|
||||
<DO name="AnIn2" type="MV_1_AnIn1" />
|
||||
<DO name="AnIn3" type="MV_1_AnIn1" />
|
||||
<DO name="AnIn4" type="MV_1_AnIn1" />
|
||||
<DO name="SPCSO1" type="SPC_2_SPCSO1" />
|
||||
<DO name="SPCSO2" type="SPC_1_SPCSO2" />
|
||||
<DO name="SPCSO3" type="SPC_1_SPCSO3" />
|
||||
<DO name="SPCSO4" type="SPC_1_SPCSO1" />
|
||||
<DO name="Ind1" type="SPS_1_Proxy" />
|
||||
<DO name="Ind2" type="SPS_1_Proxy" />
|
||||
<DO name="Ind3" type="SPS_1_Proxy" />
|
||||
<DO name="Ind4" type="SPS_1_Proxy" />
|
||||
</LNodeType>
|
||||
<DOType id="INC_1_Mod" cdc="INC">
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
</DOType>
|
||||
<DOType id="INS_1_Beh" cdc="INS">
|
||||
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="LPL_1_NamPlt" cdc="LPL">
|
||||
<DA name="vendor" bType="VisString255" fc="DC" />
|
||||
<DA name="swRev" bType="VisString255" fc="DC" />
|
||||
<DA name="d" bType="VisString255" fc="DC" />
|
||||
<DA name="configRev" bType="VisString255" fc="DC" />
|
||||
<DA name="ldNs" bType="VisString255" fc="EX" />
|
||||
</DOType>
|
||||
<DOType id="DPL_1_PhyNam" cdc="DPL">
|
||||
<DA name="vendor" bType="VisString255" fc="DC" />
|
||||
</DOType>
|
||||
<DOType id="SPS_1_Proxy" cdc="SPS">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="LPL_2_NamPlt" cdc="LPL">
|
||||
<DA name="vendor" bType="VisString255" fc="DC" />
|
||||
<DA name="swRev" bType="VisString255" fc="DC" />
|
||||
<DA name="d" bType="VisString255" fc="DC" />
|
||||
</DOType>
|
||||
<DOType id="MV_1_AnIn1" cdc="MV">
|
||||
<DA name="mag" type="AnalogueValue_1" bType="Struct" fc="MX" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="MX" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="MX" />
|
||||
</DOType>
|
||||
<DOType id="SPC_1_SPCSO1" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="INC_2_Mod" cdc="INC">
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
</DOType>
|
||||
<DOType id="SPC_2_SPCSO1" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="SPC_1_SPCSO2" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="SPC_1_SPCSO3" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DAType id="AnalogueValue_1">
|
||||
<BDA name="f" bType="FLOAT32" />
|
||||
</DAType>
|
||||
<DAType id="Originator_1">
|
||||
<BDA name="orCat" type="OrCat" bType="Enum" />
|
||||
<BDA name="orIdent" bType="Octet64" />
|
||||
</DAType>
|
||||
<DAType id="SPCOperate_1">
|
||||
<BDA name="ctlVal" bType="BOOLEAN" />
|
||||
<BDA name="origin" type="Originator_1" bType="Struct" />
|
||||
<BDA name="ctlNum" bType="INT8U" />
|
||||
<BDA name="T" bType="Timestamp" />
|
||||
<BDA name="Test" bType="BOOLEAN" />
|
||||
<BDA name="Check" bType="Check" />
|
||||
</DAType>
|
||||
<EnumType id="CtlModels">
|
||||
<EnumVal ord="0">status-only</EnumVal>
|
||||
<EnumVal ord="1">direct-with-normal-security</EnumVal>
|
||||
<EnumVal ord="2">sbo-with-normal-security</EnumVal>
|
||||
<EnumVal ord="3">direct-with-enhanced-security</EnumVal>
|
||||
<EnumVal ord="4">sbo-with-enhanced-security</EnumVal>
|
||||
</EnumType>
|
||||
<EnumType id="OrCat">
|
||||
<EnumVal ord="0">not-supported</EnumVal>
|
||||
<EnumVal ord="1">bay-control</EnumVal>
|
||||
<EnumVal ord="2">station-control</EnumVal>
|
||||
<EnumVal ord="3">remote-control</EnumVal>
|
||||
<EnumVal ord="4">automatic-bay</EnumVal>
|
||||
<EnumVal ord="5">automatic-station</EnumVal>
|
||||
<EnumVal ord="6">automatic-remote</EnumVal>
|
||||
<EnumVal ord="7">maintenance</EnumVal>
|
||||
<EnumVal ord="8">process</EnumVal>
|
||||
</EnumType>
|
||||
</DataTypeTemplates>
|
||||
</SCL>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<SCL xmlns="http://www.iec.ch/61850/2003/SCL">
|
||||
<Header id="" nameStructure="IEDName">
|
||||
</Header>
|
||||
<Communication>
|
||||
<SubNetwork name="subnetwork1" type="8-MMS">
|
||||
<ConnectedAP iedName="simpleIO" apName="accessPoint1">
|
||||
<Address>
|
||||
<P type="IP">10.0.0.2</P>
|
||||
<P type="IP-SUBNET">255.255.255.0</P>
|
||||
<P type="IP-GATEWAY">10.0.0.1</P>
|
||||
<P type="OSI-TSEL">0001</P>
|
||||
<P type="OSI-PSEL">00000001</P>
|
||||
<P type="OSI-SSEL">0001</P>
|
||||
</Address>
|
||||
<GSE ldInst="GenericIO" cbName="gcbEvents">
|
||||
<Address>
|
||||
<P type="VLAN-ID">1</P>
|
||||
<P type="VLAN-PRIORITY">4</P>
|
||||
<P type="MAC-Address">01-0c-cd-01-00-01</P>
|
||||
<P type="APPID">1000</P>
|
||||
</Address>
|
||||
<MinTime>1000</MinTime>
|
||||
<MaxTime>3000</MaxTime>
|
||||
</GSE>
|
||||
<GSE ldInst="GenericIO" cbName="gcbAnalogValues">
|
||||
<Address>
|
||||
<P type="VLAN-ID">1</P>
|
||||
<P type="VLAN-PRIORITY">4</P>
|
||||
<P type="MAC-Address">01-0c-cd-01-00-01</P>
|
||||
<P type="APPID">1000</P>
|
||||
</Address>
|
||||
</GSE>
|
||||
</ConnectedAP>
|
||||
</SubNetwork>
|
||||
</Communication>
|
||||
<IED name="simpleIO">
|
||||
<Services>
|
||||
<DynAssociation />
|
||||
<GetDirectory />
|
||||
<GetDataObjectDefinition />
|
||||
<GetDataSetValue />
|
||||
<DataSetDirectory />
|
||||
<ReadWrite />
|
||||
<GetCBValues />
|
||||
<ConfLNs fixPrefix="true" fixLnInst="true" />
|
||||
<GOOSE max="5" />
|
||||
<GSSE max="5" />
|
||||
<FileHandling />
|
||||
<GSEDir />
|
||||
<TimerActivatedControl />
|
||||
</Services>
|
||||
<AccessPoint name="accessPoint1">
|
||||
<Server>
|
||||
<Authentication />
|
||||
<LDevice inst="GenericIO">
|
||||
<LN0 lnClass="LLN0" lnType="LLN01" inst="">
|
||||
<DataSet name="Events" desc="Events">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO1" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO2" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO3" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO4" daName="stVal" />
|
||||
</DataSet>
|
||||
|
||||
<DataSet name="Events2" desc="Events2">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO1" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO2" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO3" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO4" />
|
||||
</DataSet>
|
||||
|
||||
<DataSet name="Events3" desc="Events3">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO1" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO1" daName="q" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO2" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO2" daName="q" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO3" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO3" daName="q" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO4" daName="stVal" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="ST" lnInst="1" doName="SPCSO4" daName="q" />
|
||||
</DataSet>
|
||||
|
||||
<DataSet name="AnalogValues" desc="analog values">
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn1" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn2" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn3" />
|
||||
<FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn4" />
|
||||
</DataSet>
|
||||
|
||||
<ReportControl name="EventsRCB" confRev="1" datSet="Events" rptID="Events" buffered="false" intgPd="1000" bufTime="50">
|
||||
<TrgOps period="true" />
|
||||
<OptFields seqNum="true" timeStamp="true" dataSet="true" reasonCode="true" configRef="true" />
|
||||
<RptEnabled max="1" />
|
||||
</ReportControl>
|
||||
|
||||
<ReportControl name="AnalogValuesRCB" confRev="1" datSet="AnalogValues" rptID="AnalogValues" buffered="false" intgPd="1000" bufTime="50">
|
||||
<TrgOps period="true" />
|
||||
<OptFields seqNum="true" timeStamp="true" dataSet="true" reasonCode="true" configRef="true" />
|
||||
<RptEnabled max="1" />
|
||||
</ReportControl>
|
||||
|
||||
<GSEControl appID="events" name="gcbEvents" type="GOOSE" datSet="Events3" confRev="2" />
|
||||
<GSEControl appID="analog" name="gcbAnalogValues" type="GOOSE" datSet="AnalogValues" confRev="2"/>
|
||||
|
||||
<DOI name="Mod">
|
||||
<DAI name="ctlModel">
|
||||
<Val>status-only</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
</LN0>
|
||||
<LN lnClass="LPHD" lnType="LPHD1" inst="1" prefix="" />
|
||||
<LN lnClass="GGIO" lnType="GGIO1" inst="1" prefix="">
|
||||
<DOI name="Mod">
|
||||
<DAI name="ctlModel">
|
||||
<Val>status-only</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO1">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO2">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO3">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
<DOI name="SPCSO4">
|
||||
<DAI name="ctlModel">
|
||||
<Val>direct-with-normal-security</Val>
|
||||
</DAI>
|
||||
</DOI>
|
||||
</LN>
|
||||
</LDevice>
|
||||
</Server>
|
||||
</AccessPoint>
|
||||
</IED>
|
||||
<DataTypeTemplates>
|
||||
<LNodeType id="LLN01" lnClass="LLN0">
|
||||
<DO name="Mod" type="INC_1_Mod" />
|
||||
<DO name="Beh" type="INS_1_Beh" />
|
||||
<DO name="Health" type="INS_1_Beh" />
|
||||
<DO name="NamPlt" type="LPL_1_NamPlt" />
|
||||
</LNodeType>
|
||||
<LNodeType id="LPHD1" lnClass="LPHD">
|
||||
<DO name="PhyNam" type="DPL_1_PhyNam" />
|
||||
<DO name="PhyHealth" type="INS_1_Beh" />
|
||||
<DO name="Proxy" type="SPS_1_Proxy" />
|
||||
</LNodeType>
|
||||
<LNodeType id="GGIO1" lnClass="GGIO">
|
||||
<DO name="Mod" type="INC_2_Mod" />
|
||||
<DO name="Beh" type="INS_1_Beh" />
|
||||
<DO name="Health" type="INS_1_Beh" />
|
||||
<DO name="NamPlt" type="LPL_2_NamPlt" />
|
||||
<DO name="AnIn1" type="MV_1_AnIn1" />
|
||||
<DO name="AnIn2" type="MV_1_AnIn1" />
|
||||
<DO name="AnIn3" type="MV_1_AnIn1" />
|
||||
<DO name="AnIn4" type="MV_1_AnIn1" />
|
||||
<DO name="SPCSO1" type="SPC_2_SPCSO1" />
|
||||
<DO name="SPCSO2" type="SPC_1_SPCSO2" />
|
||||
<DO name="SPCSO3" type="SPC_1_SPCSO3" />
|
||||
<DO name="SPCSO4" type="SPC_1_SPCSO1" />
|
||||
<DO name="Ind1" type="SPS_1_Proxy" />
|
||||
<DO name="Ind2" type="SPS_1_Proxy" />
|
||||
<DO name="Ind3" type="SPS_1_Proxy" />
|
||||
<DO name="Ind4" type="SPS_1_Proxy" />
|
||||
</LNodeType>
|
||||
<DOType id="INC_1_Mod" cdc="INC">
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
</DOType>
|
||||
<DOType id="INS_1_Beh" cdc="INS">
|
||||
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="LPL_1_NamPlt" cdc="LPL">
|
||||
<DA name="vendor" bType="VisString255" fc="DC" />
|
||||
<DA name="swRev" bType="VisString255" fc="DC" />
|
||||
<DA name="d" bType="VisString255" fc="DC" />
|
||||
<DA name="configRev" bType="VisString255" fc="DC" />
|
||||
<DA name="ldNs" bType="VisString255" fc="EX" />
|
||||
</DOType>
|
||||
<DOType id="DPL_1_PhyNam" cdc="DPL">
|
||||
<DA name="vendor" bType="VisString255" fc="DC" />
|
||||
</DOType>
|
||||
<DOType id="SPS_1_Proxy" cdc="SPS">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="LPL_2_NamPlt" cdc="LPL">
|
||||
<DA name="vendor" bType="VisString255" fc="DC" />
|
||||
<DA name="swRev" bType="VisString255" fc="DC" />
|
||||
<DA name="d" bType="VisString255" fc="DC" />
|
||||
</DOType>
|
||||
<DOType id="MV_1_AnIn1" cdc="MV">
|
||||
<DA name="mag" type="AnalogueValue_1" bType="Struct" fc="MX" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="MX" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="MX" />
|
||||
</DOType>
|
||||
<DOType id="SPC_1_SPCSO1" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="INC_2_Mod" cdc="INC">
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
</DOType>
|
||||
<DOType id="SPC_2_SPCSO1" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="SPC_1_SPCSO2" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DOType id="SPC_1_SPCSO3" cdc="SPC">
|
||||
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
|
||||
<DA name="q" bType="Quality" fc="ST" qchg="true" />
|
||||
<DA name="Oper" type="SPCOperate_1" bType="Struct" fc="CO" />
|
||||
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
|
||||
<DA name="t" bType="Timestamp" fc="ST" />
|
||||
</DOType>
|
||||
<DAType id="AnalogueValue_1">
|
||||
<BDA name="f" bType="FLOAT32" />
|
||||
</DAType>
|
||||
<DAType id="Originator_1">
|
||||
<BDA name="orCat" type="OrCat" bType="Enum" />
|
||||
<BDA name="orIdent" bType="Octet64" />
|
||||
</DAType>
|
||||
<DAType id="SPCOperate_1">
|
||||
<BDA name="ctlVal" bType="BOOLEAN" />
|
||||
<BDA name="origin" type="Originator_1" bType="Struct" />
|
||||
<BDA name="ctlNum" bType="INT8U" />
|
||||
<BDA name="T" bType="Timestamp" />
|
||||
<BDA name="Test" bType="BOOLEAN" />
|
||||
<BDA name="Check" bType="Check" />
|
||||
</DAType>
|
||||
<EnumType id="CtlModels">
|
||||
<EnumVal ord="0">status-only</EnumVal>
|
||||
<EnumVal ord="1">direct-with-normal-security</EnumVal>
|
||||
<EnumVal ord="2">sbo-with-normal-security</EnumVal>
|
||||
<EnumVal ord="3">direct-with-enhanced-security</EnumVal>
|
||||
<EnumVal ord="4">sbo-with-enhanced-security</EnumVal>
|
||||
</EnumType>
|
||||
<EnumType id="OrCat">
|
||||
<EnumVal ord="0">not-supported</EnumVal>
|
||||
<EnumVal ord="1">bay-control</EnumVal>
|
||||
<EnumVal ord="2">station-control</EnumVal>
|
||||
<EnumVal ord="3">remote-control</EnumVal>
|
||||
<EnumVal ord="4">automatic-bay</EnumVal>
|
||||
<EnumVal ord="5">automatic-station</EnumVal>
|
||||
<EnumVal ord="6">automatic-remote</EnumVal>
|
||||
<EnumVal ord="7">maintenance</EnumVal>
|
||||
<EnumVal ord="8">process</EnumVal>
|
||||
</EnumType>
|
||||
</DataTypeTemplates>
|
||||
</SCL>
|
@ -0,0 +1,446 @@
|
||||
MODEL(simpleIO){
|
||||
LD(GenericIO){
|
||||
LN(LLN0){
|
||||
DO(Mod 0){
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Health 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(NamPlt 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
DA(swRev 0 20 5 0 0);
|
||||
DA(d 0 20 5 0 0);
|
||||
DA(configRev 0 20 5 0 0);
|
||||
DA(ldNs 0 20 11 0 0);
|
||||
}
|
||||
DO(SetInt1 0){
|
||||
DA(setVal 0 3 2 1 0);
|
||||
}
|
||||
DO(SetInt2 0){
|
||||
DA(setVal 0 3 2 1 0);
|
||||
}
|
||||
DO(SetInt3 0){
|
||||
DA(setVal 0 3 2 1 0);
|
||||
}
|
||||
DO(SetInt4 0){
|
||||
DA(setVal 0 3 2 1 0);
|
||||
}
|
||||
DO(SetBool1 0){
|
||||
DA(setVal 0 0 2 1 0);
|
||||
}
|
||||
DO(SetBool2 0){
|
||||
DA(setVal 0 0 2 1 0);
|
||||
}
|
||||
DO(SetBool3 0){
|
||||
DA(setVal 0 0 2 1 0);
|
||||
}
|
||||
DO(SetBool4 0){
|
||||
DA(setVal 0 0 2 1 0);
|
||||
}
|
||||
DO(Int64 0){
|
||||
DA(stVal 0 4 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SetAnVal 0){
|
||||
DA(setMag 0 27 2 1 0){
|
||||
DA(f 0 10 2 1 0);
|
||||
}
|
||||
}
|
||||
DS(Events){
|
||||
DE(GGIO1$ST$SPCSO1$stVal);
|
||||
DE(GGIO1$ST$SPCSO2$stVal);
|
||||
DE(GGIO1$ST$SPCSO3$stVal);
|
||||
DE(GGIO1$ST$SPCSO4$stVal);
|
||||
}
|
||||
DS(EventsFCDO){
|
||||
DE(GGIO1$ST$SPCSO1);
|
||||
DE(GGIO1$ST$SPCSO2);
|
||||
DE(GGIO1$ST$SPCSO3);
|
||||
DE(GGIO1$ST$SPCSO4);
|
||||
}
|
||||
DS(Booleans){
|
||||
DE(LLN0$SP$SetBool1$setVal);
|
||||
DE(LLN0$SP$SetBool2$setVal);
|
||||
DE(LLN0$SP$SetBool3$setVal);
|
||||
DE(LLN0$SP$SetBool4$setVal);
|
||||
}
|
||||
DS(Integers){
|
||||
DE(LLN01$SP$SetInt1$setVal);
|
||||
DE(LLN01$SP$SetInt2$setVal);
|
||||
DE(LLN01$SP$SetInt3$setVal);
|
||||
DE(LLN01$SP$SetInt4$setVal);
|
||||
}
|
||||
RC(EventsRCB01 Events1 0 Events 1 24 239 50 1000);
|
||||
RC(EventsRCB02 Events1 0 Events 1 24 239 50 1000);
|
||||
RC(BufferedRCB01 Events1 1 Events 1 24 239 50 1000);
|
||||
RC(BufferedRCB02 Events1 1 Events 1 24 239 50 1000);
|
||||
GC(gcbEvents events Events 1 0 1000 3000 ){
|
||||
PA(4 1 4096 010ccd010001);
|
||||
}
|
||||
}
|
||||
LN(LPHD1){
|
||||
DO(PhyNam 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
}
|
||||
DO(PhyHealth 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Proxy 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
}
|
||||
LN(GGIO1){
|
||||
DO(Mod 0){
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Health 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(NamPlt 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
DA(swRev 0 20 5 0 0);
|
||||
DA(d 0 20 5 0 0);
|
||||
DA(dU 0 21 5 0 0);
|
||||
}
|
||||
DO(AnIn1 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn2 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn3 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn4 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(SPCSO1 0){
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
}
|
||||
DO(SPCSO2 0){
|
||||
DA(SBO 0 17 12 0 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=2;
|
||||
DA(sboClass 0 12 4 0 0);
|
||||
}
|
||||
DO(SPCSO3 0){
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=3;
|
||||
}
|
||||
DO(SPCSO4 0){
|
||||
DA(SBOw 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=4;
|
||||
}
|
||||
DO(SPCSO5 0){
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
}
|
||||
DO(SPCSO6 0){
|
||||
DA(SBO 0 17 12 0 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=2;
|
||||
}
|
||||
DO(SPCSO7 0){
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=3;
|
||||
}
|
||||
DO(SPCSO8 0){
|
||||
DA(SBOw 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(Cancel 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(operTm 0 22 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
}
|
||||
DA(origin 0 27 0 0 0){
|
||||
DA(orCat 0 12 0 0 0);
|
||||
DA(orIdent 0 13 0 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 0 0 0);
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=4;
|
||||
}
|
||||
DO(Ind1 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind2 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind3 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind4 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SchdAbsTm 0){
|
||||
DA(val 24 10 2 1 0);
|
||||
}
|
||||
}
|
||||
LN(MHAI1){
|
||||
DO(HA 0){
|
||||
DO(phsAHar 16){
|
||||
DA(cVal 0 27 1 5 0){
|
||||
DA(mag 0 27 1 5 0){
|
||||
DA(f 0 10 1 5 0);
|
||||
}
|
||||
DA(ang 0 27 1 5 0){
|
||||
DA(f 0 10 1 5 0);
|
||||
}
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DA(numHar 0 7 4 1 0)=16;
|
||||
DA(numCyc 0 7 4 1 0);
|
||||
DA(evalTm 0 7 4 1 0);
|
||||
DA(frequency 0 10 4 1 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,237 @@
|
||||
MODEL(simpleIO){
|
||||
LD(GenericIO){
|
||||
LN(LLN0){
|
||||
DO(Mod 0){
|
||||
DA(stVal 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Health 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(NamPlt 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
DA(swRev 0 20 5 0 0);
|
||||
DA(d 0 20 5 0 0);
|
||||
DA(configRev 0 20 5 0 0);
|
||||
DA(ldNs 0 20 11 0 0);
|
||||
}
|
||||
DS(Events){
|
||||
DE(GGIO1$ST$SPCSO1$stVal);
|
||||
DE(GGIO1$ST$SPCSO2$stVal);
|
||||
DE(GGIO1$ST$SPCSO3$stVal);
|
||||
DE(GGIO1$ST$SPCSO4$stVal);
|
||||
}
|
||||
DS(AnalogValues){
|
||||
DE(GGIO1$MX$AnIn1);
|
||||
DE(GGIO1$MX$AnIn2);
|
||||
DE(GGIO1$MX$AnIn3);
|
||||
DE(GGIO1$MX$AnIn4);
|
||||
}
|
||||
RC(EventsRCB01 Events 0 Events 1 24 111 50 1000);
|
||||
RC(AnalogValuesRCB01 AnalogValues 0 AnalogValues 1 24 111 50 1000);
|
||||
LC(EventLog Events GenericIO/LLN0$EventLog 19 0 0 1);
|
||||
LC(GeneralLog - - 19 0 0 1);
|
||||
LOG(GeneralLog);
|
||||
LOG(EventLog);
|
||||
GC(gcbEvents events Events 2 0 -1 -1 ){
|
||||
PA(4 273 4096 010ccd010001);
|
||||
}
|
||||
GC(gcbAnalogValues analog AnalogValues 2 0 -1 -1 ){
|
||||
PA(4 273 4096 010ccd010001);
|
||||
}
|
||||
}
|
||||
LN(LPHD1){
|
||||
DO(PhyNam 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
}
|
||||
DO(PhyHealth 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Proxy 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
}
|
||||
LN(GGIO1){
|
||||
DO(Mod 0){
|
||||
DA(stVal 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Health 0){
|
||||
DA(stVal 0 3 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(NamPlt 0){
|
||||
DA(vendor 0 20 5 0 0);
|
||||
DA(swRev 0 20 5 0 0);
|
||||
DA(d 0 20 5 0 0);
|
||||
}
|
||||
DO(AnIn1 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn2 0){
|
||||
DA(mag 0 27 1 1 101){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 102);
|
||||
}
|
||||
DO(AnIn3 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(AnIn4 0){
|
||||
DA(mag 0 27 1 1 0){
|
||||
DA(f 0 10 1 1 0);
|
||||
}
|
||||
DA(q 0 23 1 2 0);
|
||||
DA(t 0 22 1 0 0);
|
||||
}
|
||||
DO(SPCSO1 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SPCSO2 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SPCSO3 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(SPCSO4 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(Oper 0 27 12 0 0){
|
||||
DA(ctlVal 0 0 12 0 0);
|
||||
DA(origin 0 27 12 0 0){
|
||||
DA(orCat 0 12 12 0 0);
|
||||
DA(orIdent 0 13 12 0 0);
|
||||
}
|
||||
DA(ctlNum 0 6 12 0 0);
|
||||
DA(T 0 22 12 0 0);
|
||||
DA(Test 0 0 12 0 0);
|
||||
DA(Check 0 24 12 0 0);
|
||||
}
|
||||
DA(ctlModel 0 12 4 0 0)=1;
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind1 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind2 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind3 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Ind4 0){
|
||||
DA(stVal 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
}
|
||||
LN(PDUP1){
|
||||
DO(Beh 0){
|
||||
DA(stVal 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Mod 0){
|
||||
DA(stVal 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
DA(ctlModel 0 12 4 0 0)=0;
|
||||
}
|
||||
DO(Str 0){
|
||||
DA(general 0 0 0 1 0);
|
||||
DA(dirGeneral 0 12 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(Op 0){
|
||||
DA(general 0 0 0 1 0);
|
||||
DA(q 0 23 0 2 0);
|
||||
DA(t 0 22 0 0 0);
|
||||
}
|
||||
DO(OpDlTmms 0){
|
||||
DA(setVal 0 3 2 1 0);
|
||||
}
|
||||
DO(RsDlTmms 0){
|
||||
DA(setVal 0 3 2 1 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{B63F7A81-1D3A-4F2F-A7C2-D6F77E5BD307}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>tls_server_example</RootNamespace>
|
||||
<AssemblyName>tls_server_example</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\IEC61850forCSharp\IEC61850.NET.csproj">
|
||||
<Project>{C35D624E-5506-4560-8074-1728F1FA1A4D}</Project>
|
||||
<Name>IEC61850.NET</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="server-key.pem">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="server.cer">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="root.cer">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="model.cfg">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -0,0 +1,21 @@
|
||||
|
||||
set(goose_observer_SRCS
|
||||
goose_observer.c
|
||||
)
|
||||
|
||||
IF(MSVC)
|
||||
|
||||
set_source_files_properties(${goose_observer_SRCS}
|
||||
PROPERTIES LANGUAGE CXX)
|
||||
|
||||
ENDIF(MSVC)
|
||||
|
||||
add_executable(goose_observer
|
||||
${goose_observer_SRCS}
|
||||
)
|
||||
|
||||
target_link_libraries(goose_observer
|
||||
iec61850
|
||||
)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
LIBIEC_HOME=../..
|
||||
|
||||
PROJECT_BINARY_NAME = client_example3
|
||||
PROJECT_SOURCES = client_example3.c
|
||||
PROJECT_BINARY_NAME = goose_observer
|
||||
PROJECT_SOURCES = goose_observer.c
|
||||
|
||||
include $(LIBIEC_HOME)/make/target_system.mk
|
||||
include $(LIBIEC_HOME)/make/stack_includes.mk
|
@ -0,0 +1,101 @@
|
||||
/*
|
||||
* goose_observer.c
|
||||
*
|
||||
* This is an example for generic GOOSE observer
|
||||
*
|
||||
* Has to be started as root in Linux.
|
||||
*/
|
||||
|
||||
#include "goose_receiver.h"
|
||||
#include "goose_subscriber.h"
|
||||
#include "hal_thread.h"
|
||||
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static int running = 1;
|
||||
|
||||
void sigint_handler(int signalId)
|
||||
{
|
||||
running = 0;
|
||||
}
|
||||
|
||||
void
|
||||
gooseListener(GooseSubscriber subscriber, void* parameter)
|
||||
{
|
||||
printf("GOOSE event:\n");
|
||||
printf(" vlanTag: %s\n", GooseSubscriber_isVlanSet(subscriber) ? "found" : "NOT found");
|
||||
if (GooseSubscriber_isVlanSet(subscriber))
|
||||
{
|
||||
printf(" vlanId: %u\n", GooseSubscriber_getVlanId(subscriber));
|
||||
printf(" vlanPrio: %u\n", GooseSubscriber_getVlanPrio(subscriber));
|
||||
}
|
||||
printf(" appId: %d\n", GooseSubscriber_getAppId(subscriber));
|
||||
uint8_t macBuf[6];
|
||||
GooseSubscriber_getSrcMac(subscriber,macBuf);
|
||||
printf(" srcMac: %02X:%02X:%02X:%02X:%02X:%02X\n", macBuf[0],macBuf[1],macBuf[2],macBuf[3],macBuf[4],macBuf[5]);
|
||||
GooseSubscriber_getDstMac(subscriber,macBuf);
|
||||
printf(" dstMac: %02X:%02X:%02X:%02X:%02X:%02X\n", macBuf[0],macBuf[1],macBuf[2],macBuf[3],macBuf[4],macBuf[5]);
|
||||
printf(" goId: %s\n", GooseSubscriber_getGoId(subscriber));
|
||||
printf(" goCbRef: %s\n", GooseSubscriber_getGoCbRef(subscriber));
|
||||
printf(" dataSet: %s\n", GooseSubscriber_getDataSet(subscriber));
|
||||
printf(" confRev: %u\n", GooseSubscriber_getConfRev(subscriber));
|
||||
printf(" ndsCom: %s\n", GooseSubscriber_needsCommission(subscriber) ? "true" : "false");
|
||||
printf(" simul: %s\n", GooseSubscriber_isTest(subscriber) ? "true" : "false");
|
||||
printf(" stNum: %u sqNum: %u\n", GooseSubscriber_getStNum(subscriber),
|
||||
GooseSubscriber_getSqNum(subscriber));
|
||||
printf(" timeToLive: %u\n", GooseSubscriber_getTimeAllowedToLive(subscriber));
|
||||
|
||||
uint64_t timestamp = GooseSubscriber_getTimestamp(subscriber);
|
||||
|
||||
printf(" timestamp: %u.%u\n", (uint32_t) (timestamp / 1000), (uint32_t) (timestamp % 1000));
|
||||
printf(" message is %s\n", GooseSubscriber_isValid(subscriber) ? "valid" : "INVALID");
|
||||
|
||||
MmsValue* values = GooseSubscriber_getDataSetValues(subscriber);
|
||||
|
||||
char buffer[1024];
|
||||
|
||||
MmsValue_printToBuffer(values, buffer, 1024);
|
||||
|
||||
printf(" AllData: %s\n", buffer);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
GooseReceiver receiver = GooseReceiver_create();
|
||||
|
||||
if (argc > 1) {
|
||||
printf("Set interface id: %s\n", argv[1]);
|
||||
GooseReceiver_setInterfaceId(receiver, argv[1]);
|
||||
}
|
||||
else {
|
||||
printf("Using interface eth0\n");
|
||||
GooseReceiver_setInterfaceId(receiver, "eth0");
|
||||
}
|
||||
|
||||
GooseSubscriber subscriber = GooseSubscriber_create("", NULL);
|
||||
GooseSubscriber_setObserver(subscriber);
|
||||
GooseSubscriber_setListener(subscriber, gooseListener, NULL);
|
||||
|
||||
GooseReceiver_addSubscriber(receiver, subscriber);
|
||||
|
||||
GooseReceiver_start(receiver);
|
||||
|
||||
if (GooseReceiver_isRunning(receiver)) {
|
||||
signal(SIGINT, sigint_handler);
|
||||
|
||||
while (running) {
|
||||
Thread_sleep(100);
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("Failed to start GOOSE subscriber. Reason can be that the Ethernet interface doesn't exist or root permission are required.\n");
|
||||
}
|
||||
|
||||
GooseReceiver_stop(receiver);
|
||||
|
||||
GooseReceiver_destroy(receiver);
|
||||
return 0;
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
|
||||
set(iec61850_client_example3_SRCS
|
||||
client_example3.c
|
||||
)
|
||||
|
||||
IF(WIN32)
|
||||
set_source_files_properties(${iec61850_client_example3_SRCS}
|
||||
PROPERTIES LANGUAGE CXX)
|
||||
ENDIF(WIN32)
|
||||
|
||||
add_executable(iec61850_client_example3
|
||||
${iec61850_client_example3_SRCS}
|
||||
)
|
||||
|
||||
target_link_libraries(iec61850_client_example3
|
||||
iec61850
|
||||
)
|
@ -1,219 +0,0 @@
|
||||
/*
|
||||
* client_example3.c
|
||||
*
|
||||
* How to control a device ... intended to be used with server_example_control
|
||||
*/
|
||||
|
||||
#include "iec61850_client.h"
|
||||
#include "hal_thread.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static void commandTerminationHandler(void *parameter, ControlObjectClient connection)
|
||||
{
|
||||
|
||||
|
||||
LastApplError lastApplError = ControlObjectClient_getLastApplError(connection);
|
||||
|
||||
// if lastApplError.error != 0 this indicates a CommandTermination-
|
||||
if (lastApplError.error != 0) {
|
||||
printf("Received CommandTermination-.\n");
|
||||
printf(" LastApplError: %i\n", lastApplError.error);
|
||||
printf(" addCause: %i\n", lastApplError.addCause);
|
||||
}
|
||||
else
|
||||
printf("Received CommandTermination+.\n");
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
|
||||
char* hostname;
|
||||
int tcpPort = 102;
|
||||
|
||||
if (argc > 1)
|
||||
hostname = argv[1];
|
||||
else
|
||||
hostname = "localhost";
|
||||
|
||||
if (argc > 2)
|
||||
tcpPort = atoi(argv[2]);
|
||||
|
||||
IedClientError error;
|
||||
|
||||
IedConnection con = IedConnection_create();
|
||||
|
||||
IedConnection_connect(con, &error, hostname, tcpPort);
|
||||
|
||||
if (error == IED_ERROR_OK) {
|
||||
|
||||
|
||||
/************************
|
||||
* Direct control
|
||||
***********************/
|
||||
|
||||
ControlObjectClient control
|
||||
= ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO1", con);
|
||||
|
||||
MmsValue* ctlVal = MmsValue_newBoolean(true);
|
||||
|
||||
ControlObjectClient_setOrigin(control, NULL, 3);
|
||||
|
||||
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||
printf("simpleIOGenericIO/GGIO1.SPCSO1 operated successfully\n");
|
||||
}
|
||||
else {
|
||||
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO1\n");
|
||||
}
|
||||
|
||||
MmsValue_delete(ctlVal);
|
||||
|
||||
ControlObjectClient_destroy(control);
|
||||
|
||||
/* Check if status value has changed */
|
||||
|
||||
MmsValue* stVal = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.SPCSO1.stVal", IEC61850_FC_ST);
|
||||
|
||||
if (error == IED_ERROR_OK) {
|
||||
bool state = MmsValue_getBoolean(stVal);
|
||||
MmsValue_delete(stVal);
|
||||
|
||||
printf("New status of simpleIOGenericIO/GGIO1.SPCSO1.stVal: %i\n", state);
|
||||
}
|
||||
else {
|
||||
printf("Reading status for simpleIOGenericIO/GGIO1.SPCSO1 failed!\n");
|
||||
}
|
||||
|
||||
|
||||
/************************
|
||||
* Select before operate
|
||||
***********************/
|
||||
|
||||
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO2", con);
|
||||
|
||||
if (ControlObjectClient_select(control)) {
|
||||
|
||||
ctlVal = MmsValue_newBoolean(true);
|
||||
|
||||
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||
printf("simpleIOGenericIO/GGIO1.SPCSO2 operated successfully\n");
|
||||
}
|
||||
else {
|
||||
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO2!\n");
|
||||
}
|
||||
|
||||
MmsValue_delete(ctlVal);
|
||||
}
|
||||
else {
|
||||
printf("failed to select simpleIOGenericIO/GGIO1.SPCSO2!\n");
|
||||
}
|
||||
|
||||
ControlObjectClient_destroy(control);
|
||||
|
||||
|
||||
/****************************************
|
||||
* Direct control with enhanced security
|
||||
****************************************/
|
||||
|
||||
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO3", con);
|
||||
|
||||
ControlObjectClient_setCommandTerminationHandler(control, commandTerminationHandler, NULL);
|
||||
|
||||
ctlVal = MmsValue_newBoolean(true);
|
||||
|
||||
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||
printf("simpleIOGenericIO/GGIO1.SPCSO3 operated successfully\n");
|
||||
}
|
||||
else {
|
||||
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO3\n");
|
||||
}
|
||||
|
||||
MmsValue_delete(ctlVal);
|
||||
|
||||
/* Wait for command termination message */
|
||||
Thread_sleep(1000);
|
||||
|
||||
ControlObjectClient_destroy(control);
|
||||
|
||||
/* Check if status value has changed */
|
||||
|
||||
stVal = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.SPCSO3.stVal", IEC61850_FC_ST);
|
||||
|
||||
if (error == IED_ERROR_OK) {
|
||||
bool state = MmsValue_getBoolean(stVal);
|
||||
|
||||
printf("New status of simpleIOGenericIO/GGIO1.SPCSO3.stVal: %i\n", state);
|
||||
|
||||
MmsValue_delete(stVal);
|
||||
}
|
||||
else {
|
||||
printf("Reading status for simpleIOGenericIO/GGIO1.SPCSO3 failed!\n");
|
||||
}
|
||||
|
||||
/***********************************************
|
||||
* Select before operate with enhanced security
|
||||
***********************************************/
|
||||
|
||||
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO4", con);
|
||||
|
||||
ControlObjectClient_setCommandTerminationHandler(control, commandTerminationHandler, NULL);
|
||||
|
||||
ctlVal = MmsValue_newBoolean(true);
|
||||
|
||||
if (ControlObjectClient_selectWithValue(control, ctlVal)) {
|
||||
|
||||
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||
printf("simpleIOGenericIO/GGIO1.SPCSO4 operated successfully\n");
|
||||
}
|
||||
else {
|
||||
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO4!\n");
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
printf("failed to select simpleIOGenericIO/GGIO1.SPCSO4!\n");
|
||||
}
|
||||
|
||||
MmsValue_delete(ctlVal);
|
||||
|
||||
/* Wait for command termination message */
|
||||
Thread_sleep(1000);
|
||||
|
||||
ControlObjectClient_destroy(control);
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* Direct control with enhanced security (expect CommandTermination-)
|
||||
*********************************************************************/
|
||||
|
||||
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO9", con);
|
||||
|
||||
ControlObjectClient_setCommandTerminationHandler(control, commandTerminationHandler, NULL);
|
||||
|
||||
ctlVal = MmsValue_newBoolean(true);
|
||||
|
||||
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||
printf("simpleIOGenericIO/GGIO1.SPCSO9 operated successfully\n");
|
||||
}
|
||||
else {
|
||||
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO9\n");
|
||||
}
|
||||
|
||||
MmsValue_delete(ctlVal);
|
||||
|
||||
/* Wait for command termination message */
|
||||
Thread_sleep(1000);
|
||||
|
||||
ControlObjectClient_destroy(control);
|
||||
|
||||
|
||||
IedConnection_close(con);
|
||||
}
|
||||
else {
|
||||
printf("Connection failed!\n");
|
||||
}
|
||||
|
||||
IedConnection_destroy(con);
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue