From 53aaee030462a0771420ff5bd09808bd383a9cdd Mon Sep 17 00:00:00 2001 From: "p.loedige" Date: Thu, 7 Jan 2021 22:27:46 +0100 Subject: [PATCH] buffer size can now be changed dynamically --- app.py | 1 + interface_handler.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 34ebc0c..f8946a1 100644 --- a/app.py +++ b/app.py @@ -56,6 +56,7 @@ def xml_transfer(): str(dir + '/XML/config.xml')) xml_reader.set_root(str(dir + '/XML/config.xml')) interface_handler.init_gpio() + interface_handler.init_buffer() else: SyntaxError('the config.xml has invalid content') return {'error': ''} diff --git a/interface_handler.py b/interface_handler.py index e51c1e5..132deb5 100644 --- a/interface_handler.py +++ b/interface_handler.py @@ -60,6 +60,7 @@ class Interface_handler: self.buffers = [None] * 41 self.buffer_device_names = [] self.buffer_thread = None + self.run_buffer = False self.init_gpio() self.init_buffer() @@ -97,8 +98,10 @@ class Interface_handler: """initializes the buffer thread """ #stop the buffer thread - if self.buffer_thread != None: - self.buffer_thread.stop() + self.run_buffer = False + while self.buffer_thread!=None and self.buffer_thread.is_alive(): + time.sleep(BUFFER_SPEED) + self.run_buffer = True #create the buffers for device_name in self.xml_reader.get_device_names(): port_info = self.xml_reader.get_port(device_name) @@ -241,7 +244,7 @@ class Interface_handler: def buffering(self): """method that buffers the device outputs """ - while True: #loop forever + while self.run_buffer: #loop for device_name in self.buffer_device_names: output = self.read(device_name) port_info = self.xml_reader.get_port(device_name)