dev: конец II идеального этапа совмещен с реальным

This commit is contained in:
Andrew 2024-11-12 18:23:22 +03:00
parent 2a7e8d641f
commit ab56316930
4 changed files with 79 additions and 51 deletions

View File

@ -104,28 +104,14 @@ class PlotWindow:
delta = 10 #points_per_ms delta = 10 #points_per_ms
for key, items in self.timings_dict.items(): for key, items in self.timings_dict.items():
for item in items:
item_data = []
time_data = []
if key == 'closure': if key == 'closure':
ideal_time = self.idealTime[0] ideal_time = self.idealTime[0]
calc = self.opt.calcPhaseClose calc = self.opt.calcPhaseClose
color = qts.RGBA[0] 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): for i in range(0, int(ideal_time*self.scaler)*delta):
time = i/delta time = i/delta
item_data.append(calc(time/self.scaler)) item_data.append(calc(time/self.scaler))
@ -134,7 +120,62 @@ class PlotWindow:
self._plotIdealData(np.array(time_data), np.array(item_data).T) self._plotIdealData(np.array(time_data), np.array(item_data).T)
self._addBackgroundSplitter([item[0]*self.scaler,item[0]*self.scaler + time], color) self._addBackgroundSplitter([item[0]*self.scaler,item[0]*self.scaler + time], color)
if key == 'opening': elif key == 'compression':
ideal_time = self.idealTime[1]
calc = self.opt.calcPhaseGrow
color = qts.RGBA[1]
for i in range(int(ideal_time*self.scaler)*delta, 0, -1):
time = i/delta
item_data.append(calc(time/self.scaler))
time_data.append(item[1]*self.scaler-(ideal_time*self.scaler-time))
#print (item_data[-1], time_data[-1])
self._plotIdealData(np.array(time_data), np.array(item_data).T)
self._addBackgroundSplitter([(item[1]-ideal_time)*self.scaler, item[1]*self.scaler], color)
temp = item_data[0][4]
x = [time_data[0], time_data[-1], time_data[-1]-0.0001]
y = [temp, temp, temp]
a1, b1, c1 = self._calculate_equidistant(x, y, 2.5, 3)
self.p11.addItem(a1)
self.p11.addItem(b1)
self.p11.addItem(c1)
elif key == 'welding':
ideal_time = self.WeldTime
calc = self._returnWeldData
color = qts.RGBA[2]
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)
x = [time_data[0], time_data[-1], time_data[-1]+0.0001]
y = [item_data[0][4], item_data[0][4], item_data[0][4]]
a1, b1, c1 = self._calculate_equidistant(x, y, 0.75, 3)
self.p11.addItem(a1)
self.p11.addItem(b1)
self.p11.addItem(c1)
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 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)
item_data = [] item_data = []
time_data = [] time_data = []
for i in range(0, int(ideal_closure*self.scaler)*delta): for i in range(0, int(ideal_closure*self.scaler)*delta):
@ -144,23 +185,6 @@ class PlotWindow:
self._plotIdealData(np.array(time_data), np.array(item_data).T) self._plotIdealData(np.array(time_data), np.array(item_data).T)
self._addBackgroundSplitter([item[1]*self.scaler,item[1]*self.scaler + time], color_closure) self._addBackgroundSplitter([item[1]*self.scaler,item[1]*self.scaler + time], color_closure)
elif key == 'welding':
x = [time_data[0], time_data[-1], time_data[-1]+0.0001]
y = [item_data[0][4], item_data[0][4], item_data[0][4]]
a1, b1, c1 = self._calculate_equidistant(x, y, 0.75, 3)
self.p11.addItem(a1)
self.p11.addItem(b1)
self.p11.addItem(c1)
elif key == 'compression':
temp = item_data[-1][4]
x = [time_data[0], time_data[-1], time_data[-1]+0.0001]
y = [temp, temp, temp]
a1, b1, c1 = self._calculate_equidistant(x, y, 2.5, 3)
self.p11.addItem(a1)
self.p11.addItem(b1)
self.p11.addItem(c1)
def _returnWeldData(self, _): def _returnWeldData(self, _):
return self.WeldData return self.WeldData

View File

@ -21,6 +21,10 @@ class UMLCreator:
real_data.append([item[0]*self.scaler+0.0001, str(key) + '#green']) real_data.append([item[0]*self.scaler+0.0001, str(key) + '#green'])
real_data.append([item[1]*self.scaler, '{-}']) real_data.append([item[1]*self.scaler, '{-}'])
if key == 'compression':
ideal_data.append([(item[1]-ideal_time)*self.scaler, str(key) + '#yellow'])
ideal_data.append([(item[1]-0.0001)*self.scaler, '{-}'])
else:
ideal_data.append([item[0]*self.scaler+0.0001, str(key) + '#yellow']) ideal_data.append([item[0]*self.scaler+0.0001, str(key) + '#yellow'])
ideal_data.append([(item[0]+ideal_time)*self.scaler, '{-}']) ideal_data.append([(item[0]+ideal_time)*self.scaler, '{-}'])
if key == 'opening': if key == 'opening':