Skip to content

Commit 3d7d239

Browse files
Merge pull request #2 from Dennis-van-Gils/Implement_Dev_Base_pyqt_as_mixin
Finished implementing DvG_dev_Base. Ready for roll out.
2 parents 1f9a19e + 9eea1c9 commit 3d7d239

5 files changed

+671
-514
lines changed

Arduino_PyQt_demo_with_multithreading.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
__author__ = "Dennis van Gils"
77
__authoremail__ = "vangils.dennis@gmail.com"
88
__url__ = "https://github.com/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo"
9-
__date__ = "08-09-2018"
10-
__version__ = "2.0.0"
9+
__date__ = "14-09-2018"
10+
__version__ = "2.1.0"
1111

1212
import os
1313
import sys
@@ -255,8 +255,8 @@ def set_text_qpbt_record(self, text_str):
255255
@QtCore.pyqtSlot()
256256
def update_GUI():
257257
window.qlbl_cur_date_time.setText("%s %s" % (str_cur_date, str_cur_time))
258-
window.qlbl_update_counter.setText("%i" % ard.update_counter)
259-
window.qlbl_DAQ_rate.setText("DAQ: %.1f Hz" % ard.obtained_DAQ_rate)
258+
window.qlbl_update_counter.setText("%i" % ard_pyqt.DAQ_update_counter)
259+
window.qlbl_DAQ_rate.setText("DAQ: %.1f Hz" % ard_pyqt.obtained_DAQ_rate_Hz)
260260
window.qlin_reading_t.setText("%i" % state.time)
261261
window.qlin_reading_1.setText("%.4f" % state.reading_1)
262262

@@ -422,8 +422,8 @@ def my_Arduino_DAQ_update():
422422
my_Arduino_DAQ_update)
423423

424424
# Connect signals to slots
425-
ard_pyqt.worker_DAQ.signal_DAQ_updated.connect(update_GUI)
426-
ard_pyqt.worker_DAQ.signal_connection_lost.connect(notify_connection_lost)
425+
ard_pyqt.signal_DAQ_updated.connect(update_GUI)
426+
ard_pyqt.signal_connection_lost.connect(notify_connection_lost)
427427

428428
# Start threads
429429
ard_pyqt.start_thread_worker_DAQ(QtCore.QThread.TimeCriticalPriority)

Arduino_PyQt_demo_with_multithreading__LARGE_TEXT.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
__author__ = "Dennis van Gils"
77
__authoremail__ = "vangils.dennis@gmail.com"
88
__url__ = "https://github.com/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo"
9-
__date__ = "08-09-2018"
10-
__version__ = "2.0.0"
9+
__date__ = "14-09-2018"
10+
__version__ = "2.1.0"
1111

1212
import os
1313
import sys
@@ -285,8 +285,8 @@ def set_text_qpbt_record(self, text_str):
285285
@QtCore.pyqtSlot()
286286
def update_GUI():
287287
window.qlbl_cur_date_time.setText("%s %s" % (str_cur_date, str_cur_time))
288-
window.qlbl_update_counter.setText("%i" % ard.update_counter)
289-
window.qlbl_DAQ_rate.setText("DAQ: %.1f Hz" % ard.obtained_DAQ_rate)
288+
window.qlbl_update_counter.setText("%i" % ard_pyqt.DAQ_update_counter)
289+
window.qlbl_DAQ_rate.setText("DAQ: %.1f Hz" % ard_pyqt.obtained_DAQ_rate_Hz)
290290
window.qlin_reading_t.setText("%i" % state.time)
291291
window.qlin_reading_1.setText("%.4f" % state.reading_1)
292292

@@ -451,8 +451,8 @@ def my_Arduino_DAQ_update():
451451
my_Arduino_DAQ_update)
452452

453453
# Connect signals to slots
454-
ard_pyqt.worker_DAQ.signal_DAQ_updated.connect(update_GUI)
455-
ard_pyqt.worker_DAQ.signal_connection_lost.connect(notify_connection_lost)
454+
ard_pyqt.signal_DAQ_updated.connect(update_GUI)
455+
ard_pyqt.signal_connection_lost.connect(notify_connection_lost)
456456

457457
# Start threads
458458
ard_pyqt.start_thread_worker_DAQ(QtCore.QThread.TimeCriticalPriority)

Arduino_PyQt_demo_with_multithreading__minimalistic.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
__author__ = "Dennis van Gils"
77
__authoremail__ = "vangils.dennis@gmail.com"
88
__url__ = "https://github.com/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo"
9-
__date__ = "08-09-2018"
10-
__version__ = "2.0.0"
9+
__date__ = "14-09-2018"
10+
__version__ = "2.1.0"
1111

1212
import os
1313
import sys

DvG_dev_Arduino__PyQt_lib.py

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66
__author__ = "Dennis van Gils"
77
__authoremail__ = "vangils.dennis@gmail.com"
88
__url__ = "https://github.com/Dennis-van-Gils/DvG_dev_Arduino"
9-
__date__ = "08-09-2018"
10-
__version__ = "2.0.0"
9+
__date__ = "14-09-2018"
10+
__version__ = "2.1.0"
1111

1212
from PyQt5 import QtCore
1313
import DvG_dev_Arduino__fun_serial as Arduino_functions
14+
import DvG_dev_Base__PyQt_lib as Dev_Base_pyqt_lib
1415

1516
# Show debug info in terminal? Warning: Slow! Do not leave on unintentionally.
1617
DEBUG_worker_DAQ = False
@@ -20,7 +21,7 @@
2021
# Arduino_pyqt
2122
# ------------------------------------------------------------------------------
2223

23-
class Arduino_pyqt(QtCore.QObject):
24+
class Arduino_pyqt(Dev_Base_pyqt_lib.Dev_Base_pyqt, QtCore.QObject):
2425
"""Manages multithreaded communication and periodical data acquisition for
2526
an Arduino(-like) device.
2627
@@ -46,30 +47,27 @@ class Arduino_pyqt(QtCore.QObject):
4647
(*) DAQ_critical_not_alive_count
4748
(*) DAQ_timer_type
4849
49-
Class instances:
50-
(*) worker_DAQ
51-
(*) worker_send
52-
5350
Main methods:
5451
(*) start_thread_worker_DAQ(...)
5552
(*) start_thread_worker_send(...)
5653
(*) close_all_threads()
5754
5855
queued_write(...):
5956
Write a message to the Arduino via the worker_send queue.
57+
58+
Inner-class instances:
59+
(*) worker_DAQ
60+
(*) worker_send
61+
62+
Main data attributes:
63+
(*) DAQ_update_counter
64+
(*) obtained_DAQ_update_interval_ms
65+
(*) obtained_DAQ_rate_Hz
6066
6167
Signals:
62-
(*) worker_DAQ.signal_DAQ_updated()
63-
(*) worker_DAQ.signal_connection_lost()
68+
(*) signal_DAQ_updated()
69+
(*) signal_connection_lost()
6470
"""
65-
from DvG_dev_Base__PyQt_lib import (Worker_DAQ,
66-
Worker_send,
67-
create_thread_worker_DAQ,
68-
create_thread_worker_send,
69-
start_thread_worker_DAQ,
70-
start_thread_worker_send,
71-
close_all_threads)
72-
7371
def __init__(self,
7472
dev: Arduino_functions.Arduino,
7573
DAQ_update_interval_ms,
@@ -79,23 +77,15 @@ def __init__(self,
7977
parent=None):
8078
super(Arduino_pyqt, self).__init__(parent=parent)
8179

82-
self.dev = dev
83-
self.dev.mutex = QtCore.QMutex()
84-
85-
self.worker_DAQ = self.Worker_DAQ(
86-
dev,
87-
DAQ_update_interval_ms,
88-
DAQ_function_to_run_each_update,
89-
DAQ_critical_not_alive_count,
90-
DAQ_timer_type,
91-
DEBUG=DEBUG_worker_DAQ)
80+
self.attach_device(dev)
9281

93-
self.worker_send = self.Worker_send(
94-
dev,
95-
DEBUG=DEBUG_worker_send)
82+
self.create_worker_DAQ(DAQ_update_interval_ms,
83+
DAQ_function_to_run_each_update,
84+
DAQ_critical_not_alive_count,
85+
DAQ_timer_type,
86+
DEBUG=DEBUG_worker_DAQ)
9687

97-
self.create_thread_worker_DAQ()
98-
self.create_thread_worker_send()
88+
self.create_worker_send(DEBUG=DEBUG_worker_send)
9989

10090
# --------------------------------------------------------------------------
10191
# queued_write

0 commit comments

Comments
 (0)