From 8ad4fdd355667bc7f53b25fcdbce3c231a3eb592 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 12 Nov 2024 16:52:40 +0300 Subject: [PATCH] =?UTF-8?q?def:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=D1=80=D0=B8=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BD=D0=B5=D1=81=D0=BA?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=82=D0=BE=D1=87=D0=B5=D0=BA?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D1=80=D1=8F=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- params/operator_params.json | 28 ++-- src/gui/__pycache__/app.cpython-310.pyc | Bin 2791 -> 2754 bytes .../__pycache__/plot_window.cpython-310.pyc | Bin 8218 -> 8041 bytes src/gui/app.py | 6 +- src/gui/plot_window.py | 151 +++++++++--------- src/uml/__pycache__/creator.cpython-310.pyc | Bin 3190 -> 3022 bytes src/uml/creator.py | 40 ++--- .../diagram_parser.cpython-310.pyc | Bin 2687 -> 2720 bytes src/utils/diagram_parser.py | 14 +- 9 files changed, 119 insertions(+), 120 deletions(-) diff --git a/params/operator_params.json b/params/operator_params.json index 47ac1ec..76d9da0 100644 --- a/params/operator_params.json +++ b/params/operator_params.json @@ -1,16 +1,16 @@ { - "dist_open_start_1" : 0.005, - "dist_open_start_2" : 0.005, - "dist_open_after_1" : 0.006, - "dist_open_after_2" : 0.006, - "dist_open_end_1" : 0.010, - "dist_open_end_2" : 0.050, - "dist_close_end_1" : 0.005, - "dist_close_end_2" : 0.005, - "time_wielding" : 1, - "time_command" : 0.060, - "time_robot_movement" : 0.2, - "object_thickness" : 4.5e-3, - "force_target" : 5000, - "force_capture" : 500 + "dist_open_start_1": 0.005, + "dist_open_start_2": 0.005, + "dist_open_after_1": 0.006, + "dist_open_after_2": 0.006, + "dist_open_end_1": 0.01, + "dist_open_end_2": 0.05, + "dist_close_end_1": 0.005, + "dist_close_end_2": 0.005, + "time_wielding": 1, + "time_command": 0.06, + "time_robot_movement": 0.2, + "object_thickness": 0.0045, + "force_target": 5000, + "force_capture": 500 } \ No newline at end of file diff --git a/src/gui/__pycache__/app.cpython-310.pyc b/src/gui/__pycache__/app.cpython-310.pyc index cd7fa09b56917ea20f3c22dde5d8dcfe1515310b..00021ed885acc1c1fa38dcedb81db9115ede6aa1 100644 GIT binary patch delta 387 zcmaDZdPtNvpO=@50SIzqjnkbr^5(EG-C~%$faMgU?Br}#Yk66qRFM>j5CjnlAVLvD zD1iv&$wygln}Y;z@ua7gxaH(0mbhdlmw=Vr;sXi=r6%TtWaeh(r56_|gVeDD1%2~V zQj3%(UuO$pWSOkP{-s_9D5J?%1hz~9$i}b-B&GsVBv_;kq;7EnO$kUWO3W=TQU%HB zfCx1Z!3H8UL4+iTFaQzyAi@+xD1Zng_k*~43_y)VW P&FRO*$i~RS$nqBeEx1ho delta 362 zcmX>k`dpMZpO=@50SNY48mDV-4dL`Z@NeGs7s zB1}L8x@$pVx*)=Iavg^(t0s_XHF*I?6A#!Hmg0>3@*?fYdYlrhIzXv_$=;lqY#>EN gI+J&C>M^QMe#zOwXf-*H%bU}Oi;<0yhmqwk07Lsy9RL6T diff --git a/src/gui/__pycache__/plot_window.cpython-310.pyc b/src/gui/__pycache__/plot_window.cpython-310.pyc index df876a9ba991089b59cdaef0a0f5a90cfc6555e5..ad448ba48bce8fea2dc34ad25026d6034cea9cf2 100644 GIT binary patch delta 3094 zcmZ`*TaO&Y74GWW^z>ZzHtg=~?8UoT3y+PEagc&yJJ@T$;sFQwvJRt#@npJpJ>%KA zRQIlN(vvabA|bE@l!Ov^nGsSX%WqsH5=BCQlpnxT)DL+Bu>wnZh!QC;&Ub1qyE``B zs?(>=`Ks#FIdx9;2d8#^m8>Nawt`1p`}xLON8U|-%G&RK{inF|v)7c|gtL4>$sYXV z3OjBk8G+Ewpn0p}cJ$1{-oZd=TOEZd_(tjLC>NC5>|EC7PXHDg#fn?t;+2QeFYycs z68U#|#M$S|=MTTJF@H50^Q2iUZDGq%v8vHd3rCWxTP*(kkmyyVDx?55eR>3P8|ZKI<+rM!4=O>L@8Er6-lRPObSZITzwa-?baRym3-wUnk=eG)Jous0+unpS!+ zy9XnQS$za31E}|Dafyia^qSPqLLY(tW4T1UX~@|~M~gDY1Q(IZ5@$-zZh^G|4Ho~o z8QoBtHd@S2ILuE5G;AaVmj(<}1!lGx58?sKD9uD*w?_jbNDw9iOo!pf#vn@sv@Z$| z#!lh1Fs1Q#9Of~9ygd=bI!u1;4lAcRDr*7QerWHIeSCs~6PN%h-QB&zcy7qd$bDum z44Da+w7TT=Z|q|!{XFF4Lhp?GbB*S4z8g?gpr`!3Io z4eWWYw(V}ZRX>}QWhgWpw}MKgU2|{n-(sOw&X(mW@0T{+oKE9V=4zE1&n3Ewp7UTb zN%OsKsMGdyQKEU&xzor@^BL!xrDZ&xaSG|4{sQ{B(;BZvU~s zP?OtRf(<^ZPQZ}2Ct@Y)_;@9`Go#va}z zUS|GSH}m;2T(U!cks;t7xKMvNzwTb-TO^f*euD%#BCim6mB?#EUMKPfk)i*B4an{&%8cTr zz&*;k?_m~K;~KS5RUDn1-52{9fDtqq`+tL>qm7udHlpv~PVTU#E_=8TWzV3KfYYJl zYxuYl_n(SeI&P>gf{+hDv;c|tTH6W`r9cg|b%xtUYg!MGMIRuuVPdpx2Uah7G4RnI z9|w;cihja?NjR1hl~<5bj-h8eG4zg;GLCNCNsv+oJ$bG)`mmyu{`HT0_xMftVK?ai zV+WAk+a$X#?o2J6PIB_vo)rA4=!PTDlq!`K*T3$%)n`%cdf^uH(+ARrX%5P2Ia^M< zarCjAe&cBVF>z`7@X|FXzC`n=s+%l{cL{GwzHyYcxcF%LyQM48Qq=M2r{syG1K1aR z|0G`%chXDCIs4_j*Q@WlM=opj$~u)>Pkf&~kP64>Qh2(tRdPz6U#J#c?;DYv`Qn%? zMU(=lcjSs}r0ayCt-lFX_jDJRyBUe4YA#BvKMz%^kwjKg=Cwbul^r3*&8w zzZ2)@^DHGkp1-(EcLk@y%cB^0!_ delta 3186 zcmZ`5OKcm*b!WLh?vg8tq)B~kS=AwQ5?B5pagfw??AV5Z*l}zjX=$g#hO?qbQKU4x zvMptaZEG|E(mH4`4VvUcq6mT>ixfQ+2zuxtw*=^+Ko@9lEvic|xdjE<_hy$A72CU* zH}5|)Z{K^fduKmBXLqw%Q-bIAGp8EQJ^jA@d-CD?fBs0hDOJAn*&2D?uw@XYU|fLV zt?}QbFFeaCzR^!pG9Xl*m3pM31XAA|00y%a0G~)y0vD-k&4p`{w1+EHGJL{(GL$=; zk>)U`({Q6~ZL{6=Z@5nTCC7InTaZ_1LRVxq33ie0H#eG{hR5ucJCgqZEsS?cloF05%LuO!hBK_J5+eanw2XGKW-i6Yu3?> zgB}$C23g|2wvL2&{^4T-V!#lw_!1<6)RNd4N_sM2gpz6G$VI7_@>7B%QTb=`v~(XL zBlyZA_)2+brH-Vjp;g%07i*o9;6|m&v^2I9F0E4a01p>esdj(|9|?H+0iHVI8KbRh z!T4c9I1TQvrUmhdMv8)~2j~{ZP|pa^DP+dbq0mbQn&74ma82LpXT)+^Ll*vZn9-X7 zGx|w~fS{?_kQ?d%!dS~Tq@Es-m!vlaJtHszd0l0HgIQ{6>jW^VW%nnLKPAFCD-FnP zwU_RhJ*$`LWjk+yECn`S3mYA5z7{q)3QTEUh@e0cz(}dkQVP^`vbD=QIqwq0?#XyIxTn!%HicZb(tp$3& z5TpY$u!2mG#b^>~>vQo5^Z{uVA*wnQt#yqN$niZ){Jm5NFw*PouD8wH$f|cYHks>r z&2Fcv-*wv*DzmD0H{A{(d&2I2@KjXc<58e;h|Pje_Co~o=so3aZ?MBiP6Mb~P3!>I z*BsAXu3F(fbz)p}a-29dPMl^d=v8$Xb9N&0Ud`KVH+|n_Ohfl}-D%f__X}_+x0)T% zms$7j82JhusyZ2t#8v*T6fw1>m=Gq}IFbF5{>3TZKq%`tF7&J_vggbzJ_3{2N9@no(-q-Qn|v zIrTN*f56WcUL-RAabYTa8?p%Q5ee^+p6rvB9FRc9hDV{t0G;v`Xk^eys6y2TGS#RK zukk>Gt~=C*syv`=j4( zKaV&GYjejeoOm6?pTO`iEG9WFA1C-8gX*y3LH1_@>WP1JXfDLgH+(EWMt=!2BAZ+A zZ{(9cWHBWTInHaK;1yK-x1ij|ORaWW?kPRhS6dp~fHKUwZ?w_}^ZkL+(-MsoYJ`te z(S5aV!tIF;tN@ZcAgiP-4N^Vhv6A#-B_`x=rk@RrB*kpN(+U3c1P~??TP2~EqXtbU zd1?1^)TCBIP4sj8kENLzyjb=V?i;cI|9cF19{*2i@zqI&VI1omcaW?jcwEjz6PKFp z_IcO8>$;sQ(0C%{#^v)bCaJ_YA_f&bKK-{&`Zj39CGrlxGBZoM+?_c|{{GpAGk+oE zUA{gy3rBfp?h?7hznq&}`~|2-s`%B8uSCV$Vm_njhM!p+fa;UBWFw* QdBf&k9X?G~xN^k(KW~uRng9R* diff --git a/src/gui/app.py b/src/gui/app.py index b406651..eac2fe9 100644 --- a/src/gui/app.py +++ b/src/gui/app.py @@ -21,7 +21,9 @@ class app: self.system_params = read_json("params/system_params.json") self.parser = DiagramParser(system_config=self.system_params) - self.parser.setData("trace_samples/2024_11_08-19_30_52.csv") + self.parser.setData("") + #trace_samples/2024_11_08-19_30_52.csv + self.opt_algorithm = OptAlgorithm(operator_config=self.operator_params, system_config=self.system_params) generator = Request(server_url='http://www.plantuml.com/plantuml/svg/') @@ -62,7 +64,7 @@ class app: self.opt_algorithm = OptAlgorithm(operator_config=self.operator_params, system_config=self.system_params) self.ideal_times = self._get_ideal_timings(self.opt_algorithm) - self.uml_creator.update_uml(system_config=self.system_params, + self.uml_creator.update_uml(operator_config=self.system_params, ideal_time=self.ideal_times, bool_dict=self.bool_dict, float_dict=self.float_dict, diff --git a/src/gui/plot_window.py b/src/gui/plot_window.py index e58caee..1f4d6a4 100644 --- a/src/gui/plot_window.py +++ b/src/gui/plot_window.py @@ -88,63 +88,69 @@ class PlotWindow: self.p13.clear() self.l13.clear() - if self.theor_mode: - timings = np.arange(20000)/10 - else: - timings = self._plotRealData() - self._plotIdealData(timings) + if not self.theor_mode: + self._plotRealData() + self._form_idealdatGraph() def _getIdealTimings(self): data = self.opt.Ts self.idealTime = [data['tclose'], data['tgrow'], self.opt.getMarkOpen(), data["tmovement"]] + self.WeldData = self.opt.calcPhaseGrow(self.idealTime[1]) - def _form_idealdatGraph(self, times): + def _form_idealdatGraph(self): if self.theor_mode: - closure_start = 0 - compression_start = self.idealTime[0]*self.scaler - welding_start = sum(self.idealTime[:2])*self.scaler - opening_start = (sum(self.idealTime[:2])+ self.WeldTime)*self.scaler - opening_end = (sum(self.idealTime[:3])+ self.WeldTime)*self.scaler - else: - closure_start = self.timings_dict["closure"][0]*self.scaler - compression_start = self.timings_dict["compression"][0]*self.scaler - welding_start = self.timings_dict["welding"][0]*self.scaler - opening_start = self.timings_dict["opening"][0]*self.scaler - opening_end = self.timings_dict["opening"][1]*self.scaler + self.timings_dict["closure"] = [[0, self.idealTime[0]]] + self.timings_dict["compression"] = [[self.idealTime[0], sum(self.idealTime[:2])]] + self.timings_dict["welding"] = [[sum(self.idealTime[:2]), sum(self.idealTime[:2])+self.WeldTime]] + self.timings_dict["opening"] = [[sum(self.idealTime[:2])+self.WeldTime, sum(self.idealTime[:3])+self.WeldTime]] - self.idealPhase0 = closure_start + (self.idealTime[0])*self.scaler #Подъезд - self.idealPhase1 = compression_start + (self.idealTime[1])*self.scaler #Сжатие - self.idealPhase2 = welding_start + (self.WeldTime)*self.scaler #Сварка - self.idealPhase3 = opening_start + (self.idealTime[2])*self.scaler #Разъезд - self.idealPhase4 = opening_end + (self.idealTime[3])*self.scaler #Последнее смыкание - - self.x_splitter = np.array([[closure_start, self.idealPhase0], - [compression_start, self.idealPhase1], - [welding_start, self.idealPhase2], - [opening_start, self.idealPhase3], - [opening_end, self.idealPhase4]]) - data = [] - for time in times: - if time >= closure_start and time <= self.idealPhase0: - x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseClose((time-closure_start)/self.scaler) - elif time >= compression_start and time <= self.idealPhase1: - x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseGrow((time-compression_start)/self.scaler) - elif time >= welding_start and time <= self.idealPhase2: - x_fe, x_me, v_fe, v_me, f = data[-1] - elif time >= opening_start and time <= self.idealPhase3: - x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseOpen((time-opening_start)/self.scaler) - elif time >= opening_end and time <= self.idealPhase4: - x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseMovement((time-opening_end)/self.scaler) - else: - if data: - x_fe, x_me, v_fe, v_me, f = data[-1] - else: - x_fe, x_me, v_fe, v_me, f = 0,0,0,0,0 - data.append([x_fe, x_me, v_fe, v_me, f]) - data = np.array(data).T - return data + delta = 10 #points_per_ms + for key, items in self.timings_dict.items(): + if key == 'closure': + ideal_time = self.idealTime[0] + calc = self.opt.calcPhaseClose + color = qts.RGBA[0] + elif key == 'compression': + ideal_time = self.idealTime[1] + calc = self.opt.calcPhaseGrow + color = qts.RGBA[1] + elif key == 'welding': + ideal_time = self.WeldTime + calc = self._returnWeldData + color = qts.RGBA[2] + elif key == 'opening': + calc = self.opt.calcPhaseOpen + ideal_time = self.idealTime[2] + ideal_closure = self.idealTime[3] + color = qts.RGBA[3] + color_closure = qts.RGBA[4] + + for item in items: + item_data = [] + time_data = [] + for i in range(0, int(ideal_time*self.scaler)*delta): + time = i/delta + item_data.append(calc(time/self.scaler)) + time_data.append(time+item[0]*self.scaler) + #print (item_data[-1], time_data[-1]) + self._plotIdealData(np.array(time_data), np.array(item_data).T) + self._addBackgroundSplitter([item[0]*self.scaler,item[0]*self.scaler + time], color) + + if key == 'opening': + item_data = [] + time_data = [] + for i in range(0, int(ideal_closure*self.scaler)*delta): + time = i/delta + item_data.append(self.opt.calcPhaseMovement(time/self.scaler)) + time_data.append(time+item[1]*self.scaler) + self._plotIdealData(np.array(time_data), np.array(item_data).T) + self._addBackgroundSplitter([item[1]*self.scaler,item[1]*self.scaler + time], color_closure) + def _returnWeldData(self, _): + return self.WeldData + + def _plotRealData(self): for i, (key, dat) in enumerate(self.float_dict.items()): @@ -162,43 +168,40 @@ class PlotWindow: self.l13.addItem(curve, key) return dat[0] - def _plotIdealData(self, times): - data = self._form_idealdatGraph(times) - - x_fe = pg.PlotDataItem(times, data[0]*1000, pen=pg.mkPen(color=qts.colors[8], width=2), name='x_fe', autoDownsample=True, downsample=True) - x_me = pg.PlotDataItem(times, data[1]*1000, pen=pg.mkPen(color=qts.colors[9], width=2), name='x_me', autoDownsample=True, downsample=True) - v_fe = pg.PlotDataItem(times, data[2]*1000, pen=pg.mkPen(color=qts.colors[8], width=2), name='v_fe', autoDownsample=True, downsample=True) - v_me = pg.PlotDataItem(times, data[3]*1000, pen=pg.mkPen(color=qts.colors[9], width=2), name='v_me', autoDownsample=True, downsample=True) - f = pg.PlotDataItem(times, data[4], pen=pg.mkPen(color=qts.colors[8], width=2), name='f', autoDownsample=True, downsample=True) + def _plotIdealData(self, time, data): + x_fe = pg.PlotDataItem(time, data[0]*1000, pen=pg.mkPen(color=qts.colors[8], width=2), name='x_fe', autoDownsample=True, downsample=True) + x_me = pg.PlotDataItem(time, data[1]*1000, pen=pg.mkPen(color=qts.colors[9], width=2), name='x_me', autoDownsample=True, downsample=True) + v_fe = pg.PlotDataItem(time, data[2]*1000, pen=pg.mkPen(color=qts.colors[8], width=2), name='v_fe', autoDownsample=True, downsample=True) + v_me = pg.PlotDataItem(time, data[3]*1000, pen=pg.mkPen(color=qts.colors[9], width=2), name='v_me', autoDownsample=True, downsample=True) + f = pg.PlotDataItem(time, data[4], pen=pg.mkPen(color=qts.colors[8], width=2), name='f', autoDownsample=True, downsample=True) self.p11.addItem(f) - self.l11.addItem(f, 'Ideal force') + #self.l11.addItem(f, 'Ideal force') self.p12.addItem(x_fe) - self.l12.addItem(x_fe, 'FE POS') + #self.l12.addItem(x_fe, 'FE POS') self.p12.addItem(x_me) - self.l12.addItem(x_me, 'ME POS') + #self.l12.addItem(x_me, 'ME POS') self.p13.addItem(v_fe) - self.l13.addItem(v_fe, 'FE VEL') + #self.l13.addItem(v_fe, 'FE VEL') self.p13.addItem(v_me) - self.l13.addItem(v_me, 'ME VEL') - self._addBackgroundSplitter() - self._addEquidistances(times, data) + #self.l13.addItem(v_me, 'ME VEL') + #self._addBackgroundSplitter() + #self._addEquidistances(time, data) - def _addBackgroundSplitter(self): + def _addBackgroundSplitter(self, x, color): alpha = self.alpha y01 = np.array([10000, 10000]) y0_1 = np.array([-10000, -10000]) - for i, _ in enumerate(self.x_splitter): - a01 = pg.PlotDataItem(_, y01, pen=pg.mkPen(color=qts.colors[8], width=2), name=' ') - a0_1 = pg.PlotDataItem(_, y0_1, pen=pg.mkPen(color=qts.colors[8], width=2), name=' ') - bg1 = pg.FillBetweenItem(a01, a0_1, qts.RGBA[i]+(alpha,)) - bg2 = pg.FillBetweenItem(a01, a0_1, qts.RGBA[i]+(alpha,)) - bg3 = pg.FillBetweenItem(a01, a0_1, qts.RGBA[i]+(alpha,)) - self.p11.addItem(bg1) - self.p12.addItem(bg2) - self.p13.addItem(bg3) + a01 = pg.PlotDataItem(x, y01, pen=pg.mkPen(color=qts.colors[8], width=2), name=' ') + a0_1 = pg.PlotDataItem(x, y0_1, pen=pg.mkPen(color=qts.colors[8], width=2), name=' ') + bg1 = pg.FillBetweenItem(a01, a0_1, color+(alpha,)) + bg2 = pg.FillBetweenItem(a01, a0_1, color+(alpha,)) + bg3 = pg.FillBetweenItem(a01, a0_1, color+(alpha,)) + self.p11.addItem(bg1) + self.p12.addItem(bg2) + self.p13.addItem(bg3) self.p11.setYRange(-1000, 5000) self.p12.setYRange(-50, 250) @@ -216,8 +219,6 @@ class PlotWindow: self.p11.addItem(c1) - - def _makeFiller(self, x1, y1, x2, y2, color): alpha = self.alpha eq1 = pg.PlotDataItem(x1, y1, pen=pg.mkPen(color='#000000', width=1)) diff --git a/src/uml/__pycache__/creator.cpython-310.pyc b/src/uml/__pycache__/creator.cpython-310.pyc index ec5f08931888ab0fdbbac41d918fff154a157cf3..103e6c4c8ec0f013de3fe1a8af09b1e6f539dca4 100644 GIT binary patch delta 1058 zcmZvaK~EDw6vyYy?#_0*rP5O9LJ1hC(I&t}3#bP)8ueg|%2h*ZciB{yU6?Hr>NZU@ z#=G+c;1d|*MGwaK1xyULJ$fVDJ!mw(sY_cEHrbaqzxV$Coq0PytgppvFf^1V`247AB2P)!!U+5HfZQaHy+^dIwADzlVT1AstSB}eCvD9yAybf* zyG-q}95M~r95NM%Z{V8Yy4vm0WlyA{>$NtEU|)+EdUXgES%KK8B5CT8@)B&LNL+dV zK$0djPkPb`r-}H4_qAqE+wakeCw+;2duco4Q+a4R(@CtsrS?$&Gj=w~7360I_;8YI z$a4ccpX3brNT0i@wr*#Vb-|Sr?oP1R(di*Mfdr5K*QnSyfnE*IFkq6@2DD?R)ls3I z?l6!0>Dnh2{kGyMMk1#cI`VJfF7RkHf=G|#ep2h|DydlaV!iGK;SP5=;5CcQda$|0 zoiJi`s|+LdBLtL z@2q^>=~u^sYgdJ(-JumjywyrfYc!qBP<+#@SytOZQ#)p1z2-SQR>CHajVD3it=Wxw zvy$RWn5`4N544Tu$`K>)@*D#u_}$kIkr%~g(VeKV34N;D8Mk}Aw|nzL77eg z{Y8JO+4ry6M}UmDp4zdxUc87ZJ}Oz)B*QP*ijR^g<9P5`{m& zW(_{zL!hlq$Kj=_uhN%x#ymff7bslJ5i}*De!Y1u6t*d zFV1%|{GlpJUpZ3ZZ-9i7hB6?cQlU~sr9q{MN{34C6KXVYjapTx>8UWzO~!c`tC{&i zU7?of&2lu!8KMZ1Y#?cKLi(Ig5jgrR$IB0l8AB!DC`TiCVYEKBI&aNETSK{p*m{OK zc8CTSgt^hF^%+*yVp-T5u{65aP_j%gYKE$(3=CS4*%42r!y9q{?r2rkD%7=1e@WIF z^y``avaEIJH>Q2qDmU3Ao5$$NFbA0sEet0fF^+L?_=fwM%w?7cj+n!1lbd2b|64no z)inkv3{hfA!w9d@L}wi5lnbUX)V|Tr^-bUyhx)G4YCh$;P7uW>%;k0`>K-#Uj{PX) zxp!_r{m|pN=-3URUid;01+_X_9T8gjM}77@w-T=PTF!C@7lfv^V9 zDvl1lj*Sh3O@uj#2hig>X24Bx Xo>0K7*`xH-uBVUf8re$s?YI8`4|Fq@ diff --git a/src/uml/creator.py b/src/uml/creator.py index c0cb397..70c1774 100644 --- a/src/uml/creator.py +++ b/src/uml/creator.py @@ -7,32 +7,22 @@ class UMLCreator: def _build_data(self): + real_data = [] + ideal_data = [] if not self.theor_mode: - closure = self.timings_dict["closure"] - compression = self.timings_dict["compression"] - welding = self.timings_dict["welding"] - opening = self.timings_dict["opening"] - real_data = [ - [closure[0]*self.scaler, 'closure #green'], - [closure[1]*self.scaler, '{-}'], - [compression[0]*self.scaler+0.0001, 'compression #green'], - [compression[1]*self.scaler, '{-}'], - [welding[0]*self.scaler+0.0001, 'welding #green'], - [welding[1]*self.scaler, '{-}'], - [opening[0]*self.scaler+0.0001, 'opening #green'], - [opening[1]*self.scaler, '{-}'], - ] - - ideal_data = [ - [closure[0] * self.scaler, 'closure #yellow'], - [(self._ideal_time[0]+closure[0]) * self.scaler, '{-}'], - [compression[0] * self.scaler, 'compression #yellow'], - [(compression[0] + self._ideal_time[1]) * self.scaler, '{-}'], - [welding[0] * self.scaler, 'welding #yellow'], - [(welding[0] + self.WeldTime)*self.scaler, '{-}'], - [opening[0] * self.scaler, 'opening #yellow'], - [(opening[0] + self._ideal_time[2]) * self.scaler, '{-}'], - ] + + for key, items in self.timings_dict.items(): + if key == 'closure': ideal_time = self._ideal_time[0] + elif key == 'compression': ideal_time = self._ideal_time[1] + elif key == 'welding': self.WeldTime + elif key == 'opening': ideal_time = self._ideal_time[2] + + for item in items: + real_data.append([item[0]*self.scaler+0.0001, str(key) + '#green']) + real_data.append([item[1]*self.scaler, '{-}']) + + ideal_data.append([item[0]*self.scaler+0.0001, str(key) + '#yellow']) + ideal_data.append([(item[0]+ideal_time)*self.scaler, '{-}']) else: real_data = [] diff --git a/src/utils/__pycache__/diagram_parser.cpython-310.pyc b/src/utils/__pycache__/diagram_parser.cpython-310.pyc index aad896ab2fa8dee1ef6f5e45ad74c1dbe797238f..cec984cfee101d2b1e3807f38d2a9e9e87e83093 100644 GIT binary patch delta 792 zcmZ8fOK;Oa5cc|+IB^I`AEeMAsHo}y;Za(IKmydlArj?KggAhZ8!wI<$4Z2PG^REBD*q|)v&SFTB28J@VxPzx8QoGQ2-SL0lD z%ISg&T!VA@DVG!6z|9XePvUOnRJ$c5$5ZtU;eG17k3KX~!{vUi**%cq!$ee*MwL`e zxh1woBdF$g@oC_+H1Z0zVzLqwYS=G(Vxe7<8_JJWBI49P}tS3C(n;&p&hR92Bsk z_MN1YnX&JMPO#X#>q zxBAT^3j7Twh9!d=K8RepI#K@6zukp7jx!~Q_Myy?ZGbi*Xb5KzX)kaBsBsJ@1p!Xz z(NDTK5?Er5+_?o<#&Yprun?W%VV!xouNzk}#cQ&4VGq}kSjT`pU=4%la2?TqK6TFB uW9_`(Si!0|h)amXhH)mi!b7G8ew>J|P-hR#d1jfjq{f!aWwO9p=GtH8&$CPb delta 768 zcmZuuO;6QO5bf>9ZC|0_7l8*s2tLqaL4=rcW4n zGBNfs$|Lbp|9bLSdp{BCU9GEy1_oxxxDD2<*;q$zGPHL8)lvT+SIxFvyy3!1!*z0f zSxvWXcEjehY}c-uZM!uCf-^F>xm0%Z)=H64-k9?4&^<98?DCUsCu2|K{ZH*)k6}jh;6=or)j3ypeIiG z5?`$q=X|H7pr4M4OFqY+)QVaA&nsz;l6WMIH2(yXNc%Qe_(CGeBoB%r%0g)!(d{rp zwpprL5M*)movU5If_URB&q$Ws7#!wMyDq*szxLHkv~i!S{-8!!r-o|;PYG224a(XJ yfO+Kh#Azp4U8L$Vf!f0(%4j0+5u}+WWu dict: return self.boolDict