From a81266ba5de19546c30b10858f03435bb8ddf31a Mon Sep 17 00:00:00 2001 From: WickedJack99 Date: Sun, 13 Mar 2022 06:14:41 +0100 Subject: [PATCH] Removed extern communication files, implemented breakpoints disabling, set/reset breakpoints --- .../BackendInformationTransferThread.class | Bin 2029 -> 0 bytes bin/Backend/EepromLoader/ReadEepromFile.class | Bin 4660 -> 4587 bytes .../CommandAction$1.class | Bin 835 -> 0 bytes .../CommandAction$10.class | Bin 842 -> 0 bytes .../CommandAction$11.class | Bin 841 -> 0 bytes .../CommandAction$12.class | Bin 846 -> 0 bytes .../CommandAction$13.class | Bin 845 -> 0 bytes .../CommandAction$14.class | Bin 849 -> 0 bytes .../CommandAction$15.class | Bin 839 -> 0 bytes .../CommandAction$2.class | Bin 844 -> 0 bytes .../CommandAction$3.class | Bin 840 -> 0 bytes .../CommandAction$4.class | Bin 838 -> 0 bytes .../CommandAction$5.class | Bin 838 -> 0 bytes .../CommandAction$6.class | Bin 838 -> 0 bytes .../CommandAction$7.class | Bin 841 -> 0 bytes .../CommandAction$8.class | Bin 832 -> 0 bytes .../CommandAction$9.class | Bin 831 -> 0 bytes .../CommandAction.class | Bin 6027 -> 0 bytes .../CommandDecoder.class | Bin 2925 -> 0 bytes .../FrontendCommandProcessingThread.class | Bin 1823 -> 0 bytes .../FrontendCommandProcessing/ReadFile.class | Bin 1545 -> 0 bytes bin/Backend/Runtime/Environment.class | Bin 2510 -> 2551 bytes bin/Backend/Runtime/Testfile.class | Bin 0 -> 390 bytes .../PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.class | Bin 1677 -> 2313 bytes .../PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.class | Bin 8970 -> 11953 bytes .../GUITestFileTable.class | Bin 1082 -> 2730 bytes .../BackendInformationTransferThread.java | 51 --- src/Backend/EepromLoader/ReadEepromFile.java | 69 +-- .../CommandAction.java | 393 ------------------ .../CommandDecoder.java | 122 ------ .../FrontendCommandProcessingThread.java | 49 --- .../FrontendCommandProcessing/ReadFile.java | 58 --- src/Backend/Runtime/Environment.java | 5 +- src/Backend/Runtime/Testfile.java | 9 + .../PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.java | 46 +- .../PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java | 84 +++- .../GUITestFileTable.java | 85 ++++ 37 files changed, 240 insertions(+), 731 deletions(-) delete mode 100644 bin/Backend/BackendCommandProcessing/BackendInformationTransferThread.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$1.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$10.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$11.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$12.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$13.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$14.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$15.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$2.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$3.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$4.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$5.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$6.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$7.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$8.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction$9.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandAction.class delete mode 100644 bin/Backend/FrontendCommandProcessing/CommandDecoder.class delete mode 100644 bin/Backend/FrontendCommandProcessing/FrontendCommandProcessingThread.class delete mode 100644 bin/Backend/FrontendCommandProcessing/ReadFile.class create mode 100644 bin/Backend/Runtime/Testfile.class delete mode 100755 src/Backend/BackendCommandProcessing/BackendInformationTransferThread.java delete mode 100755 src/Backend/FrontendCommandProcessing/CommandAction.java delete mode 100755 src/Backend/FrontendCommandProcessing/CommandDecoder.java delete mode 100755 src/Backend/FrontendCommandProcessing/FrontendCommandProcessingThread.java delete mode 100755 src/Backend/FrontendCommandProcessing/ReadFile.java create mode 100644 src/Backend/Runtime/Testfile.java create mode 100644 src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.java diff --git a/bin/Backend/BackendCommandProcessing/BackendInformationTransferThread.class b/bin/Backend/BackendCommandProcessing/BackendInformationTransferThread.class deleted file mode 100644 index cca4b4f81c90c1b7ebe1745cb4d7b6a686dbe5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2029 zcmb7ETUQ%Z7~LlcObElhK#*Q2S|uSQRcosx#X<@-7%nAgkXFS>GSF$mOq|SE`vd$F z{sCTm@zUUuwOl^?S6s^<;Dfl&WJ1HT59J|~bH2+y-`?l@&Y%DO_WQ{RZlkOqAh5Wk zRi5f*HRbAO{P0ev_rrtS6YNi$I)mm_DQcN!pE@BjFx?V3D2gDOOfpDf$ zGfcx-5D3o1N&=y*Rn-*?38_m`tV$xwQxR#p1@+?%l;=YTq?>8@iLMYEA@$ z7*#Qbae?lPk2yN?|2kr&9tcdR=t8%^0Qu_c?m?MKYvmft8qQl4tya=(L+*WJ$_IKq z-6WChc`{xpSF9945LYCpep&KW6}?d9>P;02!W7GSY&3XO-tT~R8=b$ucsIS4>(pJx zyLo}Jvno8Vx0M)pW*d&a;l;|{@-8kH!7Sz!Bn0B#wY`>3Dw0SEC`M!Xpzb{PkRD2; zcU8QH_sOqr)oKD4W?~)JxKVzhSDdth56(xB=Mq2KwSVliBm73Mi zBe;j0f=`IhJ|wrX{B1?A%Sl(UDnkeA922MD@TuVJS14@QD7Y2*LeSaR%w;=X2ic|` zROf^V1ooa$u9nBA=NC#}nZD?$?<`B+zu<|Zr|ypW=Zm~7jvJ9_n$c!aI|rHUEE1g1LZyed{c9tF#_D|)Nx zuK6wBp~=}7Gbzu;RUQ!p_>0JS=PDpaht?i%9pRos#dV0*KJ?Qwz}=je1@s+baA$b< z2p4`v^hYn{4Su^B1}08=7H~I)i-c-{Uh*Ky+z03%j3420e6acgQ}Njsn3gC(NR(k7 z3Jmc(!19Lq9q|yyT6uU2*XSn#-u6mX)sukS**IL6#F{ P{;GmUA@0B8J^<}MBv9e8 diff --git a/bin/Backend/EepromLoader/ReadEepromFile.class b/bin/Backend/EepromLoader/ReadEepromFile.class index 1b708dd926e764c42920f502d02042f460fd6802..d6f5906669546bee20bff1e0fda8f5be89826975 100644 GIT binary patch literal 4587 zcma)8|92Eu75}{5*`3|Zq%0&02}xj~fXQx}r4$k%2@ujig9(WVLIW-BWOovVZg$em zE+j?Us%S-Rt5y3|XhAgU@f%1Jk5sHbv>vNg&q06C9zFdJ>^VKBN2?`%-puYM8<*-P zGxO%Y_wM`Ldq4NydE>^q61a7@9)G|{C1PF1c-k84vGjzIjtv-k!V&B- zlZFaKAb4Cqp~sSXYBbh2eB6j<1pEm-qxYC8V?rR*W6x(ZW-`{1PU}-W=0v8IYX;5H zl%C0^4S|MIYuX&4t#~k#HdCXmJGjql^>ha>ueBE3PLG>SRsS`C#tOthvmA6hA0}jal(9vE~W3g z`6A;jAWU9-U0&?xsqwt8%Lg+gRj)pt^Sz%&KexJJBWJOH;9=qCjQdkcFI^tY0bH3Oe3QC5*`d>tvqMWws#yrp1fwEE_Y%tn^f;m6cX+DtTB*!}0+9cmQK6 zlEs-mHIXsKG^AkBaw{uKL?OEU4r9p2F-GV?ffaUy7Lajw)=V-9d|*Lr?wTBDF*g$7 z6M8ahgolmHNyA8mH*XCyTH!4%VJjVO-eSMBYzz-)GvSl^L^yzPWMyicSX4!Fw2{d% zj!6wuc!+gKA0KCr5vZ;2Tv*7Q#W^^wa>pk$e9}&*jFm5EkKj`(9$kN7$Q0>FB@U&{jB&u~>gpfp>lFys7n)M98BberE0sxG$t3%5e|M){X9T{Y z;Rx;t;H&t$imwUO-Txe3Q1Lu-;=@;J_y*3> z#jL zFloI&nPvCkT;b51gz8A7jS13M&83?_V9?5@QcPL3Lg@gY}0_yF_ht z1`X%uelI~NkRVnP2H3C5P(>gs(SRDZwkr0dRW`7&b7&42kH>8`@N%@EiI%yrk^3F^ za!y))J0(82|Baxickz7_?kE_ud67qm@yA^5vcWhWSyR#@ThL5Z(w+YzBoCh*^PXtA zifu#DS+w?EMf*_WEOzdnMmZhOQmshSZ=1pHq3z1A=Kjvno@w}c8)wjci3-cG6|HQf zZW};^Q3F3*%4l09t*ayUFwsZ&+)Myl`PWAO?BX67w!7>QbrihQf&J*C)=I2HKR!mY z>gdk_3{roXx)0#v^!x4H<&4_+b`XcSPWo&ulp6@E*ruXg#p?IrpW`Vm6+*?`^0rT* z?!zDI&6dU9>?r9?mV!b^?v-A3)escgqOuj&V7d0GrYdf>z9$JyDp@JydlpF?sqpyMNdYe%3|56NYt}f zHX4a~7t01CQQy2wX=?UNV`n59T(Hm)MkrJluMAPRX!~hJgp{EF{M@?6x=rqow~r4c zWPIdAnjarWPF_t}KOfS=QKSGRo6{B3kIQKKcI%Ar^5VDNbB<{r- z9L1L?JUAGv20_aTCHt5c7L;fT9g-0?fNeTdrK&2nOA_{UdHjO7#~`e zo<*ie*$ht3;M5Erp2l?1#LZv^idPk22BtAmJarS8ixd=KQo;KF4YS(k4*C14eM%_6 z`#jT+GVZ`*jKSww^}fKm_eIvd$B|)bKg++%?9(r^lmD5#ei!G+xeKBS7ex(zAa>%1 zVhBGH_u#U46h9Hq65Bep({ zKFg6}k3Po{n*e2xapc7v;sxS7!xFYtJWaG`$fGv#6fwuBbC-C685m>MZlq0ix8hDe z*EroO0(FjtmD#0sIq5H$Opo)QdB}dVi~sAKhx`V30#EWTThSkhOZLw$*=t!h&!Iiy z48PpV+VNE5wHZ7s%V=2EmZoM!))tm5ImepFig@mjtTT<*&dk6D%esk+J#{iHrTD&&HWYl h7BwimG<=(PkKK66;r;+?Wb)VklOlm>9`C|;{sU3Q{rCU? literal 4660 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 diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$12.class b/bin/Backend/FrontendCommandProcessing/CommandAction$12.class deleted file mode 100644 index 6e0c5c5cd6b0734c38710426c00058c3c634627a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 zcmb7C+invv5Is(oY_nNt8cHdbLV*C=AhEP6PX#21sECxdNJV{j9FuPG+LG7Xe?a16 zK;kAI_y9hNG7c-X@RpUvo|!#9o;l-RzkmEZIl)sTA!-a8FSvLo^*G(OMmuu)CeOJZ zzqUrmqR8|ltuoJr%Z%=>Z-fXK+DH7Dr;5}6z0r{rE<}T2WtuHrrczCwI^t&rQ9A7$sCXYtU}l7cU_P{zNS9qA6um?0i$Ep1=%qL3uo+^#I#D^obE z(je+&=fK)+KMw#kvL+(Rw#eJ0*k_{NgD;4C-*Dm66th5UgD}8*bZCvIeuRryq=?}X zmMVtFw0m5u_Zjh5T>g%gj}+E$O7YnyoZuNcAu0@yHhFq1^eEY~MmutPW<2J4 z^xB$KWSP_lNtt<(I%#x!?Qw{Jp?Sn7JW-tf?+%Yd>O#~QmWpidq)Jkw)7)C2UDD%9 z@u3n7HFqep_CtoX!IbxI(BY?2OZS{%y)*Uc)qRGbXGWq9hVwB(%tWYSHbxyyhHA$H zW(QJ>oqRkLcJHs=*1)7(?Q<)ATqXlw1gV%-1htN;2#8QI%y(7?|F>`>!XmDQxWbT3 z*`65JaGj=N#n?>5rWO47osrrVrS&7+z;cM240ES<_G#P)!p69T6^3xaRW5elGAwlZ zXQh=eQXaiAxlP5E^pkA;^C}*AT58}+ohsuW&9-odX2cNpwHCIgc$Nw3+02f}+$)ng zEYlpSWaq$|O+O9*6|y=a$~MSbr`Ttr?)@)_yWeo(Q-PVIwMH1=JzBKJg&*M}<|$&h zgoTpf3GE)&=zd206_>wb=_7>|oKk!^L(wQH0^BZ8ZQP+fpqT)7$-FR6=f8Vo6)gS% Di{8=4 diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$14.class b/bin/Backend/FrontendCommandProcessing/CommandAction$14.class deleted file mode 100644 index 1321088552deea872c3320c2113bad4a8a79c7ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmb7C+invv5Is(oY_nNt8cHdbLV*C=Ah8sMrvg$NQ4uL^kwATSHl}s!*vRY6uORUi zAaN59d;lLs8Hbfxc*{y-&&(blpPBKm-#>nyoZuOf5EX{UTRb}!dX#Qkqa8UtGahq2 zdSy)}@?7eJw9IT~P8!`_?}i8%nn!%XQ^o23-tb6dE<}xCWtuIVRB2{(R#+>vOM6@? zK2(CC<_=}ve#EdonDO2XI{Z{>>7FxmlbKJi?K1>DGZJ+$oR1M=EHhPcVFaC&c_Mt&e{j9a+P5Kg!%#NJzm zrKEpWUI`=h(Q8xKOl(U(&DK9JWC=YAg@cY&qSREUl4b`;ligWW`WikVSx8&(Hc+v2p6$P z5yK@cl?+d4_qayqGvcqf{2ePFDXid>;=>t=MoAIi&J@+gUD^Yh3viFj3-fgTyH8fZ F@*ger(`Ntx diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$15.class b/bin/Backend/FrontendCommandProcessing/CommandAction$15.class deleted file mode 100644 index aacff1626f53d9acba02ce556da18e09932223d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmb7C+iuf95IviixN!_kLn-A_C~W{Yl`uu^QvnGgA|izr3DozEy|gZyU1`1U=Tzbk zK;kAI_y9ht?X0oX!dooO?#%e?nX@zd=j7M#(^EV{!^= zlzc1&L&F|qdG|5H#%RjA+jRJ8rZW4SVKbWg^x7VS*Vn0Ng5h!qA2R{!m<`cHo1q># z!0aefVyBplg?ay1Z)c}TwEnRcL`E4tq5uz-NGY6$uJ+Sjs9=pc7R3P^l^hB zp0Yh5Zs9gVU<6MGJd+|VFEtEs2g^S0GR&P<8`7Zng$Z#FD-8Y-mxb8OZxc(DMpDC>2oZ{03idIG8VYNhcai4aNrU5)4bHW^*`yP_juy_VD+|MNd diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$2.class b/bin/Backend/FrontendCommandProcessing/CommandAction$2.class deleted file mode 100644 index 2cc2b9f783f4769f45e425bbd5e42b47dd8a4f08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 844 zcmb7CU2oGc6g_T3v!;P{WsLDL7+Zm?NCd`s8X!SLMWt>-8rr*?nl8h!CCBOS0*Np2 zzz^U@F|JFb4c;2*+V|cZpL>0efBpXP^Yj$Y5&5VwJbuN~4?>OOzR}8(ljuC>YW&vd zR1`&~CUKQ{nc7UN?zRt)p?$)qJeHh(AB;{!YJD^q)@Iq#W-?B-N=svevT?$t~8a1+Dx{LpesBd4nk0^Gv7kK2SeD>@*xC&GldgAE3M%4I1I-ZQL3gY&&r zFls$G)TK#9KXXcU{&^G+9W4#;wMwOSZ)Q)}V?AaF2TBQ(NM00zX11^|3j0PE7VD%# zo$LZwyY1uvP$O$1plpl09g1Bh=soy?u=fp@KFu&ov^EF>BCynm*Lj(-%Lw?Lt#p!x?d?+#(qQS6IdJ892ni-uH)(Y*?0auETm0)PN z1DSUpQPk0lVK?aUQ>mqU&aj@${CaJVAsCp6XoBHX?twM4O?Wc)ZpD%@7`QRfyg93`@!IY+e0Wm~udGhv8_S_?Z+JkJI7Yi>v6?v=?MR%r%xl5=3~ zwjTw68c7ood0V8dlkGiG@4*+uy>Gbisl+VM-XIL{8Xel>Qjc&Ei)1le!cxWXgieoZ v^*$s1ip$@z@{!CMPARs}P_!zF0C!4M7kB9lXdu8n5}%l-^XooI4a5kKas;&i<`J`$M=(O_6By@iu1&5X_pYlU{{fGfqvN-#9s zq0GCFDC%g=u$%Pwnbgv~VCW}vzuq`t2nJ>%nqW8|Bg8_4Iu>Iz(PpS89|F zv9SAp^X-gG#?=A0(%Y3Y@I^2@nKy}UpNa^GPcbYf8>9a_xEWy;S3_K3NayTMjBB{g z&~j!vRbtOrw^bH3jBo?%A#O4(orW9IoTtLZxP{vc;W1Z**nQ8ik_^vgRlz9f=$$ES zCbp%YVdtOk@X*sz>t5+h8UI_}2zO{E4DnEFVF!xmxu9+>?1Sr$lvem(GC30o)_;iFrD|?vvE8`Ul5}&aD6d diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$5.class b/bin/Backend/FrontendCommandProcessing/CommandAction$5.class deleted file mode 100644 index 2b7ae1d8dc7d9958be957e8f04b1301035b111c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmb7C+invv5Is(oY_nNt8cHdbLR$iCgT#Vpo=Pjxh>A$*MWU)I@#Jhwy2Y_2ueaX? z5;yU{2k=pp@v>42Z?QD?%=q}s&A)#C_<4SgO+-E_49~ZD@X5Yd6n2yt9I9i$Iv|GXFQgiuJ?zhBC$Sd3`>PKx2cR1t&-drp={jaQu3h` z3^jX_X6`Ul_4G*8!EiN%kC^~f%!a6=$xw|PV0Mry zv6oMV!W{n1w>8iSmq*;B&MuvvD}v$0v`MtPRD?%-l3_kt8~oqFjR1?d?c)|hJY{!6 z+`(OjhSlS-6bIVa?V_lDfO}Z>ai3xCB3z&5JQgOz3RW5XGcI$n|DItX>R-;Pgi+GL zTb-Lk?4)jnt$)75Q%6g!d#w_w-EY|y_C${u!oE_%^d!$RLEW0!6PbOZGmB-KK$YYQ zShMK{0iZ%sM?l^NY3pP=PtbYt1!3nKu6-&nbF|k810178dsyfJu4A4oh8tKY8M<^j wT%+?D;aA-Jj-`)eR&YV_?h-|#r10>dK(+CZPLIX`JR)(4IXbr(QFsvstpI+Nz2>NC$n_xH{Bg9;UI_6_E(PpS89xy-5 zwA?ACBWd6K?YA>Df~!4lGapyUz+Zyl!K_VmH|P=p@hOJIWNrBW1UDlr<6?*l4C##1 ziE#;+8CqgOg2-0|w;#$&4I*5@YKW^03&-UKr1QSCF|Oe{LwLwlA$Q*~EG2`JT~#n@ zI(lsiE96$@HSGNJ9PWBr8r^d(l<}`+Te^uEGsFX}rR^)8=aQy1wSqeOLallFk*0B(`_#yp+>Zj;rp{0H&}&fWk3 diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$7.class b/bin/Backend/FrontendCommandProcessing/CommandAction$7.class deleted file mode 100644 index 0b1c699b91d026d8db25609aa0092443a22c7409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 841 zcmb7CTW`}a6#m?XW=+G^l`+O;Fh+r_NCd>t9tKEIF;S`8keJ4^>v(B~YfFi<-vtsk z@xTw@M=_2|qz&F`>DcESfBw$RzkdJtd3uWHh3z^gVag9lN)VG>6^)f>*Q^2 zge;0or*Y+ZDQsqRcgu&z&_3oTJXV~p_eaN4SRW0B)v33%nTmzcqRextZQSQd@sW}Y z4LinFAN5f2?Lb?>zn%D4}+EA7}M4B6ULwh*Y16;xqSqzu4TroVQ x)8SgZ&j`Qb%6F`OB(sJyitHRktD^95XNv0LE}b4t1h_}y5_5EJ-6yGG&eKVPGJ$_?N zCh}bBgS7HI&zv;6yA>i}Xdm$to+?h)d!r+fxeyJ8mC{={snX2otgu#Sm-e|*e53?J z!yU@J`+%YjrwqGIkDo{_-7|*GWa`%&`wT(fj71X+7h;5%jZnv2j3(L)^~3|_hEj{& zVloo;-QRpWLz8i}&#m-!g%gk7U+xM)BbsMXRC+aHm9dahJ}31_7**_{2P&U+W|_EdK#E=ggu2 diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction$9.class b/bin/Backend/FrontendCommandProcessing/CommandAction$9.class deleted file mode 100644 index 1245beb7220669a50fa1312df078aff6fdf2af7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmb7C+invv5Is(oY_nNt8cHdbLV*C=AhDp9hpK=C5fza_iv;SsvoWoUV#mojc|Kr%n%Q>7PhZ=o(pQz%$CUAYm+-HQ|s#_=fK)+KLG$W zk|rYZwn$qe+k2wkgYSrYhq&;y#LUs&APnHpp*=432p2I=7Q-bhR18n(^te{<8{!|h p{1Z!G$gJU%;`14bRz(ruPKoN`E}a3*0k}uv6Z3R_-6yGG@edm&%t`Ut9ji++`6gR!y^Ha7Qsl`jDc?QQ!;&nvdhUhge}us184~d|Aa9;Mjo~LzUOy2bec`C^)YW&xoI~z zRbfd@JoKPWvM6(M!5J%IYI_t)Tf9EUL<#0vI36c5(`ssa4AgKtorXGtntb2hC23@0 z9_E%qVZMb5SO!i~IC(TDk0|~o7KBKPEKJ7H1{O0bN0AP*u;w(FXuwi2{A7itHMzqc z=K99k9y!Z$3zeucuyPz0EH<$MO9f?>g<}MTkvQUWEHSY+?lw~H`LX=JmuM?E6aiAh?Hv}%VOHQWyvxAl3X}2|p4@d7uE3SN5A8nQvQujc?$)q@H`bob z7SiUXo%O@1ZI0h9ol@Gj$9uZR_FWlAlcm9c%NxAmh;JzNbmx30F)VG4H*;L9{eXoJ z;u?*aVjuxSKpk`_}d9LlgJn9_eWJ9*}fVL$B?TL)>TKemtNsos37* zr>1n@Cf^O5Zm+eqv#Wzw_QEJ*BizPAS}#msl3?Y1r7$+P72+Vr?L}t;t9_0Ec_mSP%y=uj?V6Q$9i4^yi0@=W=L=)41cunoaF1o zOfk*1GC?85t&~DMfZiVMI|owRDdE(CwAR!)tl4Zi{)T@T_Nb{Gx|(-D^%?w<;8t(ve7}=P3?%J-C%w?b zfANZe|Bc>M#aI^hO92}Crb_Z&GBaAsZbTnU({jc91s2Pe>Eek}ZfbCUlx_P1O1%j!BC3b5c_+NiMY{J=Br}PfJoX zElIMpBu&ziL`O?f6)nj%v?N*3lHFcQwreffZ?$B@q^zVZ$KwQk&Zco!pp^emchv30 zoVt54Z}VQ%W>H6V0o8?B)KhKP%*RWzSVnz?=%-}SNPV^Fr)6|Cvbdz~q%1D2yNf5f3(NN5oiS{RMvXE{L zJWc-k3|Zszq0>BCRGyCn$$@N^YQ(-D$GjU#3xc!i%M28SQp1`#=IzK z7w^N>F+7NC_u)E4dBX@kw(1s?wJ#XKCui*DdXuNGC0Qxa-Z@s+9$zX`uM$b^S!!Xq@{QJV1BVVm%)oC&WT zj3*2Hmk-9T4`b!CW3K#7ZsmG9K|(w;=ifa!?Ws!aAHi=6&N)d(=>^uoi#+E`1=url zQGG6ly`0E`T^=GnUjU?2Lzys?RRB_+1Nl=9JM_ z|D0PnR#lXYQ5EV;Ojer;!17h`QVwioRALq4zu1^CTTrgfDS)ZSdGIeem=#fo%{};Q z)ypIJ&p~n6iZW#vpqLR#iA0aTYAYpo(*-Q#2ASaBR{aV7&Jg|$M$(I95XoJUToK9D xk!+6S+DNuVaziA0BDp1$N-l?Lz5iD3ImllW0)CHQ!C%Ij`HNH=n^X_Byb6a(;@w> zV`gWUK%le*{)I|?s466+NWcTFTGJ2lAzqM>=u6e7R(+rkm3XLBRaMo8)cxI^apKBR zS}gCm=bn2$f9Kw_`}x0r{n7R|PUB4t5rGp^R%JsvYr`|1>-c2Oxb?c_tSxwMMK&6? zQymT^XJy4*lb(i{K+iR+WewLXo?a+llNDc}t1(&en^rB<7BJ@SC>4E=p2h_d6Siaf zPYPsndyfZ}1Y&0xB!wtCb!gB9qPc;kB)SC90S49)M?#=`&UWN{vtE|oqE)U*70#_# zwI$25)jkx){B^q_Fgo{jt7NKORq2PtEWWhK2+U+QiTeb!m6_Gc#r&}p`f*Uh0fGJP zQk%YA8}?*XULRhtd|!HwjzhSg1{JryX{#)U?pAhy#9r(1Bo3=+#dfqL9uP>bOmVlC zKbFKXrns^&$=&5fZse5{1C%|a)EA~G<0dDNUb(ose0lB4jgi68S1HQ#{L<>OfAtDC zgG76!uuAR`#T6BILLk0USWxV!VvB9|QRQ|n%;Ho#i$a*i<4S9)FiC?kCNy0rTqqo# znVp+1Oi!Lw08Qw;YizhyxBSYw^aM`s#^B7l0) zI#khd24`8vRohu>_v(4x5Du;pt?72T#+k-@XeglLCf zDUYb>i6g`)3Xn$Bj3*Z(uOUg=!QBGo5w1P?50J_m>0h8bf1Ko}lts`>YS4n`q+Li+ z(oKm$Nnc=x4EAxSG?ahdPSu*gd*owU_3>;wI$`YpCCu~2H%RA=Bcx+7G>)sK!x&Oa${1Elr!k@y-8iY1wDFi)x{PnCrQ3KyEj>NmAELh$9W0h& zL&Z|uj1@}>GhQrdW};Y1np&~clQ5H{n%O~`G*hG7 zIM!?Sess!+p324d%6`mm%V|IVWx5>qs;~z0cF2THh&&E9TnD3m!mD+T7iI>(!bNhO)czR??^3 zu|%$i)t$yAJV)eIjV1ar@Hs1go?M3Y-pBK0UcWD?aT!;b@d|5v2C;1dvQL8$8v4J^ z|El0GqFXqs;c4+NhzOD4bO|mq{y|LCQ)mUPFP}Ej^9SCcfPXSrSP__c@OhT&&Syua z^mc!gTV{6`_u~VP@brQT}Tr3PNKX>JXVNS$g#qO6QZ@m}^~y>~QW1;WA#mC1t1KwTUMd1=6}XO;Iy@xk_ujY(k~yotEc& z>WYAoFEj=Es(~v_oD#4O_MXOw!1+?CTwh$iU8^)!*6v=fG|F3%ceg85$+cAmIlOM+ z49*Jl&-XA#@<%%;GzTDX&cX@w3k*{!c{6Hn%CKQ?>JDQC>~$r45l!l%kvfnF{D>T3ntRkTHW)yWO|HG zw(rR!mQO4ko5JrzDt4T}=wS^Xb@p{M!pKkKT>x92h(*UwGRPp9_%b0BQtDk=hIM_06b zf*dr+%I1CPs5z~B4pj@+af4p+x{0&t&kZf+7Z$z*O`qM8s^X}~ZuLYFIGryX^;-sC zVcA5Dy2p%;Wg!bUvBFMm*L?xW4HLHnF2s=WfG+Y)3d5+QqhdgLTCxaM|v}Q(@xk!`~==A^1GhgD7-lqT19;oKw;bV1lkR0QAuo z980cJ+M+xih}RkJ>3y!DP0W9T(P3nn@fvsU#MO*FMQ%NJdKaU=VC-iGQaI25ex`xt zZ^S3y?hGz4mVjT3As!MU#rV16F2;*lcN>$%rgIVqfNOroD64zEtM4x215-30G;3rmT1uo|<)r!Aj@`vB>-ea6x zeu58YcQF41V>`I^ze_)unvt(k`WO$v2DQx@){LawR diff --git a/bin/Backend/FrontendCommandProcessing/ReadFile.class b/bin/Backend/FrontendCommandProcessing/ReadFile.class deleted file mode 100644 index 29afeba613d1131034c4ba06285780b412d61f1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1545 zcma)6+fv(B6kSI+$T7kJ2a~iR#E=`d0dY&31}7~S)4F3q$4;H04`qaW0D+MhS#J9Q z{gAxnr4Q{)12bi&ACP}a={k~3p}cfFBc03M>$3NjKm7gYUuS1{fp2tZ0)=JEK9FwH zT=P9Q;9|u)Jha^Ax4vh~cH41x&6>2DYfek*NC*tXfN48$7;nC0+}cxM5_lr$r#mJa$F~PDbO>KZwMq-yrxW{2mJ=F zBcExi9vz-%5(F(w)ETP8^>*WKecnSGv=yn9|Yc!Sr0l*r*ml5>sxcPv}5nN z(zkqj&k5u~(DAoucAqPAx8rQtd-Nu!n^urQ8aEZ`5Is&@m6~r{hrqCbYv>iYQFUDT zs&lw4{nyrZODcDsZM7Pf@2GuzmG#=#ihI-vR4K#KRCJ7z<6K? z0!gJvSr!Vy@ZXLxP9N3k?r8!Q~>XLyw7)fGGRDbkyn zffHojBl~-pbBoV(h?Hhz9|pO*%`=1f%)%%5ly8MN6eIq?IE`ncR}e$^;(yUIj0dwL z^ejhmIAj=(P+|t+(MOUTnkrw+^?}M%_LH8{Dei6-{y_Ew_tsA_zBze<2d@fK$9Vi6 zMZTugh|L?nEaUk^fxIj-i}odr@T pVNY4BXQ9|!gm^A?guPew)G4w|*^#gmw2v6lu|`n>UlUbBC>VZpzeY#39iL5f>7X z??xmNOyY)w&=O0;rMPhC+O<1(E+p#t+Qwm;Chzxu{_per-zU%W@27d+=ea-reETkw zp@TCo++USvsX;l*6h43C&Kz%1d+nf;n(4uVU`8==o@HBAOTvh7*&q z@z@zRVIl@w=~uYoiOIp}#JQNl=C2LA@iJhr-MZ4x#xKRJ+?@uy*ljlHHI5;JJq(+p zdX;0J!G3w=roL@q%)r2-@QlYMBhj;yk$56zb#~PJrY}|#<}CZiWC|M^&=Yvg!oW1% z;n!58sGP<(EL2rQxN6~QQuqZ11lFf$2$TdERhO*A|gpk*6yWXaa7wvkK7Yb!ReQL^U9S3aBmQ>mP((pFHVlP=GYt#v^l{OOGre z%yPjk^vN_Lbki^F0KMX_0d{bhos5aGPD*@*A+CwDZn2Ns9N;b^JmOGx7Cqu~n6f4+ zL(IYvdBobol%yV%xq4)gqk?SAriQ4*x;(Q<1U$lRWo4f0FfY57Bo9j?|L^n2QxW`o zpYej57%NyjKC}3A!Qwc_P|3Urw4769q{pAlc=}?&>Juai^zEPNpsNLoPclDWY~C#@ WuCe|%Iosa&D_#Az?Wt@>r+)#I-Lp~v delta 1172 zcmZvaOH30{6o$V$owiseBJwCws00M0RUYzE5mW?PD+ns6pyC?^QH<_b*hEcqVPbSP z#>520#Em8pDHutNYZmTYyLRW!7^C&fw1EoU-1*PB|9|e8|D2yWUvfN4e?NYT$7$u} ztmnJZ3*BrnH*4iNWfZPMQE8A%o|`I#&+K#fsy%E?+-x&&;>w^}fyJyfaFb!79fl-q z)bM^vizruzK_^}24@Zd#o7sAPMu>>PA-c^PJ12KYujoV|?*k@h95u-jZN4+*3|2-?E95l)qz$0fVIz?o$1uqp6 zRk58Q^=xAo)wB_L%% z6(?~@6Tuk)n%#iQPBz=MjRYZCTS=+C!rFlS*|(;Oe|43Xv{m-gZnnCsf(Jemn&+Tz z3a8$7Usrj$bmE_<=Vkm`@pHzl$oGN1dHT&K?%e1KKPyjfOLCj^|CL{hwbztdm&Nm( zJn@En3p*^FRJ@4)Sh0IZ{DTfztWH^>5SfI@=AalK5#z(+NVoXeBe%U#36DtnD198` zBK?doz=XtiILSQ*dBkZRbCzce^GX=jc*3%yFrBo}LZ{>r%lBzvpAkDVWn9C89IU5O z)R{8-2<@B`bw$W|&>`-T4xZl(N!itOD#FTJiE?S;1@OC9Z4+M!%Z zE54i}j@n({N~^xY)#ax(n`dp+=(|-vXT|6m+AQ3wCd}!^NGI>%4?Rf U${KI#A3sPDs^w+AVY4Rw0ryp+ApigX diff --git a/bin/Backend/Runtime/Testfile.class b/bin/Backend/Runtime/Testfile.class new file mode 100644 index 0000000000000000000000000000000000000000..e2f30659005666a806a54c1c084f685be50f2816 GIT binary patch literal 390 zcmZ`!OHRWu6db3ap&_N^Cn0w1C<}ammP&xcDgudA-8-oXF0Lav4id*=RjCUOz@aEF zq20k|{AM)s{O0R>^|@Z-8pi=VhSOV-y-G9VPnB_MA^Aj>?pbLWz-Q>s#hc(-n4CYR zbD24YP?uW^!%5s2DyKBRu~xjts&qq!PNH%nTxBK0;4jbUS8O&X&MK1+$CPW2lu>TX z(7G5*8T`9qCPTE)jnF~J(2JFk57i=-b|O+u+YjR+6M8DFs`*Cr-HR$2&f@>d(N|$o zR5p|MRF$E-t#noQ!8zyxfDqV0o8EvX54$u`IfR6Jr0|B5=W>bYqp|E0)`2?MBaAk4 M9|y$fUP2E?KfoJY-~a#s literal 0 HcmV?d00001 diff --git a/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.class b/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.class index a42e7552992e3aafe1c8362f89c1f1e3838b9ebc..f0dd174045078d937c47a7801b2240a4af0b9dda 100644 GIT binary patch literal 2313 zcmb7FTUQfT6#fnbLdJsz@IvaPShXfmiPdUbV^xTv!2lL86x#|za!f{(89JGO*qf!7 z7vK8Uw?6i*msLVrSN#F~J${qLX8o`*wjYhklc)<_%dDHEGUOl)#zXHga!?Nek@IiAI!NA2eN7x1AJCZw9wtv~0_} zB+wVn4Vr}qx~=iL?O9cox@Ip}Y_+OvFP+E>gfdQ18E8ePL za_XLegXq*79hP_vM+71a4weM=H_Osdfo;UJ&609iTo}g$PXAwC3>-yggxkd>+Rz?G zQXsjFBu!=vBydurd`jT)%bD30-)nMAZ^wJ9zyioq5~uM7#YWVI*TohKa9fx5ny!MF zvl4IOoPfcYyj8P&iHG8MG^TF}>|7@*<5V2izI4f8H(`xQwfMAktIz&VkRu(wf(G2Eh5ORiE> zb95tTP``n3OolNb5Zm0spyL*mJ7gAkvX&%ngC{XsaFyw)oMo$ES)l&~JhDO6Yvj!N zc~XIYI*j)z`*jAIM}j)-xTnn#ZCNnkNU}a(Bra2yU33-&c4>e{>(x2sHV15X&MBCcyy;qc;5LmR zuWZ$b;C9Z&`e5hmY*qGxz`>W!O%5q)Ek~&d?DNZC~H$Rb)nzCmXodKvsKn;d$_*)99}lY5yJXT?jqJ6q8S1Xp6N)jTPJp9(RL>8Efkj z|E!?Mzdb7``8&tj8n~Zq!2ZSW>to*UU@z}`5kfC}jA0i)N--SZ;6H>E`f!EcnQJ(L zJT0?0hBA(03FolPDf5J@-(djXV-PR2F_ zv$%^zJS4hHj99`gqQ8ubc!W<_%M+Z%r}&Ia2z@33?2+bEFh_(fe9r63jW%}roPj9y;g3Q2*WVvMt5sZqwJYmA(zsQ$ zoD_qgMwb}GjGZ@S2&h$111W$Lyqh&kK?NsK$5U)Ts#g$31AoE#(~Sz6aGJrtWjc%2 z816Dp zV-}q`qeucZsZsqH=b~d+MYELjV}U3geVDXMd9!q=*}SLOU9|f_3kn}4dAR%4eylJI zXG{Bi@?7z0>E#2N?<;tKhqPNGpC_5sSI=l2>XBo|4vhRZ`2KfoQdm z$oeTz$P)p4&?*RMVcCVENiITKJ^M_@#VKtM&AAF%U9^$gm7~NS7ZFW#q0&Vx7t%ws zp@jltma~75A%e*=;97REt8vb zac}u65%S>?*%a!?wh+ZO$Y`gilcFv}(1T(0(q1FTq7QTQPpv?Og)zLOsxl_<9%-yn mwRSKd)?gqCN*%{zJfZn50?1Rjk4oBL;we29hQfaHXa4|=a<>Bj diff --git a/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.class b/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.class index 36adfedf37f0d06fd4baa776008c5a0eec09f10e..3c0b56c6bdf4913c8baaad57cd19c84029fa2bcf 100644 GIT binary patch literal 11953 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 literal 8970 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 Qa7l2uqj3t}@8hNa0CeesHUIzs diff --git a/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.class b/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.class index e135bab954912d13f5efac5841fb907a53496621..e7c5bc6cf94f8dd24ed37ca64e299e173db94445 100644 GIT binary patch literal 2730 zcmb7GOLG)e6#ni!(n+Twfe@e}NCbpr@|f_31R_a*I57_-ArM4EC(}$i4AXI@6B6(R zqCdcuRaRN$Mwh5%CYGsEcUD>MU9xhgJ6&lRztcSvG9hJ^H8r>IoO{l>=X~FHZ_iKv zeEZ$X3eMsK4IzcLi&;10*_mYgQle*kI5BXgziVXZ@_6r+#CTuVXjhz*5j*Eybkg>S zHIcS8L=?78TXWWYJa^a0q~d*-tc;yji01m8jLpS2Dg%`;G;C3*@hdCcR!23eDxk21rC-h25+-XM4et!tREkV2KKB16IaL+1ZZ9Q4M?Ous&&zo5^`u%gJ~- z9d%Mf9qJ7{k9`C)#f|3`R6?u=47{*vT@cG50}W!)#c#@XQd6FoV+NYUTp{MWPSTsw z&{F7U6}1t2o_yNrWI5srp~I(jG~=+KbcECt+E`0pD*^Is%0J)I$@~_N3=ybB4PLHmd~|Y1Pqzs&c%@ zT||QlRid!L**g<<))%9Q&7HK;qgK|Datg+XH|0=eNBaM-xT&HVw?O$Cb`X1+RsJ`Sxb<$l>?>8_2gM?@8JMNs_ zl}?MEhYVc8D}*iQ+#^Rk5D5*#Mg13bT@>|YToLlQeY7Ewki21-l4i`nb-c>>luht! z8xoDr5~$%dg=$~gYa}Bn#zhb}6=EAop^!>yd8!W~e8Rw_$V?ZRWrWqF)M87vTkG^$ z6w!4JQwlrQSJ6G|q?2}5#|=yyxD67d%~|PLd&o~z(oW%~(viYp8C(N1ctfGwbAu&b z5DjblUky+gC(=ou+RaX&&Y@ePRBF(0pGuZLx0UL{zd5N5!|l%6*6kTr?gF+hYO)I% zltXr1(Z3jEUc5=!acR2Zxe>LwK_NW*r6*)zrg%yU&6KKeL#Zij8uqNo+XL22;e>6X zB8p{5n>&iolxAZgZ5yxr*F~-myR+FzTQDHs>t8^v!ZI&O$`U|`-zdsBLT+zbD>w^5 z1jwrj2FFc+D(7$Ue;8ZB=GZc-$Cj{l5jC9Fa=Igroy(}>?79A?@FMogu)nE#+aeD7 zW8*TK$F{aEp>3c!oX62vb5kBC{iVIk(ZR^Gfu%vBx2T^N5yW(^i}}*8?;OWL)NtI1 z2)3gNCSNJLun)U&h!=S?_TUJf!zt`VH|o*Ljt96pjQtqL0oZ&Yq;U{)^uEtm!2>j+ zi`nXfE*aCqU;A(q=W&4;bmJT@GE0c_myqByz^PBr30)wDl|-pBmdDF%V=!{_YzZ=9 z_P2SkWf_;p>LN=R$>VAPuJ(u-5y1R$zZu!0{$S^PhOQC2W%!ZpQ8QW^8<@+?vbE;O z3GH)a1nH()Et1UR+7Gxv_}a_Oask~eGt2XMom=~Ow^x`IG+VK+QDau*k-Ta~GLl9&bxG4=>f-cBQ?**%rz;=ETFeN^jG56qvR7kfnLLE12tfnx zkp_^E2wDkJ8_5!4j`Br&jGyCZ#|iqKB&?@+>$YQzmspB_ux8MSx4H6&#C${oJ|QKa zk&eeCWRYZiPda{N)DzP2EBf#oeg7oMe`8REF{E^66G~?SY6_H+B;{z~AH%HVFHF<#0UoYO>phVc;*UihGFH`~L#BppIJr delta 642 zcmaJ<%We`;82--8Ff%<26dCA6EoqcdqnaUf)>aplGr zF!KamnYeQ^n3A~Cjc?$?DE`w%6J5AC|MmO7|B~||eWdblKaW1oX1ImcJAS__HyzjU zHW@^t++&bhL(Aq6F{dE{SwWORe`dZk>*g!3es}Cx9rN|@z~kVEg^)Ny#Avt6Jr0J1 zhEquT_gGa*F)a9d;)1A<{w`(nOE|4ynJ~v}1Jm8FcfGOW?rX>(>;I5SY8v^F@{FGs zmU1eJ46MMB##s#|oMVv9(a3f!hBdz^q&l5{nRX7Gfn|>yVaEBZm=~Mx(U?N-Pm%6tK4Ec!T(S^gB@^KMA0t4S@N2tOF~G%2m2y`fy=5$u z;D@uXABkDS4U#KRNzUy-LKI2Fu!uOeFpoP(phNyciryqh;ba_apg~>=+i22PVuaPO ZiQ5p!0@VsLq7W1?2CP$lo1y}CegR(9eYyYu diff --git a/src/Backend/BackendCommandProcessing/BackendInformationTransferThread.java b/src/Backend/BackendCommandProcessing/BackendInformationTransferThread.java deleted file mode 100755 index 872f0a8..0000000 --- a/src/Backend/BackendCommandProcessing/BackendInformationTransferThread.java +++ /dev/null @@ -1,51 +0,0 @@ -package Backend.BackendCommandProcessing; - -//package SIMULATOR; - -import java.util.concurrent.ConcurrentLinkedQueue; - -import java.io.*; - -public class BackendInformationTransferThread extends Thread { - - private static File fileBackendToFrontend = new File("../SIMULATOR_DAT/gui_set.dat"); - - private ConcurrentLinkedQueue queue; - - private int iSleepTime = 100; - - public BackendInformationTransferThread(ConcurrentLinkedQueue outputQueue) { - queue = outputQueue; - } - - private int writeOutputFile() { - int iSuccess = 0; - if(!queue.isEmpty()) { - String sPICInformation = queue.poll(); - FileWriter fw; - try { - fw = new FileWriter(fileBackendToFrontend); - BufferedWriter bw = new BufferedWriter(fw); - bw.write(sPICInformation); - bw.close(); - } catch (IOException e) { - e.printStackTrace(); - } - iSuccess = 1; - } - return iSuccess; - } - - @Override - public void run() { - - while (true) { - try { - Thread.sleep(iSleepTime); - } catch (InterruptedException e) { - e.printStackTrace(); - } - writeOutputFile(); - } - } -} diff --git a/src/Backend/EepromLoader/ReadEepromFile.java b/src/Backend/EepromLoader/ReadEepromFile.java index 2cf9159..f94f52c 100755 --- a/src/Backend/EepromLoader/ReadEepromFile.java +++ b/src/Backend/EepromLoader/ReadEepromFile.java @@ -10,14 +10,16 @@ import Backend.Microcontroller.PIC; public class ReadEepromFile { + ArrayList dataLines; + ArrayList oPCode; /** * Get OP-Code out of String-data-array. * @param dataArray String-array where OP-Code is. * @return String-array with only OP-Code. */ - public ArrayList getOPCode(ArrayList data) { + public void setOPCode(ArrayList data) { - ArrayList oPCode = new ArrayList(); + oPCode = new ArrayList(); for (int i = 0; i < data.size(); i++) { //If element in dataArray at position i is null or a space, this element is not added into the new oPCode-Array. @@ -25,26 +27,28 @@ public class ReadEepromFile { oPCode.add(data.get(i)); } } + } + public ArrayList getOPCode() { return oPCode; } /** * Gets whole data of the file. * @param file - * @return ArrayList * @throws IOException */ - public ArrayList getData(File file) { + public void setData(File file) { + //Creates String-arraylist with whole data. + dataLines = new ArrayList(); - ArrayList list = new ArrayList(); try { FileReader fR = new FileReader(file); BufferedReader br = new BufferedReader(fR); String sLine; while ((sLine = br.readLine()) != null) { - list.add(sLine); + dataLines.add(sLine); } br.close(); @@ -52,7 +56,13 @@ public class ReadEepromFile { } catch (IOException e) { e.printStackTrace(); } - return list; + } + + /** + * @return ArrayList dataLines from current this object. + */ + public ArrayList getData() { + return dataLines; } /** @@ -188,33 +198,28 @@ public class ReadEepromFile { * @param k index of file in String-Array "files". * @param oPIC of the main-function. */ - public void readFileAndWriteToEEPROM(File file, PIC oPIC) { + public void readFileAndWriteToEEPROM(PIC oPIC) { + if (oPCode.size() > 0) { + //Integer-array which will contain oPCode as int-values. + //Get an twodimensional array with int-values. + int[][] oPCodeAsInt = getOPCodeArrayCommandAsInt(oPCode); - //Creates String-arraylist with whole data. - ArrayList dataLines = getData(file); - - //Creates String-arraylist with oPCode. - ArrayList oPCode = getOPCode(dataLines); - - //Integer-array which will contain oPCode as int-values. - //Get an twodimensional array with int-values. - int[][] oPCodeAsInt = getOPCodeArrayCommandAsInt(oPCode); - - //Set length of eeprom for programend. - oPIC.getEeprom().setLengthEEPROM(oPCodeAsInt.length); - - //asCommands are written into EEPROM - for (int i = 0; i < oPCodeAsInt.length; i++) { - //The adress where the command will be written in the EEPROM - int memoryAdress = oPCodeAsInt[i][0]; - //System.out.println(memoryAdress); - - //Command that will be written into the EEPROM - int command = oPCodeAsInt[i][1]; - //System.out.println(command); + //Set length of eeprom for programend. + oPIC.getEeprom().setLengthEEPROM(oPCodeAsInt.length); //asCommands are written into EEPROM - oPIC.getEeprom().setElementXToValueY(memoryAdress, command); - } + for (int i = 0; i < oPCodeAsInt.length; i++) { + //The adress where the command will be written in the EEPROM + int memoryAdress = oPCodeAsInt[i][0]; + //System.out.println(memoryAdress); + + //Command that will be written into the EEPROM + int command = oPCodeAsInt[i][1]; + //System.out.println(command); + + //asCommands are written into EEPROM + oPIC.getEeprom().setElementXToValueY(memoryAdress, command); + } + } } } diff --git a/src/Backend/FrontendCommandProcessing/CommandAction.java b/src/Backend/FrontendCommandProcessing/CommandAction.java deleted file mode 100755 index 6180ef4..0000000 --- a/src/Backend/FrontendCommandProcessing/CommandAction.java +++ /dev/null @@ -1,393 +0,0 @@ -package Backend.FrontendCommandProcessing; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.Callable; - -import Backend.BackendCommandProcessing.InformationConnecter; -import Backend.EepromLoader.ReadEepromFile; -import Backend.Runtime.Environment; -import Backend.Microcontroller.PIC; - -public class CommandAction { - - int iAction; - String sValue; - Environment env; - - //List with methods - private List actions = new ArrayList<>(); - - private InformationConnecter informationConnecter = new InformationConnecter(); - - public CommandAction(int iAction, String sValue, Environment env) { - this.iAction = iAction; - this.sValue = sValue; - this.env = env; - - actions.add(callLoadFile);//0 - actions.add(callSaveProgrammState);//1 - actions.add(callSetBreakpoint);//2 - actions.add(callTogglePortA);//3 - actions.add(callTogglePortB);//4 - actions.add(callChangeQuarz);//5 - actions.add(callToggleWatchdog);//6 - actions.add(callReset);//7 - actions.add(callStep);//8 - actions.add(callStartProgramm);//9 - actions.add(callStopProgramm);//10 - actions.add(callLoadProgrammState);//11 - actions.add(callRemoveBreakpoint);//12 - actions.add(callRemoveAllBreakpoints);//13 - - actions.add(callErrorReadFailed);//14 - } - - public int execute() { - int iReturn = 0; - if (iAction > -1) { - try { - iReturn = (int)actions.get(iAction).call(); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - return iReturn; - } - - Callable callLoadFile = new Callable() { - @Override - public Object call() { - return loadFile(); - } - }; - - Callable callSaveProgrammState = new Callable() { - @Override - public Object call() { - return saveProgrammState(); - } - }; - - Callable callSetBreakpoint = new Callable() { - @Override - public Object call() { - return setBreakpoint(); - } - }; - - Callable callTogglePortA = new Callable() { - @Override - public Object call() { - return togglePortA(); - } - }; - - Callable callTogglePortB = new Callable() { - @Override - public Object call() { - return togglePortB(); - } - }; - - Callable callChangeQuarz = new Callable() { - @Override - public Object call() { - return changeQuarz(); - } - }; - - Callable callToggleWatchdog = new Callable() { - @Override - public Object call() { - return toggleWatchdog(); - } - }; - - Callable callReset = new Callable() { - @Override - public Object call() { - return reset(); - } - }; - - Callable callStep = new Callable() { - @Override - public Object call() { - return step(); - } - }; - - Callable callStartProgramm = new Callable() { - @Override - public Object call() { - return startProgramm(); - } - }; - - Callable callStopProgramm = new Callable() { - @Override - public Object call() { - return stopProgramm(); - } - }; - - Callable callLoadProgrammState = new Callable() { - @Override - public Object call() { - return loadProgrammState(); - } - }; - - Callable callRemoveBreakpoint = new Callable() { - @Override - public Object call() { - return removeBreakpoint(); - } - }; - - Callable callRemoveAllBreakpoints = new Callable() { - @Override - public Object call() { - return removeAllBreakpoints(); - } - }; - - Callable callErrorReadFailed = new Callable() { - @Override - public Object call() { - return readFailed(); - } - }; - - //Read file out of filepath and write it to EEPROM of oPIC. - private int loadFile() { - ReadEepromFile readEepromFile = new ReadEepromFile(); - env.getPIC().resetPIC(); - readEepromFile.readFileAndWriteToEEPROM(new File(sValue), env.getPIC()); - //env.getMainToFrontendQueue().add(informationConnecter.connectInformation(env.getPIC(), env.getActualLine(), env.getLastLine(), -2, -2, env.getRuntime(), env.getWatchdog().getTime())); - //TODO sent message to thread, to change value in file - return 0; - } - - private int saveProgrammState() { - //TODO Logic - //TODO sent message to thread, to change value in file - return 0; - } - - private int setBreakpoint() { - env.changeListBreakpoints(Integer.parseInt(sValue), true); - //env.getMainToFrontendQueue().add(informationConnecter.connectInformation(env.getPIC(), env.getActualLine(), env.getLastLine(), Integer.parseInt(sValue), -2, env.getRuntime(), env.getWatchdog().getTime())); - //TODO sent message to thread, to change value in file - return 0; - } - - private int togglePortA() { - int iBit = Integer.parseInt(sValue.substring(0,1)); - int iValue = Integer.parseInt(sValue.substring(2, 3)); - env.getPIC().getRam().set_PORTA_Bit_X_To_Y(iBit, iValue); - //TODO sent message to thread, to change value in file - return 0; - } - - private int togglePortB() { - int iBit = Integer.parseInt(sValue.substring(0,1)); - int iValue = Integer.parseInt(sValue.substring(2, 3)); - env.getPIC().getRam().set_PORTB_Bit_X_To_Y(iBit, iValue); - //TODO sent message to thread, to change value in file - return 0; - } - - private int changeQuarz() { - //XTA(L) not implemented - //TODO sent message to thread, to change value in file - return 0; - } - - private int toggleWatchdog() { - /** - * //WAT(CHDOG) - if (sFileFrontendToBackendCommand.substring(9, 11).equals("ON")) - { - //ON - liWorkWithWatchdog(1, 5); - } - - else - { - //OFF - liWorkWithWatchdog(1, 4); - } - */ - //TODO sent message to thread, to change value in file - return 0; - } - - private int reset() { - /** - * //RES(ET) - liDifferenceTimeNano = 0; - oPIC.resetPIC(); - //oPIC.Ram.set_OPTION(255); - //resetLines(); - bCreateGUIFile = true; - */ - env.getPIC().resetPIC(); - env.getPIC().getRam().set_OPTION(255); - //TODO sent message to thread, to change value in file - return 0; - } - - private int step() { - /** - * //STE(P) - //System.out.println("STEP " + oPIC.Ram.get_Programcounter()); - if (oPIC.Ram.get_Programcounter() < (oPIC.Eeprom.getLengthEEPROM() - 1)) - { - final long liTimeStart = System.nanoTime(); - - //Makes one step through the eeprom. - bitMaskDecisionMaker(oPIC.Eeprom.getElement(oPIC.Ram.get_Programcounter()), oPIC); - - final long timeEnd = System.nanoTime(); - - liDifferenceTimeNano += (timeEnd - liTimeStart); - - if (!oPIC.Ram.get_T0CS()) - { - oPIC.Ram.increment_TMR0(); - } - - bCreateGUIFile = true; - */ - env.step();//step in env or set/gets - //TODO sent message to thread, to change value in file - return 0; - } - - private int startProgramm() { - /** - * //STA(RT) - - final long liTimeStart = System.nanoTime(); - - liWorkWithWatchdog(1, 1); - - if ((iAccessBreakpoint(3, 0) > (-1)) && (iAccessBreakpoint(3, 0) <= (oPIC.Eeprom.getLengthEEPROM() - 1))) - { - while ((oPIC.Ram.get_Programcounter() < iAccessBreakpoint(3, 0)) && (cMenueSelection != 'p')) - { - //System.out.println("STEP " + oPIC.Ram.get_Programcounter()); - bitMaskDecisionMaker(oPIC.Eeprom.getElement(oPIC.Ram.get_Programcounter()), oPIC); - - if (!oPIC.Ram.get_T0CS()) - { - oPIC.Ram.increment_TMR0(); - } - - bCreateGUIFile = true; - } - iAccessBreakpoint(2, 0); - bCreateGUIFile = true; - System.out.println(iAccessBreakpoint(3, 0)); - } - - else - { - while ((oPIC.Ram.get_Programcounter() < ((oPIC.Eeprom.getLengthEEPROM() - 1))) && (cMenueSelection != 'p')) - { - //System.out.println("STEP " + oPIC.Ram.get_Programcounter()); - bitMaskDecisionMaker(oPIC.Eeprom.getElement(oPIC.Ram.get_Programcounter()), oPIC); - - if (!oPIC.Ram.get_T0CS()) - { - oPIC.Ram.increment_TMR0(); - } - - bCreateGUIFile = true; - } - } - - liWorkWithWatchdog(1, 2); - final long timeEnd = System.nanoTime(); - - liDifferenceTimeNano = timeEnd - liTimeStart; - - bCreateGUIFile = true; - */ - //TODO sent message to thread, to change value in file - return 0; - } - - private int stopProgramm() { - /** - * //STO(PP) - //watchdogThread.setWatchdogStatus(3); - cMenueSelection = 'p'; - */ - //TODO sent message to thread, to change value in file - return 0; - } - - private int loadProgrammState() { - //TODO sent message to thread, to change value in file - return 0; - } - - private int removeBreakpoint() { - env.changeListBreakpoints(Integer.parseInt(sValue), false); - //TODO sent message to thread, to change value in file - return 0; - } - - private int removeAllBreakpoints() { - env.changeListBreakpoints(-1, false); - return 0; - } - - private int readFailed() { - System.out.println("Fehler: Lesen der Datei fehlgeschlagen."); - return 0; - } - - /** - * //PRT( Scale) ? Prescaler is set from additional frontend. - try - { - if (sFileFrontendToBackendCommand.substring(4, 5) != null) - { - oPIC.Ram.set_OPTION((oPIC.Ram.get_OPTION() & 11111000) | (Integer.parseInt(sFileFrontendToBackendCommand.substring(4, 5)))); - bCreateGUIFile = true; - } - } - catch (StringIndexOutOfBoundsException e) - {} - */ - - /** - * //PRW( Scale) ? Prescaler is set from additional frontend. - try - { - if (sFileFrontendToBackendCommand.substring(4, 5) != null) - { - oPIC.Ram.set_OPTION((oPIC.Ram.get_OPTION() & 11111000) | (Integer.parseInt(sFileFrontendToBackendCommand.substring(4, 5)))); - bCreateGUIFile = true; - } - if (sFileFrontendToBackendCommand.substring(5, 6) != null) - { - oPIC.Ram.set_OPTION((oPIC.Ram.get_OPTION() & 11111000) | (Integer.parseInt(sFileFrontendToBackendCommand.substring(4, 6)))); - bCreateGUIFile = true; - } - if (sFileFrontendToBackendCommand.substring(6, 7) != null) - { - oPIC.Ram.set_OPTION((oPIC.Ram.get_OPTION() & 11111000) | (Integer.parseInt(sFileFrontendToBackendCommand.substring(4, 7)))); - bCreateGUIFile = true; - } - } - catch (StringIndexOutOfBoundsException e) - {} - */ -} \ No newline at end of file diff --git a/src/Backend/FrontendCommandProcessing/CommandDecoder.java b/src/Backend/FrontendCommandProcessing/CommandDecoder.java deleted file mode 100755 index 0ea11f3..0000000 --- a/src/Backend/FrontendCommandProcessing/CommandDecoder.java +++ /dev/null @@ -1,122 +0,0 @@ -package Backend.FrontendCommandProcessing; - -import java.util.regex.*; - -import Backend.Runtime.Environment; - -//TODO Changes at patterns have to occur at all methods! - -/** - * Class to decode commandstring. - */ -public class CommandDecoder { - - private String sActualCommand = ""; - - public CommandDecoder(String sActualCommand) { - this.sActualCommand = sActualCommand; - } - - /** - * Get type of command. - * @return int representation of pattern, -1 if no pattern matches - */ - public int getCommandType() { - - int iPatternMatched = 0; - - //Read file and save line to string - //sActualCommand = input.getActualCommand(); - - //External oparations - Pattern loadFile = Pattern.compile("^F_\\S*$");//0 - Pattern saveProgrammState = Pattern.compile("^S_\\S*$");//1 - Pattern setBreakpoint = Pattern.compile("^BS_\\d*$");//2 - Pattern togglePortA = Pattern.compile("^PA_\\d\\s(1|0)$");//3 - Pattern togglePortB = Pattern.compile("^PB_\\d$");//4 - Pattern changeQuarz = Pattern.compile("^Q_[\\d]{1,2}$");//5 - Pattern toggleWatchdog = Pattern.compile("W_[tf]$");//6 - Pattern reset = Pattern.compile("^R_$");//7 - Pattern step = Pattern.compile("^S_$");//8 - Pattern startProgramm = Pattern.compile("^RP_$");//9 - Pattern stopProgramm = Pattern.compile("^SP_$");//10 - Pattern loadProgrammState = Pattern.compile("^L_\\S*$");//11 - Pattern removeBreakpoint = Pattern.compile("^BR_\\d*$");//12 - Pattern removeAllBreakpoint = Pattern.compile("^BRA$");//13 - - //Internal operations - Pattern errorFileRead = Pattern.compile("ERROR FILEREAD");//14 - - Pattern[] patterns = {loadFile, saveProgrammState, setBreakpoint, togglePortA, togglePortB, changeQuarz, toggleWatchdog, reset, step, - startProgramm, stopProgramm, loadProgrammState, removeBreakpoint, removeAllBreakpoint, errorFileRead}; - - int iNumberOfPatterns = patterns.length; - - //Iterate through patterns and check if pattern matches to command. - for (int i = 0; i < iNumberOfPatterns; i++) { - Matcher matcher = patterns[i].matcher(sActualCommand); - boolean bMatchFound = matcher.find(); - if (bMatchFound) { - iPatternMatched = i; - i = iNumberOfPatterns; // break loop for performance - } else { - iPatternMatched = -1; - } - } - - return iPatternMatched; - } - - /** - * Get value of command - * @return - */ - public String getCommandValue(int iCommandType) { - - int iStringLen = sActualCommand.length(); - - String sValue = ""; - - switch (iCommandType) { - //0 F_ - //1 S_ - //5 Q_ - //6 W_ - case 0: - case 1: - case 5: - case 6: - case 11: { - sValue = sActualCommand.substring(2, iStringLen); - }break; - - //2 BS_ - //3 PA_ - //4 PB_ - //12 BR_ - case 2: - case 3: - case 4: - case 12: { - sValue = sActualCommand.substring(3, iStringLen); - }break; - - case 13: { - //No Value needed - }break; - - default: { - sValue = "undefined"; - }break; - } - - return sValue; - } - - public int executeAction(Environment env) { - int iAction = getCommandType(); - String sValue = getCommandValue(iAction); - CommandAction action = new CommandAction(iAction, sValue, env); - return action.execute(); - } -} \ No newline at end of file diff --git a/src/Backend/FrontendCommandProcessing/FrontendCommandProcessingThread.java b/src/Backend/FrontendCommandProcessing/FrontendCommandProcessingThread.java deleted file mode 100755 index f559b2a..0000000 --- a/src/Backend/FrontendCommandProcessing/FrontendCommandProcessingThread.java +++ /dev/null @@ -1,49 +0,0 @@ -package Backend.FrontendCommandProcessing; - -import java.io.File; - -import java.util.concurrent.ConcurrentLinkedQueue; - -/** - * Thread-class responsibility is to check every few milliseconds if fileBackendToFrontend exists and if so, then read it and send string through queue to main-thread. - */ -public class FrontendCommandProcessingThread extends Thread { - - private static File fileBackendToFrontend = new File("../SIMULATOR_DAT/gui_set.dat"); - - private ConcurrentLinkedQueue queue; - - private int iSleepTime = 100; - - ReadFile readFile = new ReadFile(); - - /** - * - * @param inputQueue overhanded from main-method - */ - public FrontendCommandProcessingThread(ConcurrentLinkedQueue inputQueue) { - queue = inputQueue; - } - - /** - * FrontendCommandProcessingThread-class responsibility is to check every few milliseconds if fileBackendToFrontend exists and if so, then read it and send string through queue to main-thread. - */ - @Override - public void run() { - - String sActualCommand = ""; - - while (true) { - try { - //Sleeps iSleepTime milli seconds - Thread.sleep(iSleepTime); - } catch(InterruptedException e) { - System.out.println(e); - } - if (fileBackendToFrontend.isFile()) { - sActualCommand = readFile.getActualCommand(); - queue.add(sActualCommand); - } - } - } -} diff --git a/src/Backend/FrontendCommandProcessing/ReadFile.java b/src/Backend/FrontendCommandProcessing/ReadFile.java deleted file mode 100755 index 8749043..0000000 --- a/src/Backend/FrontendCommandProcessing/ReadFile.java +++ /dev/null @@ -1,58 +0,0 @@ -package Backend.FrontendCommandProcessing; -//package SIMULATOR; - -import java.io.*; - -/** - * Class reads line out of file. - */ -public class ReadFile { - - private File fileFrontendToBackend = new File("C:/Users/Windows 10/Desktop/Studium/SS_21/Rechnerarchitektur_Projekt/gui_change.dat"); - private String sActualCommand; - - public ReadFile() {} - - /** - * Resets file from where data is read to new overhanded path. - * @param fileFrontendToBackend - */ - public ReadFile(String fileFrontendToBackend) { - this.fileFrontendToBackend = new File(fileFrontendToBackend); - } - - /** - * Reads FrontendToBackend-file and updates (-)sActualCommand. - * @return 1 at success, -1 at error - */ - private int readInputFile() { - - int iReturn = 0; - try { - FileReader fileReader = new FileReader(fileFrontendToBackend); - BufferedReader bufferedReader = new BufferedReader(fileReader); - sActualCommand = bufferedReader.readLine(); - bufferedReader.close(); - fileFrontendToBackend.delete(); - iReturn = 1; // success - } catch (IOException e) { - iReturn = -1; // error - } - return iReturn; - } - - /** - * Reads file and returns actual command as string - * @return command as string at success, ERROR at error - */ - public String getActualCommand() { - String line = null; - int iReadInputFile = readInputFile(); - if (iReadInputFile == 1) { - line = sActualCommand; - } else if (iReadInputFile == -1) { - line = "ERROR FILEREAD"; - } - return line; - } -} diff --git a/src/Backend/Runtime/Environment.java b/src/Backend/Runtime/Environment.java index 7dd959f..db2b9fa 100755 --- a/src/Backend/Runtime/Environment.java +++ b/src/Backend/Runtime/Environment.java @@ -6,10 +6,8 @@ package Backend.Runtime; -import java.io.File; import java.util.ArrayList; -import Backend.FrontendCommandProcessing.CommandDecoder; import Backend.Microcontroller.PIC; import Backend.Microcontroller.WATCHDOG; import Frontend.PIC_SIMULATOR_GUI_JAVA.GUIMainFrame; @@ -33,11 +31,12 @@ public class Environment { public Environment() { - GUIMainFrame oMainFrame = new GUIMainFrame(); + GUIMainFrame oMainFrame = new GUIMainFrame(this); watchdog = new WATCHDOG(); + oPIC = new PIC(); sEepromDataFile = ""; diff --git a/src/Backend/Runtime/Testfile.java b/src/Backend/Runtime/Testfile.java new file mode 100644 index 0000000..d4cae74 --- /dev/null +++ b/src/Backend/Runtime/Testfile.java @@ -0,0 +1,9 @@ +package Backend.Runtime; + +import java.util.ArrayList; + +public class Testfile { + ArrayList lsTestfile; + + +} \ No newline at end of file diff --git a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.java b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.java index 2c01813..9a7230f 100755 --- a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.java +++ b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.java @@ -1,43 +1,43 @@ package Frontend.PIC_SIMULATOR_GUI_JAVA; import java.awt.Color; -import java.awt.Font; -import java.awt.event.*; -import java.awt.FlowLayout; - -import java.util.ArrayList; +import java.awt.GridBagLayout; +import java.awt.GridBagConstraints; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; import javax.swing.border.Border; +import Backend.EepromLoader.ReadEepromFile; +import Backend.Runtime.Environment; + public class GUIMainFrame extends JFrame { + GUITestFileTable oGUITestFileTable; + GUIMenuBar oGUIMenuBar; /** * Constructor */ - public GUIMainFrame() { + public GUIMainFrame(Environment env) { this.setTitle("PIC-Simulator GUI"); // sets title of frame this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // if x is pressed, exit application (HIDE_ON_CLOSE-hides application, DO_NOTHING_ON_CLOSE-prevents user from closing application) //this.setResizable(false); // prevent frame from beeing resized - this.setSize(420, 420); //sets x and y dimension of frame - this.setLayout(new FlowLayout()); + this.setSize(1200, 840); //sets x and y dimension of frame + this.setLayout(new GridBagLayout()); - this.setJMenuBar(new GUIMenuBar(this)); + oGUITestFileTable = new GUITestFileTable(); + + this.setJMenuBar(new GUIMenuBar(env, this, oGUITestFileTable)); this.setVisible(true); //make frame visible this.setBackground(new Color(76, 78, 82)); ImageIcon guiLogo = new ImageIcon("./images/gui_logo.png"); // create an ImageIcon this.setIconImage(guiLogo.getImage()); // change icon of frame - + Color guiBackgroundColor = new Color(255, 255, 255); // 0xFFFFFF || 0, 0, 0 - //this.getContentPane().setBackground(guiBackgroundColor); //change color of background + //this.getContentPane().setBackground(Color.green); //change color of background //JLabel text = new JLabel(); // create label, passing of text at constructor possible //text.setText("Bro do you even code?"); // set text of label @@ -57,7 +57,21 @@ public class GUIMainFrame extends JFrame { //text.setHorizontalAlignment(JLabel.CENTER); // horizontally aligns label "text" (JLabel.LEFT, JLabel.CENTER, JLabel.RIGHT) //this.add(text); // add label to frame + + //getContentPane().setLayout(new BorderLayout()); + //this.add(new GUITestFileTable("./testfiles/TPicSim1.LST")); + GridBagConstraints oGridBagConstraints = new GridBagConstraints(); + oGridBagConstraints.gridx = 10; + oGridBagConstraints.gridy = 10; + oGridBagConstraints.gridheight = 10; + oGridBagConstraints.gridwidth = 500; + oGridBagConstraints.anchor = GridBagConstraints.PAGE_START; + this.add(oGUITestFileTable, oGridBagConstraints); + updateWindow(); } - + public void updateWindow() { + this.revalidate(); + this.repaint(); + } } \ No newline at end of file diff --git a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java index 84d3afb..2de643e 100644 --- a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java +++ b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java @@ -5,14 +5,26 @@ import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; +import java.io.File; +import java.util.ArrayList; import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JFileChooser; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; +import Backend.EepromLoader.ReadEepromFile; +import Backend.Runtime.Environment; + public class GUIMenuBar extends JMenuBar implements ActionListener { - GUIMainFrame oMainFrame; + Environment oEnv; + GUIMainFrame oGUIMainFrame; + GUITestFileTable oGUITestFileTable; + ArrayList oCheckBoxes; + ReadEepromFile oRef; + boolean[] bBreakpointSet; //Custom separators because addSeparator(default) looks not nice. JMenuItem oSeparator0; @@ -80,7 +92,7 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { * Constructor initializes menubar. * @param frame */ - public GUIMenuBar(GUIMainFrame frame) { //TODO maybe single components, with methods, of frame to set theme + public GUIMenuBar(Environment env, GUIMainFrame mainframe, GUITestFileTable guitft) { //TODO maybe single components, with methods, of frame to set theme //Custom Separators since default is not able to change background. oSeparator0 = new JMenuItem(); @@ -97,7 +109,9 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oSeparator3.setPreferredSize(new Dimension(0,1)); //Referrence to change different parts of gui for theme. - oMainFrame = frame; + oEnv = env; + oGUIMainFrame = mainframe; + oGUITestFileTable = guitft; //File oFileMenu = new JMenu(sGermanLang[0]); @@ -326,8 +340,7 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { public void actionPerformed(ActionEvent e) { //File if (e.getSource() == oLoadTestFile) { - System.out.println("Bro do you even code? test"); - //TODO + loadTestFile(); } if (e.getSource() == oLoadProgStateItem) { System.out.println("Bro do you even code? load"); @@ -352,7 +365,7 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { } //Change to light theme if (e.getSource() == oLightTheme) { - System.out.println("It burns, it burnnnnnnssssss"); //TODO + System.out.println("Death to all vampires!"); //TODO setTheme(aoLightTheme[0], aoLightTheme[1]); } @@ -367,7 +380,7 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { System.out.println("oResetProg"); //TODO } if (e.getSource() == oStepProg) { - System.out.println("oStepProg"); //TODO + oEnv.step(); } if (e.getSource() == oIntervalASAP) { System.out.println("oIntervalASAP"); //TODO @@ -399,6 +412,8 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { if (e.getSource() == oAbout) { //TODO } + + controlBreakpoints(e); } /** @@ -504,4 +519,59 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oSeparator3.setBackground(oColorSeparators); oSeparator3.setBorder(BorderFactory.createLineBorder(oColorSeparators, 2)); } + + private void loadTestFile() { + File oFile; + //select file to open + JFileChooser oFileChooser = new JFileChooser(); + int iResponse = oFileChooser.showOpenDialog(null); + if (iResponse == JFileChooser.APPROVE_OPTION) { + oFile = new File(oFileChooser.getSelectedFile().getAbsolutePath()); + System.out.println(oFile); + oRef = new ReadEepromFile(); + oRef.setData(oFile); + oRef.setOPCode(oRef.getData()); + oGUITestFileTable.setData(oRef.getData()); + ArrayList data = oRef.getData(); + int iDataSize = data.size(); + ArrayList opcode = oRef.getOPCode(); + int iOPCodeSize = opcode.size(); + for (int i = 0; i < iDataSize; i++) { + for (int j = 0; j < iOPCodeSize; j++) { + if (data.get(i).equals(opcode.get(j))) { + oCheckBoxes = oGUITestFileTable.getCheckboxes(); + oCheckBoxes.get(i).setEnabled(true); + oCheckBoxes.get(i).addActionListener(this); + } + } + } + bBreakpointSet = new boolean[iOPCodeSize]; + oRef.readFileAndWriteToEEPROM(oEnv.getPIC()); + oGUIMainFrame.updateWindow(); + } + } + + private void controlBreakpoints(ActionEvent e) { + int iOPCode = oRef.getOPCode().size(); + + if (iOPCode > 0) { + for (int i = 0; i < oCheckBoxes.size(); i++) { + if (e.getSource() == oCheckBoxes.get(i)) { + for (int j = 0; j < iOPCode; j++) { + if (oRef.getOPCode().get(j).equals(oRef.getData().get(i))) { + bBreakpointSet[j] = !bBreakpointSet[j]; + if (bBreakpointSet[j]) + System.out.println("Breakpoint " + j + " got set."); + else + System.out.println("Breakpoint " + j + " got reset."); + } + } + } + } + } + } + + public boolean[] getBreakpoints() { + return bBreakpointSet; + } } \ No newline at end of file diff --git a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.java b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.java new file mode 100644 index 0000000..f447009 --- /dev/null +++ b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.java @@ -0,0 +1,85 @@ +package Frontend.PIC_SIMULATOR_GUI_JAVA; + +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.GridLayout; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; + +import java.util.ArrayList; + +import javax.swing.JCheckBox; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class GUITestFileTable extends JPanel { + String sLine; + ArrayList oCheckboxes = new ArrayList(); + + public GUITestFileTable() { + this.setLayout(new GridBagLayout()); + GridBagConstraints oGridBagConstraints = new GridBagConstraints(); + oGridBagConstraints.gridx = 0; + oGridBagConstraints.gridy = 0; + oGridBagConstraints.gridheight = 20; + oGridBagConstraints.gridwidth = 20; //500, 10, 10, 480 + JTextField oFill = new JTextField("19"); + oFill.setEditable(false); + this.add(oFill, oGridBagConstraints); + oGridBagConstraints.gridx = 20; + this.add(new JCheckBox(), oGridBagConstraints); + oGridBagConstraints.gridx = 40; + oGridBagConstraints.gridwidth = 460; + oFill = new JTextField("Test"); + oFill.setEditable(false); + this.add(oFill, oGridBagConstraints); + } + + public void setData(ArrayList data) { + this.removeAll(); + + int iNumberOfLines = data.size() + 1; + + this.setLayout(new GridBagLayout()); + + JPanel oLineNumbers = new JPanel(); + oLineNumbers.setLayout(new GridLayout(iNumberOfLines, 1)); + GridBagConstraints oGridBagConstraints = new GridBagConstraints(); + oGridBagConstraints.gridx = 0; + oGridBagConstraints.gridy = 0; + oGridBagConstraints.gridwidth = 500; + oGridBagConstraints.gridheight = 600; + + JPanel oBreakpoints = new JPanel(); + oBreakpoints.setLayout(new GridLayout(iNumberOfLines, 1)); + + JPanel oFileLines = new JPanel(); + oFileLines.setLayout(new GridLayout(iNumberOfLines, 1)); + + for (int i = 1; i < iNumberOfLines; i++) { + JTextField oTestLine = new JTextField(data.get(i - 1)); + oTestLine.setEditable(false); + oFileLines.add(oTestLine); + JCheckBox oCheckbox = new JCheckBox(); + oCheckbox.setEnabled(false); + oCheckboxes.add(oCheckbox); + oBreakpoints.add(oCheckbox); + JTextField oNumber = new JTextField(i + ""); + oNumber.setEditable(false); + oLineNumbers.add(oNumber); + } + + this.add(oLineNumbers, oGridBagConstraints); + this.add(oBreakpoints); + this.add(oFileLines); + } + + public ArrayList getCheckboxes() { + return oCheckboxes; + } +}