Source code for controllers.controller_interface

# TODO: add docs
from abc import ABCMeta, abstractmethod
import logging


[docs]class ControllerInterface: """[summary] """ __metaclass__ = ABCMeta
[docs] def __init__(self, name): self.__name__ = name self.hardware_interfaces = {}
[docs] @abstractmethod def step(self): """[summary] """
[docs] def start(self): """[summary] """ try: for hardware_interface in self.hardware_interfaces.values(): hardware_interface.start() logging.info("Interface %s started successfully", hardware_interface.name) except Exception as e: logging.error("Couldn't start interface %s. Exception is:\n%s", hardware_interface.name, e)
[docs] def stop(self): """[summary] """ for hardware_interface in self.hardware_interfaces.values(): hardware_interface.stop()
[docs] def _add_interface(self, hardware_interface): """[summary] Args: hw (HardwareInterface): [description] """ self.hardware_interfaces[hardware_interface.name] = hardware_interface logging.info("Added interface %s, type of %s ", hardware_interface.name, type(hardware_interface))