Implemented actuators
This commit is contained in:
parent
3a129f8518
commit
4cc347074a
0
src/actuator/__init__.py
Normal file
0
src/actuator/__init__.py
Normal file
24
src/actuator/abcactuator.py
Normal file
24
src/actuator/abcactuator.py
Normal file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
"""
|
||||
Abstract base class for Actuator
|
||||
"""
|
||||
|
||||
__author__ = "@marcsello"
|
||||
__copyright__ = "Copyright 2020, Birbnetes Team"
|
||||
__module_name__ = "abcactuator"
|
||||
__version__text__ = "1"
|
||||
|
||||
|
||||
class AbcActuator(ABC):
|
||||
"""
|
||||
Abstract base class Actuator. Responsible for acting.
|
||||
"""
|
||||
@abstractmethod
|
||||
def act(self):
|
||||
"""
|
||||
Preprocess a signal.
|
||||
:return:
|
||||
"""
|
||||
pass
|
32
src/actuator/loudspeaker.py
Normal file
32
src/actuator/loudspeaker.py
Normal file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
import random
|
||||
import os
|
||||
import os.path
|
||||
from .abcactuator import AbcActuator
|
||||
from birbnetes_iot_platform_raspberry import BirbnetesIoTPlatformPlaybackDriver
|
||||
|
||||
"""
|
||||
Abstract base class for Sender
|
||||
"""
|
||||
|
||||
__author__ = "@marcsello"
|
||||
__copyright__ = "Copyright 2020, Birbnetes Team"
|
||||
__module_name__ = "loudspeaker"
|
||||
__version__text__ = "1"
|
||||
|
||||
|
||||
class Loudspeaker(AbcActuator):
|
||||
"""
|
||||
A class that plays back various sounds.
|
||||
"""
|
||||
|
||||
def __init__(self, sound_dir: str):
|
||||
BirbnetesIoTPlatformPlaybackDriver.init()
|
||||
self._sound_dir = sound_dir
|
||||
|
||||
def act(self):
|
||||
choice = random.choice(os.listdir(self._sound_dir))
|
||||
BirbnetesIoTPlatformPlaybackDriver.play_audio(os.path.join(self._sound_dir, choice))
|
||||
|
||||
def __del__(self):
|
||||
BirbnetesIoTPlatformPlaybackDriver.cleanup()
|
Loading…
Reference in New Issue
Block a user