added ring_buffer according to xml definition
This commit is contained in:
parent
338cbf567a
commit
2632b9b2f7
@ -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
9
ring_buffer.py
Normal 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)
|
Loading…
x
Reference in New Issue
Block a user