Skip to content

Commit b905903

Browse files
committed
new version, show time in human-readeable format, show zero-th channel
1 parent 9a3018a commit b905903

File tree

3 files changed

+55
-29
lines changed

3 files changed

+55
-29
lines changed

dosview/__init__.py

+53-27
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import argparse
33

44
from PyQt5 import QtNetwork
5+
from PyQt5.QtNetwork import QLocalSocket, QLocalServer
56
from PyQt5.QtCore import QThread, pyqtSignal, QSettings
67
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QHBoxLayout, QFormLayout
78
from PyQt5.QtWidgets import QPushButton, QFileDialog, QTreeWidget, QTreeWidgetItem, QAction, QSplitter, QTableWidgetItem
@@ -84,22 +85,20 @@ def parse_file(file_path):
8485
# Připojení nulových sloupců k původnímu poli
8586
np_spectrum = np.hstack((np_spectrum, zero_columns))
8687

87-
print(np_spectrum)
88-
8988
time_column = np_spectrum[:, 1]
90-
print(time_column)
91-
np_spectrum = np_spectrum[:, 8:]
92-
print(np_spectrum)
93-
94-
#print("Unique events: ", unique_events)
89+
#print(time_column)
90+
np_spectrum = np_spectrum[:, 7:]
91+
#print(np_spectrum)
9592

9693
for i, event in enumerate(unique_events):
9794
time_index = np.searchsorted(time_column, event[0])
9895
print(event[0], event[1], time_index)
9996
np_spectrum[time_index, event[1]] += 1
100-
# np_spectrum[event[0], i] += event[1]
10197

10298
sums = np.sum(np_spectrum[:, 1:], axis=1)
99+
100+
#print("Scitam tohle..")
101+
#print(np_spectrum[:, 1:])
103102
hist = np.sum(np_spectrum[:, 1:], axis=0)
104103

105104
minimal_time = time_column.min()
@@ -858,14 +857,12 @@ def get_airdos_status(self):
858857
})
859858

860859
a,b = self.sht_read_sensor_data(self.addr_sht, [0x24, 0x0b] )
861-
862860
data['SHT'] = {
863861
'temperature': a,
864862
'humidity': b
865863
}
866864

867865
a, b = self.sht_read_sensor_data(self.addr_an_sht, [0x24, 0x0b] )
868-
869866
data['AIRDOS_SHT'] = {
870867
'temperature': a,
871868
'humidity': b
@@ -1136,18 +1133,14 @@ def plot_data(self, data):
11361133
self.imv.setPredefinedGradient('thermal')
11371134
self.imv.getView().showGrid(True, True, 0.2)
11381135

1139-
11401136
# Invert the y-axis
11411137
self.imv.getView().invertY(False)
11421138
#self.imv.getView().setLogMode(x=False, y=True)
11431139

1144-
11451140
# Add axis labels
11461141
#self.imv.setLabel('left', 'Y Axis')
11471142
#self.imv.setLabel('bottom', 'X Axis')
11481143

1149-
1150-
11511144
class PlotTab(QWidget):
11521145
def __init__(self):
11531146
super().__init__()
@@ -1171,8 +1164,6 @@ def initUI(self):
11711164
self.upload_file_button.setMaximumHeight(20)
11721165
self.upload_file_button.clicked.connect(lambda: UploadFileDialog().exec_())
11731166

1174-
1175-
11761167
log_view_widget = QWidget()
11771168

11781169
self.left_panel = QSplitter(Qt.Vertical)
@@ -1189,8 +1180,6 @@ def initUI(self):
11891180
self.logView_splitter.addWidget(self.left_panel)
11901181
#self.logView_splitter.addWidget(QWidget())
11911182

1192-
1193-
11941183
layout = QVBoxLayout()
11951184
layout.addWidget(self.logView_splitter)
11961185
self.setLayout(layout)
@@ -1222,14 +1211,19 @@ def on_data_loaded(self, data):
12221211
self.properties_tree.clear()
12231212

12241213
def add_properties_to_tree(item, properties):
1225-
for key, value in properties.items():
1226-
if isinstance(value, dict):
1227-
parent_item = QTreeWidgetItem([key])
1228-
item.addChild(parent_item)
1229-
add_properties_to_tree(parent_item, value)
1230-
else:
1231-
child_item = QTreeWidgetItem([key, str(value)])
1232-
item.addChild(child_item)
1214+
for key, value in properties.items():
1215+
# Pokud je to uroven ve storomu
1216+
if isinstance(value, dict):
1217+
parent_item = QTreeWidgetItem([key])
1218+
item.addChild(parent_item)
1219+
add_properties_to_tree(parent_item, value)
1220+
# Zobraz samotne hodnoty
1221+
else:
1222+
if key in ['internal_time_min', 'internal_time_max', 'log_duration']:
1223+
value_td = datetime.timedelta(seconds=value)
1224+
value = f"{value_td}, ({value} seconds)"
1225+
child_item = QTreeWidgetItem([key, str(value)])
1226+
item.addChild(child_item)
12331227

12341228
metadata = data[3]
12351229
for key, value in metadata.items():
@@ -1590,6 +1584,7 @@ def main():
15901584
parser.add_argument('--labdos', action='store_true', help='Enable labdos control tab')
15911585
parser.add_argument('--no_gui', action='store_true', help='Disable GUI and run in headless mode')
15921586
parser.add_argument('--version', action='store_true', help='Print version and exit')
1587+
parser.add_argument('--new-window', action='store_true', help="Open file in new window")
15931588

15941589
args = parser.parse_args()
15951590

@@ -1602,8 +1597,39 @@ def main():
16021597
pg.setConfigOption('background', 'w')
16031598
pg.setConfigOption('foreground', 'gray')
16041599

1605-
16061600
app = QApplication(sys.argv)
1601+
1602+
# Create a local server for IPC
1603+
server_name = 'dosview'
1604+
socket = QLocalSocket()
1605+
socket.connectToServer(server_name)
1606+
1607+
if socket.waitForConnected(500):
1608+
socket.write(args.file_path.encode())
1609+
socket.flush()
1610+
socket.waitForBytesWritten(1000)
1611+
socket.disconnectFromServer()
1612+
print("dosview is already running. Sending file path to the running instance.")
1613+
sys.exit(0)
1614+
else:
1615+
server = QLocalServer()
1616+
server.listen(server_name)
1617+
1618+
def handle_connection():
1619+
socket = server.nextPendingConnection()
1620+
if socket.waitForReadyRead(1000):
1621+
filename = socket.readAll().data().decode()
1622+
print("Opening file from external instance startup ...", filename)
1623+
ex.openPlotTab(filename)
1624+
ex.activateWindow()
1625+
ex.raise_()
1626+
ex.setFocus()
1627+
1628+
1629+
1630+
server.newConnection.connect(handle_connection)
1631+
1632+
16071633
ex = App(args)
16081634
sys.exit(app.exec_())
16091635

dosview/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/usr/bin/env python3
22
# -*- coding: UTF-8 -*-
3-
__version__ = "0.1.17"
3+
__version__ = "0.1.18"

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "dosview"
7-
#version = "0.1.12"
7+
#version = "0.1.18"
88
description = "A .dos file viewer"
99
readme = "README.md"
1010
license = { file="LICENSE" }

0 commit comments

Comments
 (0)