Source code for raspyrfm_client.device_implementations.gateway.base

from raspyrfm_client.device_implementations.controlunit.actions import Action
from raspyrfm_client.device_implementations.controlunit.base import ControlUnit
from raspyrfm_client.device_implementations.gateway.manufacturer.gateway_constants import GatewayModel
from raspyrfm_client.device_implementations.manufacturer_constants import Manufacturer


[docs] class Gateway(object): """ Base gateway implementation """ def __init__(self, manufacturer: Manufacturer, model: GatewayModel, host: str, port: int): self._manufacturer = manufacturer self._model = model self._firmware_version = None if host is None: host = "127.0.0.1" self._host = host if port is None: port = 49880 self._port = port
[docs] def get_manufacturer(self) -> Manufacturer: """ :return: the gateway manufacturer """ return self._manufacturer
[docs] def get_model(self) -> GatewayModel: """ :return: the gateway model """ return self._model
[docs] def get_firmware_version(self) -> str: """ :return: the gateway firmware version """ return self._firmware_version
[docs] def get_host(self) -> str: """ :return: the ip/host address of the gateway (if one was found or specified manually) """ return self._host
[docs] def get_port(self) -> int: """ :return: port of the gateway """ return self._port
[docs] def get_search_response_regex_literal(self) -> str: """ :return: a regular expression that matches the response to a "search" broadcast """ raise NotImplementedError
[docs] @staticmethod def create_from_broadcast(host: str, message: str): """ :param host: the host that sent the message :param message: the search response message :return: a new instance of this gateway based on a broadcast response message """ raise NotImplementedError
[docs] def generate_code(self, device: ControlUnit, action: Action) -> str: raise NotImplementedError