1 from empro.gui import SimpleDialog, TableView, Cancel,TabWidget
4 import sys
5 import collections
6 simLocation = sipiData.simulationPath
7 if not simLocation:
8 raise Exception("Simulation Results Not Found")
9 logFile = sipiData.simulationPath+r"/project.log"
10 with open(logFile,"r") as data:
11 dataList = data.readlines()
12 for line in dataList :
13 if line.split() == ["Eigenfrequency","Q","value"]:
14 n = dataList.index(line)
15 results = []
16 for data in dataList[n+2:-5]:
17 result = [item.strip() for item in data.split(" ")]
18 data,unit = result[1].split(" ")
19 if unit == "Hz":
20 result[1] = float(data)*0.000001
21 if unit == "KHz":
22 result[1] = float(data)*0.001
23 if unit == "GHz":
24 result[1] = float(data)*1000
25 if unit == "MHz":
26 result[1] = float(data)
27 result[2] = float(result[2])
28 results.append(result[1:])
29 fieldsList =[]
30 for result in results:
31 Fields = collections.namedtuple('Frequency',['eigenFrequency', 'qValue'])
32 fields = Fields(*result)
33 fieldsList.append(fields)
34 self.fields = fieldsList
35
38 import empro.gui
39 self.dialog = SimpleDialog(Cancel)
40 self.dialog.setButtonText(Cancel,'Close')
41 self.dialog.title = "PPR Results Overview"
42 self.dialog.resize(800, 600)
43 self.tabWidget = TabWidget()
44 w = empro.gui.Widget()
45 self.tabWidget.insertTab(0, self._fieldTab(), "Frequencies")
46 self.dialog.layout.add(self.tabWidget)
47 self.dialog.windowFlags = empro.gui.WF_Window
48 self.dialog.windowFlags &= ~empro.gui.WF_WindowStaysOnTopHint
49 self.sipiData = sipiData
50 self.results = PPRResults(sipiData)
51 for index, frequency in enumerate(self.results.fields):
52 row = [frequency.eigenFrequency, frequency.qValue]
53 self._fieldTable.setRow(index, row)
54 self._fieldTable.headers = ["Eigenfrequency [MHz]" , "Q Value"]
55 self._fieldTable.resizeColumnsToContents()
56 for table in [self._fieldTable]:
57 table.selectionBehavior = TableView.SelectRows
58 table.selectionMode = TableView.ExtendedSelection
59 table.resizeRowsToContents()
60 table.resizeColumnsToContents()
61 table.onLayoutChanged = lambda y=table: self.onSelectionChanged(y)
62 table.onSelectionChanged = lambda y=table: self.onSelectionChanged(y)
63 table.refresh()
65 import empro.gui
66 w = empro.gui.Widget()
67 self._fieldTable = TableView(w)
68 self._fieldTable.objectName = "Frequencies"
69 w.layout = empro.gui.VBoxLayout()
70 w.layout.addWidget(self._fieldTable)
71 columns = ["Eigenfrequency [MHz]" , "Q Value"]
72 self._fieldTable.headers = []
73 self._fieldTable.resizeColumnsToContents()
74 return w
75
77
78
79 import empro
80 w, h = table.size()
81 table.resize(w + 2, h)
82 table.resize(w, h)
83
85 self.dialog.show(False)
86
87 if False:
91
92 resultsOverview = ResultsOverview(empro.activeProject.analyses[2])
93 resultsOverview.show()
94