|
6 | 6 | __author__ = "Dennis van Gils" |
7 | 7 | __authoremail__ = "[email protected]" |
8 | 8 | __url__ = "https://github.com/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo" |
9 | | -__date__ = "16-07-2020" |
| 9 | +__date__ = "17-07-2020" |
10 | 10 | __version__ = "4.1" |
11 | 11 | # pylint: disable=bare-except, broad-except |
12 | 12 |
|
|
22 | 22 | from PyQt5.QtCore import QDateTime |
23 | 23 | import pyqtgraph as pg |
24 | 24 |
|
| 25 | +from dvg_debug_functions import dprint, print_fancy_traceback as pft |
| 26 | +from dvg_devices.Arduino_protocol_serial import Arduino |
| 27 | +from dvg_qdeviceio import QDeviceIO |
| 28 | + |
25 | 29 | from DvG_pyqt_FileLogger import FileLogger |
26 | 30 | from DvG_pyqt_ChartHistory import ChartHistory |
27 | 31 | from DvG_pyqt_controls import create_Toggle_button, SS_GROUP |
28 | | -from dvg_debug_functions import dprint, print_fancy_traceback as pft |
29 | | - |
30 | | -from dvg_devices.Arduino_protocol_serial import Arduino # I.e. the `device` |
31 | | -from dvg_qdeviceio import QDeviceIO |
32 | 32 |
|
33 | 33 | try: |
| 34 | + # To enable OpenGL GPU acceleration: |
34 | 35 | # `conda install pyopengl` or `pip install pyopengl` |
35 | 36 | import OpenGL.GL as gl # pylint: disable=unused-import |
36 | 37 | except: |
|
45 | 46 | DAQ_INTERVAL_MS = 10 # 10 [ms] |
46 | 47 | CHART_INTERVAL_MS = 10 # 10 [ms] |
47 | 48 | CHART_HISTORY_TIME = 10 # 10 [s] |
48 | | - |
49 | | -# Global variables for date-time keeping |
50 | | -cur_date_time = QDateTime.currentDateTime() |
51 | | -str_cur_date = cur_date_time.toString("dd-MM-yyyy") |
52 | | -str_cur_time = cur_date_time.toString("HH:mm:ss") |
53 | 49 | # fmt: on |
54 | 50 |
|
55 | 51 | # Show debug info in terminal? Warning: Slow! Do not leave on unintentionally. |
56 | 52 | DEBUG = False |
57 | 53 |
|
| 54 | + |
| 55 | +def get_current_date_time(): |
| 56 | + cur_date_time = QDateTime.currentDateTime() |
| 57 | + return ( |
| 58 | + cur_date_time.toString("dd-MM-yyyy"), # Date |
| 59 | + cur_date_time.toString("HH:mm:ss"), # Time |
| 60 | + cur_date_time.toString("yyMMdd_HHmmss"), # Reverse notation date-time |
| 61 | + ) |
| 62 | + |
| 63 | + |
58 | 64 | # ------------------------------------------------------------------------------ |
59 | 65 | # Arduino state |
60 | 66 | # ------------------------------------------------------------------------------ |
@@ -148,11 +154,11 @@ def __init__(self, parent=None, **kwargs): |
148 | 154 | self.gw_chart.setBackground([20, 20, 20]) |
149 | 155 | self.pi_chart = self.gw_chart.addPlot() |
150 | 156 |
|
151 | | - p = {"color": "#BBB", "font-size": "10pt"} |
| 157 | + p = {"color": "#CCC", "font-size": "10pt"} |
152 | 158 | self.pi_chart.showGrid(x=1, y=1) |
153 | 159 | self.pi_chart.setTitle("Arduino timeseries", **p) |
154 | 160 | self.pi_chart.setLabel("bottom", text="history (sec)", **p) |
155 | | - self.pi_chart.setLabel("left", text="readings", **p) |
| 161 | + self.pi_chart.setLabel("left", text="amplitude", **p) |
156 | 162 | self.pi_chart.setRange( |
157 | 163 | xRange=[-1.04 * CHART_HISTORY_TIME, CHART_HISTORY_TIME * 0.04], |
158 | 164 | yRange=[-1.1, 1.1], |
@@ -283,6 +289,7 @@ def set_text_qpbt_record(self, text_str): |
283 | 289 |
|
284 | 290 | @QtCore.pyqtSlot() |
285 | 291 | def update_GUI(): |
| 292 | + str_cur_date, str_cur_time, _ = get_current_date_time() |
286 | 293 | window.qlbl_cur_date_time.setText("%s %s" % (str_cur_date, str_cur_time)) |
287 | 294 | window.qlbl_update_counter.setText("%i" % qdev_ard.update_counter_DAQ) |
288 | 295 | window.qlbl_DAQ_rate.setText("DAQ: %.1f Hz" % qdev_ard.obtained_DAQ_rate_Hz) |
@@ -328,9 +335,10 @@ def stop_running(): |
328 | 335 | def notify_connection_lost(): |
329 | 336 | stop_running() |
330 | 337 |
|
331 | | - excl = " ! ! ! ! ! ! ! " |
| 338 | + excl = " ! ! ! ! ! ! " |
332 | 339 | window.qlbl_title.setText("%sLOST CONNECTION%s" % (excl, excl)) |
333 | 340 |
|
| 341 | + str_cur_date, str_cur_time, _ = get_current_date_time() |
334 | 342 | str_msg = ("%s %s\n" "Lost connection to Arduino.\n" " '%s': %salive") % ( |
335 | 343 | str_cur_date, |
336 | 344 | str_cur_time, |
@@ -360,10 +368,7 @@ def about_to_quit(): |
360 | 368 |
|
361 | 369 | def DAQ_function(): |
362 | 370 | # Date-time keeping |
363 | | - global cur_date_time, str_cur_date, str_cur_time |
364 | | - cur_date_time = QDateTime.currentDateTime() |
365 | | - str_cur_date = cur_date_time.toString("dd-MM-yyyy") |
366 | | - str_cur_time = cur_date_time.toString("HH:mm:ss") |
| 371 | + str_cur_date, str_cur_time, str_cur_datetime = get_current_date_time() |
367 | 372 |
|
368 | 373 | # Query the Arduino for its state |
369 | 374 | success, tmp_state = ard.query_ascii_values("?", delimiter="\t") |
@@ -396,7 +401,7 @@ def DAQ_function(): |
396 | 401 |
|
397 | 402 | # Logging to file |
398 | 403 | if file_logger.starting: |
399 | | - fn_log = cur_date_time.toString("yyMMdd_HHmmss") + ".txt" |
| 404 | + fn_log = str_cur_datetime + ".txt" |
400 | 405 | if file_logger.create_log(state.time, fn_log, mode="w"): |
401 | 406 | file_logger.signal_set_recording_text.emit( |
402 | 407 | "Recording to file: " + fn_log |
@@ -480,9 +485,7 @@ def DAQ_function(): |
480 | 485 | debug = DEBUG, |
481 | 486 | ) |
482 | 487 | # fmt: on |
483 | | - |
484 | 488 | qdev_ard.create_worker_jobs(debug=DEBUG) |
485 | | - # """ |
486 | 489 |
|
487 | 490 | # Connect signals to slots |
488 | 491 | qdev_ard.signal_DAQ_updated.connect(update_GUI) |
|
0 commit comments