From c577bb39492d716c08c7dc54b8e40bccbda20556 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Fri, 24 Jun 2016 11:09:16 -0300 Subject: [PATCH] - added dynamic code generator tool --- tools/model_generator/build-dyn-code-gen.sh | 12 ++ tools/model_generator/genconfig.jar | Bin 84530 -> 86533 bytes tools/model_generator/gendyncode.jar | Bin 0 -> 86852 bytes .../tools/DynamicCodeGenerator.java | 143 ++++++++++++++++++ .../tools/DynamicModelGenerator.java | 8 +- 5 files changed, 159 insertions(+), 4 deletions(-) create mode 100755 tools/model_generator/build-dyn-code-gen.sh create mode 100644 tools/model_generator/gendyncode.jar create mode 100644 tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java diff --git a/tools/model_generator/build-dyn-code-gen.sh b/tools/model_generator/build-dyn-code-gen.sh new file mode 100755 index 0000000..6ecc8c1 --- /dev/null +++ b/tools/model_generator/build-dyn-code-gen.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +mkdir build + +find src/ -name "*.java" > listFile.tmp + +javac -target 1.6 -source 1.6 -d build @listFile.tmp + +jar cfm gendyncode.jar manifest-dyncCode.mf -C build/ com/ + +rm listFile.tmp +rm -r build diff --git a/tools/model_generator/genconfig.jar b/tools/model_generator/genconfig.jar index eaf73e3970b8dd8b119657202f05ebbd83b798bc..073f4bc8e71769b28e61701d311c272d196bc7fb 100644 GIT binary patch delta 10390 zcmZvCbzIZm_y0ypcZ~sp0#ef5B@H4a-QC?zkWd;2j1K9Jfs}L%B%~1u1tbNP6jAZF z4L|SC+t2s6KiKPa&htD^+OX2r|leHRa^1&}ZASpjS`%Jbw%I-`Oyq9gq?Y-@v z!2thi&UwBWO2iOwo6PPeUD`c}n#9t<)SV@5j*`*BPiZcQPCJ^Xj0vhS+@bF{5<{HR zJXCPHXDdY^9Ezj|5@)H(mXhbXJ&Zxgm*0AS2+74nfb92$RJC!I`O{){h2|!2>&!T3 z)-ZsG7M-IQia&P$5}HX0yrYp(ECi~ZrIqyIFs(?Q=TM<;mq>)3NF@$KKBajg?D}#w zDX_v{pX-Oez&Ol0f{;M@Qdz*1 z8_p^qsaIYa04{_pHN)*80ZD{A`+oUhc^GY)%JfS@lTT&Q@gf#?bgu)`VMom6H$TATU7PaBFvC-?PYt%QbI|gjb1Y^`Soa%?4A~qLPAx`WBo%0Cvny)XNx7I%Vswvu!UV_onZHL-X2Ne66Y7QN9U}9 zr0o#}QPbth!_pgcJ@d}>gNt8;LSn4aLZ$9n>OyC~1b)Yp-tT%oaeFIwK@TUM82C*YXsJP(p0$oY(t$=oh>qQ%F;>XVlj z`{tz{cvJF2pQI<}KVPaBnQU*EZ4m~AZ(^_ZTJ9y|tPPq*6+IKHtoE$(zWjN&K<;X^ z5a!e)&pXQn0o$%dszm0em~Z(DHQXWA<5Ypa*$NECAZ|tI8tJb)*-^(zsxP!-Zf?aH z317nH>!&RVL-N*c5?X&0o@5JrGGJ`^<@g7~gvCN$@$~YBGp)x|&S{1`q_l@Fh{2Qg zH1IO^-fy8@_mEh=Lii(x*0vmwnapHv`uq?p)e=q@MB@wD+*=}?F5ajs<$BO5Fx+WM z<+M@0V5&TdUzX2G%+rWca1>KvQ_v=yEpgRK^ea&2_SAQr@Viopm-6`>%~efAVUapS zmyuWQQxGiiPFK70OMnJ#oWO8Bm#sy2NxjnWlkvv`h4p(}WD6cskZ6+yk|W15eY1(Q zZfo@m2tF>+Wx)qxSr0w&sn!=i2KHV`_&VJ_j%GS3n5p~1z`dGYqlGBtFn>3n)>=M`*;ijqV%v_`q%sF z{h}3=rOxW2`c+M?Rk1~c^U#!+PKNFV!3M?=Pav-Cwpe}q{f+&5fkCg5RKJn#91Sdy z+bb`{sN1R-blIso=2Wb`sKMkMxF0_F7FXX=@r)vmb$;At_sRtj`WWO?p_yMP@A9~G z!aoL76GQ7#A)%IAtBN(|OY4#;c6aN`R z|Js=uYMri+6pj?G3rt_Vsf7eqAb!m5S)n+_ryO%^saxlOcUBeA4(CKv zdG{AA8ShF)!Kp9u#^@qi-!9Uxjxo%R#m7x3@C`HyC3jlJ+Daq`Cw$5F7V#9%VVJG8 z8WDWL>?5$cO#UHeaj@l_utoLE{)CUX2;!Mn{Y;Ug+s_N|F^eG}d8$(BCe0z%P!*_Q>IZEzqz-R@OS$!R8{TXfn;MD1C0haFN<; zkcUcTOcE$yOkt}OZ_C!@8+`CmVnV>+;VlqhXoyDdMCJ71PGZ9Dz2KW}J3lvN!yqn( zHN3}l`S!u#t=QT&Q%I^d#<8@*U+ZAT>Pt?~Lj8A9nL!$_Gp^jMHoiUop78K9ep*NP zm0Ww!$k&5LM0hk^LSHX@(Wvn^85?_8FgRJYN9iF!XRTVo2=OEg@sMp?X&q01OffQR zk77YScLEVm9Up`b(rXag%gOt?1W6wTC^y#IeLm}4oF<{F=#2H}d~dRIT$@VGS8eLe zednGxm?Xycj$Yy?tgS41YDw~2#}vEGx{pOJBhyn8oRMad7-O3ikBlzVYfqqwQ8O`@6iD z5i0LAT<($k-$rqN1^c@NLIVkII!X52$t~?x-|6_exx{4TIVKHU^f_Xh;4Yg_d@&=Y z6?Jpa7c?;(!N(J^!!5m#fp<8A5O833cUq`>FOhs+yY8!dt7rG3Z(*+mx?J0_0nt#s z-_((4a93N);!9PA!#4W^Fg0t+F9h^A0Ts{&N=0}R7yuO^l)SxU3-i%0%N%{2=W~hI zzQSMCWO`+9fT@;#68?FMTh9N2rq3IiPRNd7DGKc-q=wX6I?+vbbj%&PxP18G+mX&q z{jwq6QZFgG`N00jUYwA9y8XG*PJrVNLXDtBAMZ*K%@0Gx^0HgoJ6vjbrDsIi8jiv; zM#Z7#BPon0DjxCA@O4g&`s^s8-+QjcbD+juQ*R=)q!4^m9{;a z*>F1!WZsj>%8*@X;g09J)1?Sx2>u%V{A1Xok6_+U%3fG)4a=hT;EFA2|6{C#L2DO^ z9|j|V?r!GaYoANc>;*0&epWzJiKrl*a>=vGltp}fu4VLI)vun`4Aot-mA|2jn?5pM z;nY!wJaP;=`k1ke;3I5Hks~LNliz~XSrW->W*;AlN#DN?t2pg z=^68*s_Nv$+h@XUOU$*CJuEJ_ZL`iIiFtn93+Gx$cdPUF2v}d6W`8PWpqVe=Rvg;M zt98OXx^)uGi5-e7Tfh(g!B6mb15&?9{vIF66>V0Fz7xeiHkSc_9o|A z7gPLK7V1qZ?mowdaZkkP-*14yL+vGAj8~(rxrAL$@LWOXu0f^)lA!afTfcQ|TuYgh zWr@D*JHIc|9|#4l$&R=Fj^}rGQ%w}V0x%sXBtCNu;?3$2-i#a(Fwjq@c`&sX%={~X zvtcU+LM4?g%!0!(t0vu^_0rpYWRhslQAc0!NlL%1w6=}0V?(}rBLj zdeyEeQ~K~$7}&;Lj6m_H)`S{UK|a;s+t^@vwh77;E8+KF@nl+h-D4j%>EGOYkZ~I! z@RDbiIz!o^jISMgl+1eg8Q(!ruzbRs5fUD@5r~bAQqw|GIi1@B$4Dx&NT}_NeDDkJ zI45>ZuQ<{KJp&(lZ6eow>oS=Z!83WX{aO6y*b)AwQ}2!#2dD#L{8g;VX>N~&m%A&s zyQ{}(IyM)Ve<#{F<={}$Ykp+Xljcqf<)1wla^O+hFJGEmj$ZQbysuw4CY=S&9HJL? zIfMl1DWnDps0Wp|*a}*jzx%%5ms&lh;I`djt?i2FBs5#23wnSRlDE9*dp2 z>?26sWZf?nJ;j4*A`&lcGIut;QJ0(%WeypacwQ^m+CQS@sAKvrZf?czytA}@kC<-j zwC3hyl5swTvAT(nkFrr#Z5zLl517Eq;~+ej<_$rA)>A4OlZ7+g@SnOflwAe+lf;57 zqQ!m3v=KgMvxxXbtm!tV;>qq~lK8w74TvQT(G~Cgk>X_ArDRSlFPw$1E<7HHkQGQY zQSRqQF|l4ii{WT9%e&h`fgDR-bk1#&A=VW38=RnL)y|xcwBbP(F|N*c>xw0QKBu-3 ztQ{iqi!4UnzGqspl zQ5LNAWMBYVx$rTR(xqa7Pk$gHRmDr~Sg8^xmVci#1S~Rk=6JF4ItPpJ_OoHLStTJFKCCWUJ z=_)NBwE5)Lc7ym;RNx~PUFbRi#ffPr(6@Cc0dLKm!YHS@4TSlo(IP+gN%be%pQ#!X z8fMQd9b&_05?j-dRb7?X^TbzhVVIzKa>j&Rqb9j^@Uo8QXf|rY^C{xJ zS6Jd6PmNjio!r9zK7uw6M(> z3C7h!?ImNP@?==`XX^-~71bd-PpbQIo7yCR+w;%(ChkCI3vj))S^iA8do^2n_200GY@|PAEo5I>4Au~ z>QRKVUBb2e2#fW{Z%f9F%3+^H#k=-l&(Xv5a6HPp-)j6ix=S?3o~8x~0BK4)-#II` z7K#B2<=>mO18F(xiTp|{VBgWZYp%YjnM@1(b;oD?)U?o=LUepK$!beC;p5VUBCQSU zZ2jBC8sby`b8_b-(I)y8+V|i$WAV+9mlx-6sF$yn$Xg&UGtWKQq1_z$r@ef8JlG-x zmqxV=OiC?6ChyE%Bh-W-z!N8Ompwb~GQEa0?V*smG@5Clx)<1GgW=W$G|=o~Rbh6; ztjWcTdRE&R#oUTEtBON1j+Z8>UcMU+F*=V{?Qz;zpPF_`z2bSg+$r^Qg5Nl{D(FX2 z!0Ee0cMZFDF_P6L{2jg2vonVcL0yVLU0gG7w$$EP|8^(Z_?+473rVJ$`sPupap7AK zbt;pvvG+?}>SlESA!)qyi050)oOuoz%E5s!IeW>Yr>q|)kG{Q@ENT5t3lzBUw2thN zEARRA{R{9aRJ`xK{P+0X-_t3ZQp1-wVrP62xiXWZB4Hu*qh}UawYYN2hN;1@;M4dU z8x+igxU46#bQEP;2wVt<>~;tcuV8za)-EvNM9O}`6Yq)7lZ$5KA_5=5^RH2F9xZ=Q zPoYz*Gp%8d-uv|>RuH?9G0^M$J!4$7^v^b&2`f)=hFK>zY9H8c`O*qA^=8Ot>edQAJ3{ zz4kqmd8I`TCi8lcSqFc?)k2TboVmQ_`GjeyQ}H+k(94O1hHxd5V_nVJuM=c#F~kgo z_Y!C&wi`-n{R9Ibv8=vdeDg;itGyM9`qj4kqPO!1jz{MY+m{GL>nCBuZBGn6;EF|cg+@(?90iPI9-UGm(xxX>9IR9-t)o5 zVe+l;RvGmKAC`>N3p@x(%H+7Z^DTct$D>{zr1k4J;Jya#4KbN&(*kM$pqL+keE-ko zGV*>HX2}S=z93E#15(0UX*DrX*T!%h@bl}39HuuyXoj;jqt#3_Q>1fw~cH2cw}20=Q#)Wj*f)dkRj z*1;;q@;jG+(Dq?I)mY;@>#q+z1K+oXe}SB=9eytGyt!SXoM4P)_-^!Lk-sFXC79;7O&dir$SJIjjT8`=SX8pix~9!v5oj@izqT8 z>4?n5imXZ8_$4bpq{R@4RWQdZa1HY<$AQ7}aro*i*|YesZN{s;gim|*bjh+E^>ZNx z-r9Y^jR;uOt~Zq>bvyxQ_lpfYDocYSVJaQ`r9~<;{iC!P^B|KH&x(t(I7dpUF;Y+y z!!o^tQ_?V_^^F4_ZSR5lZ|xDa{r@=GpcNF(3e&kXwwM^JvzDyQ%4X4XlPxU1<^!0L33 zL9Q0nfm)6!rewhTPU$U^=(#onF{=!7i!uhvFqOVQs<7nTBpNRJ_~f@Nb*g#Axa|XD zWk%ed6wLdy!{NwFjU$$Bom5^<5VbQ%P}qP$wpW8tg)v})E}uG#g9)^n!(Rq*jLvO%ir-r*Zr_znuwn;Hq7vljIuD=>5ixbk6+dvtS8}VG=ycrfF|HS(}G} zl943(2mO@1f;9{~*dD<#U*4tE5i!UP>-fEjG^!+Ip^aHk?wSs#dt#k<>PVx9JCdbx zw_SW}%3u?}@O-Sog{8~lwpWN6BxMonyED%#<-H0$$JQgg>f7Uxvdxo=$fU6gar;{g z22!0VFCIw@l{dZogttV+(9`=#qHcqT!E=KrW+G84bVp-_>WXAq39%d$%X~f>x3rPq zo)rzA*P-QWp7-7`5ed{p@M1s3MEqm~`jog(9H_| zN)QM$0aKo`3LcRDs7+|=T!b8I(@yih8z;H7jbQ$E!DBIhBpIRdkYd~Zv%%}6dOp=& zv#C2-7l-^oLpFU{!k2@UpXhUy#?;qODqKJP5H~u#7f0o|ztA_>u%*}8q3x|4q|wC= zx;s!Csn+*wHp$u`{G^j{t80+<%tdW3HgxSwEZlCwFOtvCjy`NIt>6KKd<;W*mdrhj z9QQ(enZjL^(~$X5hYj`0^4za%;^Cx}NMla#*vT}zTM({?@hVixFG7Yu{jSAaRBFZ2 z*|o72_h^ha<_pvwEVSINmJBFynjrjUX!9!Z{MUO|1+r+@h_$MC)xmCqq)Gc@lPs(Q zc1=;lo8aU8+jAI6X52bq5Hf>f)#=YXnRlbx9I|5Uo-3qK-ora_@Qrg)UGU4cu8_xL z1En28L!P{HXmcfdZnN-V**~21cMzqZH?@^uml`=KWWs7=;dY2@t;o!X6XEbq?^-F| zfa9~6+rB(q;f%c&LU;y-G5FDKzr#qh*0(t^jy^?)TzH^G*Xy8~HUDJVUo9cyeR zwd{+Jh_F)Od-O{n|5+f`j{$Y6ebzxIMzOVmTdTp%A9o6)O{=G%r_~$8J^}nAbsL4v z4_SFG!{Yr4C+&nQRWQcfMJ9`RWRn9fqfh!D5xZ_T1Q0XWDs+1}Fy?*l7O&C3-I-2L z#@ZoOi)ASyX|S++e;W=dC~2kNEw_<2T-Od+b}w8qf2+h7u;~%vac0H!@}`;}&5Nk} z33Y=q4+k4l6|k4RBl2^2HyJx-0&SB{k+<8wRmH9nNq^xQ+d1K47M&67%Bl9rVBf-j zcbkFvAn;4ViX17)YZIY$U)pH4I`ba41KW*#p?k=aItOzB0tdq$Vp~@qr?n?{+lwf0 zx`iSEt3JY`UgOkY#!YZQWtaN9p?6?gdEA=DMd0mIvXB{dqIn(+1I}4P(10$}YIAl% z#UiO||GHAGsa!lFU(XK&dIk`l|eUyp~DF;S(T#St-1l0HPIzTiV0? z!pQT=vGOJHJjLl033(Y$l#`_N#Nu>l7y!3|lZ0%CRQm&;_N`>NSfnF=1kKkw(hf;8 zg4_HZr^)N#U_^n{2JajPq`c}k0a%o8LV|Cg!wRk?HWYH-LC17`RN{+@lRTxVJS?(? z`y}({8=$DSu6%1GW7Q7??fH^ugD_f6@bLBE*T&me5NS;A2D<)4i;Od_bmcmOYHwEP;~5;795E1?1_B@c zqT<;#9!U&0uEDtu=>8HHJh2uJ59Jb`^)eeB6^GLW?80nqOnf+`%YDzgLI(T1(ap?{060%{Tn!Wz_o6s;_L zz+o*PnfIltN5=aX}ol{{7$UkT}QGYbK5E3qkgbV%! z|4omEBhRQ*XgJ!lu^5mZBaP`lL~Ljd`7@xpDsmmd=l}rrzc?K9(Z~ZaBu9-H@CF+G z@1@K47aY_2KQ3`u{y)d!`x-zDe84{|9Y!dQ493R^8j(N^lNAS|mkmrCB`moXA{P`M zEDk9^`~CUj7O&Bo%fIP(l6p;(&VCF~G8rJZSXVT3c5UHUJ<@006N53kv}3 z_@F(a$f32aH((kPe_XFfBV8{CA+=y`RIHSMe~$aAv}rp&YsflNB7a`;chVHWC z5{*2N1Tv#Xk5md(n^>gqCQM5T2u2ItP{QiOKMtv29a4XsjiMB#&(R8}czPIv^dAK` zD$jRNq(TtJC-+Afj}qR`L<*@zS~<=48Z@5B?Auiu4RCl)KL6)YAEp;ajzhYT}=uA@cb3| z>t+~G?$08Xl|y<2cB4E()q5ym335PcbkJhSmucz9#8r^n7u#Rv`Ta;V1MIyVkOrOj zcN9hJ@E-~gOjG_(Hm34OMfGbG8tOSf3#V|t>`Ra- zLXjoA^_S<#MYM^o0+0&r*;xU}Gq8mA95X}uUk80CMcDg)JHUovDgvp|W?)66w(SGj zOy?sm%uEqTi_Up4;4!8Ya-jW5007RvJYRf7b2TXbnT~Hz6bYaHP>{jsl>P+&*r#aW z2QqjyWa<8;s)A56;sonhfr*LdWXMFDeC{Dbd%s8$k%jIA4K z^LMk_U_jxiVaQF5?Ej=h&zoc9gPaQwk*0qy!FHBwvtSkAb&vn|n6do(1rW=64MlEz zBwYW~_0rds)fAEA6@bkB@4ONJwIYTIssh32I)!d0JJutE;YK$3zjq@Sj(@xm!;m}f z|4pWDVbUZ6nG6%MX>swDc4lo+*TGogdK h2O^>T|2u$4{0mQ^4kRO%0!RTOkb~zTjhwN7{|8>@0_Ok# delta 8443 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 literal 0 HcmV?d00001 diff --git a/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java b/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java new file mode 100644 index 0000000..c9629b7 --- /dev/null +++ b/tools/model_generator/src/com/libiec61850/tools/DynamicCodeGenerator.java @@ -0,0 +1,143 @@ +package com.libiec61850.tools; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.PrintStream; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import com.libiec61850.scl.DataObjectDefinition; +import com.libiec61850.scl.SclParser; +import com.libiec61850.scl.SclParserException; +import com.libiec61850.scl.model.LogicalNode; +import com.libiec61850.scl.types.DataObjectType; +import com.libiec61850.scl.types.LogicalNodeType; +import com.libiec61850.scl.types.SclType; +import com.libiec61850.scl.types.TypeDeclarations; + +public class DynamicCodeGenerator { + + public static void main(String[] args) throws FileNotFoundException, SclParserException { + + System.out.println("Dynamic code generator"); + + if (args.length < 1) { + System.out.println("Usage: gencode [-ied ] [-ap ] []"); + System.exit(1); + } + + String icdFile = args[0]; + + PrintStream outputStream = System.out; + + String accessPointName = null; + String iedName = null; + + if (args.length > 1) { + for (int i = 1; i < args.length; i++) { + if (args[i].equals("-ap")) { + accessPointName = args[i+1]; + + System.out.println("Select access point " + accessPointName); + + i++; + } + else if (args[i].equals("-ied")) { + iedName = args[i+1]; + + System.out.println("Select IED " + iedName); + + i++; + + } + else { + outputStream = new PrintStream(new FileOutputStream(new File(args[i]))); + } + } + + } + + InputStream stream = new FileInputStream(icdFile); + + SclParser sclParser = new SclParser(stream); + + createDynamicCode(sclParser); + } + + private static void createDynamicCode(SclParser sclParser) { + TypeDeclarations declarations = sclParser.getTypeDeclarations(); + + PrintStream out = System.out; + + Set doTypeDefs = new HashSet(); + Set lnTypeDefs = new HashSet(); + + List functionPrototypes = new LinkedList(); + + List types = declarations.getTypeDeclarations(); + + for (SclType type : types) { + + if (type.getClass().equals(LogicalNodeType.class)) + lnTypeDefs.add((LogicalNodeType) type); + else if (type.getClass().equals(DataObjectType.class)) + doTypeDefs.add((DataObjectType) type); + + } + + for (LogicalNodeType lnType : lnTypeDefs) { + String functionPrototype = "LogicalNode*\nLN_" + lnType.getId() + + "_createInstance(char* lnName, LogicalDevice* parent);"; + + functionPrototypes.add(functionPrototype); + + out.println("/**"); + out.printf(" * LN: %s ", lnType.getId()); + if (lnType.getDesc() != null) + out.printf("(%s)", lnType.getDesc()); + out.println(); + out.println(" */"); + out.println("LogicalNode*"); + out.printf("LN_%s_createInstance(char* lnName, LogicalDevice* parent)\n", lnType.getId()); + out.println("{"); + out.println(" LogicalNode* newLn = LogicalNode_create(lnName, parent);\n"); + List doDefs = lnType.getDataObjectDefinitions(); + + for (DataObjectDefinition objDef : doDefs) { + out.printf(" %s_createInstance(\"%s\", (ModelNode*) newLn);\n", objDef.getType(), objDef.getName()); + } + + out.println("\n return newLn;"); + out.println("}\n\n"); + } + + for (DataObjectType doType : doTypeDefs) { + String functionPrototype = "DataObject*\nDO_" + doType.getId() + + "_createInstance(char* doName, ModelNode* parent);"; + + functionPrototypes.add(functionPrototype); + + out.println("/**"); + out.printf(" * DO: %s ", doType.getId()); + if (doType.getDesc() != null) + out.printf("(%s)", doType.getDesc()); + out.println(); + out.println(" */"); + out.println("DataObject*"); + out.printf("DO_%s_createInstance(char* doName, ModelNode* parent)\n", doType.getId()); + out.println("{"); + out.println(" LogicalNode* newDo = DataObject_create(doName, parent);\n"); + + out.println("\n return newDo;"); + out.println("}\n\n"); + } + + + } + +} diff --git a/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java b/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java index f936fab..c002bbd 100644 --- a/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java +++ b/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java @@ -3,7 +3,7 @@ package com.libiec61850.tools; /* * DynamicModelGenerator.java * - * Copyright 2014 Michael Zillgith + * Copyright 2014-2016 Michael Zillgith * * This file is part of libIEC61850. * @@ -148,7 +148,7 @@ public class DynamicModelGenerator { printLCB(output, lcb, logicalNode, logicalDevice); for (Log log : logicalNode.getLogs()) - output.println("LOG(" + log.getName() + ")"); + output.println("LOG(" + log.getName() + ");"); for (GSEControl gcb : logicalNode.getGSEControlBlocks()) { LogicalDevice ld = logicalNode.getParentLogicalDevice(); @@ -221,9 +221,9 @@ public class DynamicModelGenerator { output.print("0 "); if (lcb.isReasonCode()) - output.println("1)"); + output.println("1);"); else - output.println("0)"); + output.println("0);"); } private void printRCBInstance(PrintStream output, ReportControlBlock rcb, String index) {