added ring_buffer according to xml definition

This commit is contained in:
p.loedige 2021-01-06 21:47:45 +01:00
parent 338cbf567a
commit 2632b9b2f7
2 changed files with 22 additions and 0 deletions

View File

@ -5,6 +5,8 @@ import sys
sys.path.append('/home/pi/aped_device')
from xml_reader import Xml_reader
from ring_buffer import Ring_buffer
class Interface_handler:
"""handles the access to the various interfaces (e.g. GPIO)
"""
@ -51,7 +53,9 @@ class Interface_handler:
self.xml_reader = xml_reader
self.pwms = [None] * 41
self.pwm_dutycycles = [None] * 41
self.buffers = [None] * 41
self.init_gpio()
self.init_buffer()
def init_gpio(self):
@ -79,6 +83,15 @@ class Interface_handler:
self.pwms[self.Pin[pin].value] = pwm
else:
raise NotImplementedError('the protocol of the device %s is not implemented' % device_name)
def init_buffer(self):
for device_name in self.xml_reader.get_device_names():
port_info = self.xml_reader.get_port(device_name)
pins = port_info["pins"]
buffer_size = self.xml_reader.get_buffer_size(device_name)
if buffer_size != 0:
for pin in pins:
self.buffers[self.Pin[pin].value] = Ring_buffer(buffer_size)
def read(self, device_name:str) -> dict:

9
ring_buffer.py Normal file
View File

@ -0,0 +1,9 @@
class Ring_buffer:
def __init__(self,size):
self.size = size
self.data = []
def append(self, data):
self.data.append(data)
if len(self.data) == self.size:
self.data.pop(0)