fix: UML теперь строится по новым сигналам
This commit is contained in:
parent
dc4c74471f
commit
7d71a4774f
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -30,7 +30,7 @@ class app:
|
|||||||
self.opt_algorithm = OptAlgorithm(operator_config=self.operator_params, system_config=self.system_params)
|
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.ideal_times = self._get_ideal_timings(self.opt_algorithm)
|
||||||
|
|
||||||
self.parser.setData("trace_samples/2024_11_01-09_39_17B00.csv")
|
self.parser.setData("trace_samples/2024_11_08-19_30_49.csv")
|
||||||
self.bool_dict = self.parser.getBoolDict()
|
self.bool_dict = self.parser.getBoolDict()
|
||||||
self.float_dict = self.parser.getFloatDict()
|
self.float_dict = self.parser.getFloatDict()
|
||||||
|
|
||||||
@ -41,11 +41,20 @@ class app:
|
|||||||
float_dict=self.float_dict,
|
float_dict=self.float_dict,
|
||||||
show_settings_func=self._show_settings)
|
show_settings_func=self._show_settings)
|
||||||
|
|
||||||
self.uml_creator = UMLCreator(system_config=self.system_params,
|
self.uml_creator = UMLCreator(operator_config=self.operator_params,
|
||||||
|
system_config=self.system_params,
|
||||||
request_generator=self.request_generator,
|
request_generator=self.request_generator,
|
||||||
ideal_time=self.ideal_times,
|
ideal_time=self.ideal_times,
|
||||||
bool_dict=self.bool_dict,
|
bool_dict=self.bool_dict,
|
||||||
float_dict=self.float_dict)
|
float_dict=self.float_dict)
|
||||||
|
|
||||||
|
self.uml_creator.update_uml(operator_config=self.operator_params,
|
||||||
|
system_config=self.system_params,
|
||||||
|
request_generator=self.request_generator,
|
||||||
|
ideal_time=self.ideal_times,
|
||||||
|
bool_dict=self.bool_dict,
|
||||||
|
float_dict=self.float_dict)
|
||||||
|
|
||||||
|
|
||||||
def _update_settings(self, _):
|
def _update_settings(self, _):
|
||||||
self.operator_params = self.operSettings.getParams()
|
self.operator_params = self.operSettings.getParams()
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -3,7 +3,8 @@ from src.uml.request_generator import Request
|
|||||||
|
|
||||||
class UMLCreator:
|
class UMLCreator:
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
system_config : dict,
|
system_config: dict,
|
||||||
|
operator_config: dict,
|
||||||
request_generator: Request,
|
request_generator: Request,
|
||||||
ideal_time: list[float],
|
ideal_time: list[float],
|
||||||
bool_dict: dict,
|
bool_dict: dict,
|
||||||
@ -13,31 +14,27 @@ class UMLCreator:
|
|||||||
self.bool_dict = bool_dict
|
self.bool_dict = bool_dict
|
||||||
self.float_dict = float_dict
|
self.float_dict = float_dict
|
||||||
self.scaler = int(system_config['UML_time_scaler'])
|
self.scaler = int(system_config['UML_time_scaler'])
|
||||||
|
self.WeldTime = operator_config['time_wielding']
|
||||||
|
|
||||||
|
|
||||||
def _build_data(self):
|
def _build_data(self):
|
||||||
sig = [
|
sig = [
|
||||||
'Electrode Closing Algorithm Execute', # Начало закрытия
|
"Closing",
|
||||||
'Electrode Closing Algorithm Done',
|
"Relief",
|
||||||
# 'STEP 3: ME Hold P2 AND Condition Start Force Control', # Конец закрытия и Начало набора усилия
|
"Squeeze",
|
||||||
'STEP 4: ME Force Control',
|
"Welding"
|
||||||
'Position Control ME', # Начало разъезда или 'Posision Control Activated FE'
|
|
||||||
'Position Control FE', # Начало разъезда
|
|
||||||
'Position Control Completed ME', # Конец разъезда
|
|
||||||
'Position Control Completed FE', # Конец разъезда
|
|
||||||
'STEP 4: ME Force Control Complete', # Конец набора усилия
|
|
||||||
]
|
]
|
||||||
closure = self._get_time([sig[0], sig[1]])
|
closure = [self.bool_dict[sig[0]][1][0], self.bool_dict[sig[0]][2][0]]
|
||||||
compression = self._get_time([sig[2], sig[3]])
|
compression = [self.bool_dict[sig[2]][1][0], self.bool_dict[sig[2]][2][0]]
|
||||||
# opening = self.__getTime([sig[4], sig[5], sig[6], sig[7]])
|
opening = [self.bool_dict[sig[1]][1][0], self.bool_dict[sig[1]][-1][0]]
|
||||||
|
|
||||||
real_data = [
|
real_data = [
|
||||||
[closure[0], 'closure #green'],
|
[closure[0]*self.scaler, 'closure #green'],
|
||||||
[closure[1], '{-}'],
|
[closure[1]*self.scaler, '{-}'],
|
||||||
[compression[0], 'compression #green'],
|
[compression[0]*self.scaler+0.0001, 'compression #green'],
|
||||||
[compression[1], '{-}'],
|
[compression[1]*self.scaler, 'welding #green'],
|
||||||
# [max(opening[0:2]), 'opening #green'],
|
[opening[0]*self.scaler+0.0001, 'opening #green'],
|
||||||
# [max(opening[2:4]), '{-}'],
|
[opening[1]*self.scaler, '{-}'],
|
||||||
]
|
]
|
||||||
|
|
||||||
client_data = [
|
client_data = [
|
||||||
@ -45,8 +42,8 @@ class UMLCreator:
|
|||||||
[0.165 * self.scaler, '{-}'],
|
[0.165 * self.scaler, '{-}'],
|
||||||
[0.166 * self.scaler, 'compression'],
|
[0.166 * self.scaler, 'compression'],
|
||||||
[0.176 * self.scaler, '{-}'],
|
[0.176 * self.scaler, '{-}'],
|
||||||
# [0.180*self.scaler, 'welding'],
|
[0.180*self.scaler, 'welding'],
|
||||||
# [0.200*self.scaler, '{-}'],
|
[0.200*self.scaler, '{-}'],
|
||||||
[0.210 * self.scaler, 'opening'],
|
[0.210 * self.scaler, 'opening'],
|
||||||
[0.300 * self.scaler, '{-}'],
|
[0.300 * self.scaler, '{-}'],
|
||||||
]
|
]
|
||||||
@ -56,10 +53,10 @@ class UMLCreator:
|
|||||||
[self._ideal_time[0] * self.scaler, '{-}'],
|
[self._ideal_time[0] * self.scaler, '{-}'],
|
||||||
[(self._ideal_time[0] + 0.0001) * self.scaler, 'compression #yellow'],
|
[(self._ideal_time[0] + 0.0001) * self.scaler, 'compression #yellow'],
|
||||||
[(self._ideal_time[0] + self._ideal_time[1]) * self.scaler, '{-}'],
|
[(self._ideal_time[0] + self._ideal_time[1]) * self.scaler, '{-}'],
|
||||||
# [0.*self.scaler, 'welding #yellow'],
|
[(self._ideal_time[0] + self._ideal_time[1]+ 0.0001) * self.scaler, 'welding #yellow'],
|
||||||
# [0.*self.scaler, '{-}'],
|
[(self._ideal_time[0] + self._ideal_time[1] + self.WeldTime)*self.scaler, '{-}'],
|
||||||
[(self._ideal_time[0] + self._ideal_time[1] + 0.0001) * self.scaler, 'opening #yellow'],
|
[(self._ideal_time[0] + self._ideal_time[1] + 0.0001 + self.WeldTime) * self.scaler, 'opening #yellow'],
|
||||||
[(self._ideal_time[0] + self._ideal_time[1] + self._ideal_time[2]) * self.scaler, '{-}'],
|
[(self._ideal_time[0] + self._ideal_time[1] + self._ideal_time[2] + self.WeldTime) * self.scaler, '{-}'],
|
||||||
]
|
]
|
||||||
return real_data, client_data, ideal_data, self.bool_dict
|
return real_data, client_data, ideal_data, self.bool_dict
|
||||||
|
|
||||||
@ -80,8 +77,11 @@ class UMLCreator:
|
|||||||
|
|
||||||
for i, [signal, changes] in enumerate(bool_data.items()):
|
for i, [signal, changes] in enumerate(bool_data.items()):
|
||||||
name = 'bool_' + str(i)
|
name = 'bool_' + str(i)
|
||||||
|
times = []
|
||||||
|
for f in changes:
|
||||||
|
times.append([str(float(f[0])*self.scaler), f[1]])
|
||||||
self._request_generator.addBinary(name, str(signal), 'biba')
|
self._request_generator.addBinary(name, str(signal), 'biba')
|
||||||
self._request_generator.setTimestamps(name, changes)
|
self._request_generator.setTimestamps(name, times)
|
||||||
|
|
||||||
self._request_generator.addConcise('RD', 'Real data')
|
self._request_generator.addConcise('RD', 'Real data')
|
||||||
self._request_generator.setTimestamps('RD', real_data)
|
self._request_generator.setTimestamps('RD', real_data)
|
||||||
@ -96,6 +96,7 @@ class UMLCreator:
|
|||||||
print(f"SVG generate error: {e}")
|
print(f"SVG generate error: {e}")
|
||||||
|
|
||||||
def update_uml(self,
|
def update_uml(self,
|
||||||
|
operator_config: dict,
|
||||||
system_config : dict,
|
system_config : dict,
|
||||||
request_generator: Request,
|
request_generator: Request,
|
||||||
ideal_time: list[float],
|
ideal_time: list[float],
|
||||||
@ -107,6 +108,7 @@ class UMLCreator:
|
|||||||
self.bool_dict = bool_dict
|
self.bool_dict = bool_dict
|
||||||
self.float_dict = float_dict
|
self.float_dict = float_dict
|
||||||
self.scaler = int(system_config['UML_time_scaler'])
|
self.scaler = int(system_config['UML_time_scaler'])
|
||||||
|
self.WeldTime = operator_config['time_wielding']
|
||||||
|
|
||||||
real, client, ideal, bool_ = self._build_data()
|
real, client, ideal, bool_ = self._build_data()
|
||||||
self._generate_svg(real, client, ideal, bool_)
|
self._generate_svg(real, client, ideal, bool_)
|
||||||
|
|||||||
@ -78,6 +78,7 @@ class Request:
|
|||||||
self.reqArr.append('}')
|
self.reqArr.append('}')
|
||||||
|
|
||||||
self.reqArr.append('</style>')
|
self.reqArr.append('</style>')
|
||||||
|
self.reqArr.append('scale 10 as 50 pixels')
|
||||||
|
|
||||||
def _addVariables(self):
|
def _addVariables(self):
|
||||||
for var in self.variables: self.reqArr.append(str(var))
|
for var in self.variables: self.reqArr.append(str(var))
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,9 +2,8 @@ import pandas as pd
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
class DiagramParser:
|
class DiagramParser:
|
||||||
def __init__(self, scaler = 1):
|
def __init__(self):
|
||||||
self.data = pd.DataFrame({})
|
self.data = pd.DataFrame({})
|
||||||
self.scaler = scaler
|
|
||||||
|
|
||||||
def setData(self, path):
|
def setData(self, path):
|
||||||
self.data = pd.read_csv(path)
|
self.data = pd.read_csv(path)
|
||||||
@ -34,7 +33,7 @@ class DiagramParser:
|
|||||||
|
|
||||||
for i in range(1, len(signal_values)):
|
for i in range(1, len(signal_values)):
|
||||||
if signal_values.iloc[i] != signal_values.iloc[i - 1]:
|
if signal_values.iloc[i] != signal_values.iloc[i - 1]:
|
||||||
changes.append([float(timeCode.iloc[i])*self.scaler, 'high' if bool(signal_values.iloc[i]) else 'low'])
|
changes.append([float(timeCode.iloc[i]), 'high' if bool(signal_values.iloc[i]) else 'low'])
|
||||||
|
|
||||||
return changes
|
return changes
|
||||||
|
|
||||||
|
|||||||
2785
trace_samples/2024_11_08-19_30_49.csv
Normal file
2785
trace_samples/2024_11_08-19_30_49.csv
Normal file
File diff suppressed because it is too large
Load Diff
3002
trace_samples/2024_11_08-19_30_52.csv
Normal file
3002
trace_samples/2024_11_08-19_30_52.csv
Normal file
File diff suppressed because it is too large
Load Diff
2789
trace_samples/2024_11_08-19_30_56.csv
Normal file
2789
trace_samples/2024_11_08-19_30_56.csv
Normal file
File diff suppressed because it is too large
Load Diff
2782
trace_samples/2024_11_08-19_30_59.csv
Normal file
2782
trace_samples/2024_11_08-19_30_59.csv
Normal file
File diff suppressed because it is too large
Load Diff
2782
trace_samples/2024_11_08-19_31_03.csv
Normal file
2782
trace_samples/2024_11_08-19_31_03.csv
Normal file
File diff suppressed because it is too large
Load Diff
6000
trace_samples/2024_11_01-09_39_17.csv → trace_samples/old/2024_11_01-09_39_17.csv
Executable file → Normal file
6000
trace_samples/2024_11_01-09_39_17.csv → trace_samples/old/2024_11_01-09_39_17.csv
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
|
Can't render this file because it is too large.
|
|
Can't render this file because it is too large.
|
|
Can't render this file because it is too large.
|
|
Can't render this file because it is too large.
|
|
Can't render this file because it is too large.
|
Loading…
Reference in New Issue
Block a user