chore: GUI вынесен в отдельный класс + доработана структура проекта
This commit is contained in:
parent
c184397c6c
commit
8d71f8ffc0
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
from OptAlgorithm.AutoConfigClass import AutoConfigClass
|
from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
|
||||||
from numpy import sqrt
|
from numpy import sqrt
|
||||||
|
|
||||||
class ConstantCalculator(AutoConfigClass):
|
class ConstantCalculator(AutoConfigClass):
|
||||||
@ -1,6 +1,6 @@
|
|||||||
from OptAlgorithm.OptTimeCalculator import OptTimeCalculator
|
from src.OptAlgorithm.OptTimeCalculator import OptTimeCalculator
|
||||||
from OptAlgorithm.AutoConfigClass import AutoConfigClass
|
from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
|
||||||
from OptAlgorithm.ConstantCalculator import ConstantCalculator
|
from src.OptAlgorithm.ConstantCalculator import ConstantCalculator
|
||||||
|
|
||||||
from numpy import cos, sin, sqrt, cbrt, arcsin
|
from numpy import cos, sin, sqrt, cbrt, arcsin
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
from numpy import sqrt, arcsin, arccos, cos, sin
|
from numpy import sqrt, arcsin, arccos, cos, sin
|
||||||
|
|
||||||
from OptAlgorithm.AutoConfigClass import AutoConfigClass
|
from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
|
||||||
from OptAlgorithm.ConstantCalculator import ConstantCalculator
|
from src.OptAlgorithm.ConstantCalculator import ConstantCalculator
|
||||||
|
|
||||||
class OptTimeCalculator(AutoConfigClass):
|
class OptTimeCalculator(AutoConfigClass):
|
||||||
|
|
||||||
1
src/gui/__init__.py
Normal file
1
src/gui/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
from .plot_window import PlotWindow
|
||||||
@ -1,14 +1,11 @@
|
|||||||
import pyqtgraph as pg
|
import pyqtgraph as pg
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from utils import read_json, DiagramParser
|
from src.gui import qt_settings as qts
|
||||||
from uml import Request, UMLCreator
|
from src.OptAlgorithm import OptAlgorithm
|
||||||
#нижний fe x1
|
|
||||||
import qt_settings as qts
|
|
||||||
from OptAlgorithm import OptAlgorithm
|
|
||||||
|
|
||||||
|
|
||||||
class Application:
|
class PlotWindow:
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
opt: OptAlgorithm,
|
opt: OptAlgorithm,
|
||||||
bool_dict: dict,
|
bool_dict: dict,
|
||||||
@ -149,39 +146,3 @@ class Application:
|
|||||||
self.p11.setYRange(-1000, 5000)
|
self.p11.setYRange(-1000, 5000)
|
||||||
self.p12.setYRange(-50, 250)
|
self.p12.setYRange(-50, 250)
|
||||||
self.p13.setYRange(-400, 400)
|
self.p13.setYRange(-400, 400)
|
||||||
|
|
||||||
|
|
||||||
def get_ideal_timings(opt: OptAlgorithm) -> list[float]:
|
|
||||||
data = opt.Ts
|
|
||||||
ideal_time = [data['tclose'], data['tgrow'], opt.getMarkOpen()]
|
|
||||||
return ideal_time
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
operator_params = read_json("params/operator_params.json")
|
|
||||||
system_params = read_json("params/system_params.json")
|
|
||||||
opt_algorithm = OptAlgorithm(operator_config=operator_params, system_config=system_params)
|
|
||||||
ideal_times = get_ideal_timings(opt_algorithm)
|
|
||||||
|
|
||||||
parser = DiagramParser()
|
|
||||||
parser.setData("2024_10_28-17_03_34.csv")
|
|
||||||
bool_dict = parser.getBoolDict()
|
|
||||||
float_dict = parser.getFloatDict()
|
|
||||||
|
|
||||||
request_generator = Request(server_url='http://www.plantuml.com/plantuml/svg/')
|
|
||||||
uml_creator = UMLCreator(request_generator=request_generator,
|
|
||||||
ideal_time=ideal_times,
|
|
||||||
bool_dict=bool_dict,
|
|
||||||
float_dict=float_dict)
|
|
||||||
uml_creator.update_uml()
|
|
||||||
|
|
||||||
app = Application(opt=opt_algorithm,
|
|
||||||
bool_dict=bool_dict,
|
|
||||||
float_dict=float_dict)
|
|
||||||
|
|
||||||
app.updatePlots()
|
|
||||||
pg.exec()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@ -235,7 +235,6 @@ QPushButton:disabled {
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
colors = [
|
colors = [
|
||||||
'#FF6F61', # яркий коралловый
|
'#FF6F61', # яркий коралловый
|
||||||
'#6B5B95', # приглушенный фиолетовый
|
'#6B5B95', # приглушенный фиолетовый
|
||||||
@ -249,8 +248,8 @@ colors = [
|
|||||||
'#45B8AC' # мягкий мятный
|
'#45B8AC' # мягкий мятный
|
||||||
]
|
]
|
||||||
|
|
||||||
RGBA = [(124, 252, 0),
|
RGBA = [(255, 255, 0),
|
||||||
(255, 215, 0),
|
(32, 178, 70),
|
||||||
(255, 69, 0),
|
(255, 69, 0),
|
||||||
(123, 104, 238)
|
(123, 104, 238)
|
||||||
]
|
]
|
||||||
42
src/main.py
Normal file
42
src/main.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import pyqtgraph as pg
|
||||||
|
|
||||||
|
from utils import read_json, DiagramParser
|
||||||
|
from uml import Request, UMLCreator
|
||||||
|
from OptAlgorithm import OptAlgorithm
|
||||||
|
from gui import PlotWindow
|
||||||
|
|
||||||
|
|
||||||
|
def get_ideal_timings(opt: OptAlgorithm) -> list[float]:
|
||||||
|
data = opt.Ts
|
||||||
|
ideal_time = [data['tclose'], data['tgrow'], opt.getMarkOpen()]
|
||||||
|
return ideal_time
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
operator_params = read_json("params/operator_params.json")
|
||||||
|
system_params = read_json("params/system_params.json")
|
||||||
|
opt_algorithm = OptAlgorithm(operator_config=operator_params, system_config=system_params)
|
||||||
|
ideal_times = get_ideal_timings(opt_algorithm)
|
||||||
|
|
||||||
|
parser = DiagramParser()
|
||||||
|
parser.setData("trace_samples/2024_11_01-09_39_17.csv")
|
||||||
|
bool_dict = parser.getBoolDict()
|
||||||
|
float_dict = parser.getFloatDict()
|
||||||
|
|
||||||
|
request_generator = Request(server_url='http://www.plantuml.com/plantuml/svg/')
|
||||||
|
uml_creator = UMLCreator(request_generator=request_generator,
|
||||||
|
ideal_time=ideal_times,
|
||||||
|
bool_dict=bool_dict,
|
||||||
|
float_dict=float_dict)
|
||||||
|
uml_creator.update_uml()
|
||||||
|
|
||||||
|
app = PlotWindow(opt=opt_algorithm,
|
||||||
|
bool_dict=bool_dict,
|
||||||
|
float_dict=float_dict)
|
||||||
|
|
||||||
|
app.updatePlots()
|
||||||
|
pg.exec()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
@ -1,5 +1,4 @@
|
|||||||
import os
|
from src.uml.request_generator import Request
|
||||||
from uml.request_generator import Request
|
|
||||||
|
|
||||||
|
|
||||||
class UMLCreator:
|
class UMLCreator:
|
||||||
@ -18,7 +17,7 @@ class UMLCreator:
|
|||||||
sig = [
|
sig = [
|
||||||
'Electrode Closing Algorithm Execute', # Начало закрытия
|
'Electrode Closing Algorithm Execute', # Начало закрытия
|
||||||
'Electrode Closing Algorithm Done',
|
'Electrode Closing Algorithm Done',
|
||||||
'STEP 3: ME Hold P2 AND Condition Start Force Control', # Конец закрытия и Начало набора усилия
|
# 'STEP 3: ME Hold P2 AND Condition Start Force Control', # Конец закрытия и Начало набора усилия
|
||||||
'STEP 4: ME Force Control',
|
'STEP 4: ME Force Control',
|
||||||
'Position Control ME', # Начало разъезда или 'Posision Control Activated FE'
|
'Position Control ME', # Начало разъезда или 'Posision Control Activated FE'
|
||||||
'Position Control FE', # Начало разъезда
|
'Position Control FE', # Начало разъезда
|
||||||
@ -50,7 +50,7 @@ class Request:
|
|||||||
|
|
||||||
def generateSVG(self):
|
def generateSVG(self):
|
||||||
self._compileUML()
|
self._compileUML()
|
||||||
filename = abspath('../UML.txt')
|
filename = abspath('UML.txt')
|
||||||
self.server.processes_file(filename, outfile='UML.svg')
|
self.server.processes_file(filename, outfile='UML.svg')
|
||||||
#result = self.server.processes(self.stringUML)
|
#result = self.server.processes(self.stringUML)
|
||||||
#return result
|
#return result
|
||||||
Loading…
Reference in New Issue
Block a user