Add Dispatch_V0.1.1
This commit is contained in:
48
Dispatch_V0.1.1/services/hardware_gateway.py
Normal file
48
Dispatch_V0.1.1/services/hardware_gateway.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# hub/ticket/services/hardware_gateway.py
|
||||
|
||||
"""Публичный контракт аппаратного шлюза Ticket."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Mapping, Protocol
|
||||
|
||||
from domain import TicketHardwareStatus
|
||||
|
||||
|
||||
class TicketHardwareObserver(Protocol):
|
||||
"""Получатель событий от аппаратного или mock-шлюза."""
|
||||
|
||||
def on_task_action(self, raw_action: Mapping[str, Any]) -> None:
|
||||
"""Принять внешнее действие по задаче."""
|
||||
|
||||
def on_gateway_status(self, status: TicketHardwareStatus) -> None:
|
||||
"""Принять обновление статуса подключения и инициализации."""
|
||||
|
||||
def on_gateway_error(self, message: str) -> None:
|
||||
"""Принять сообщение об ошибке шлюза."""
|
||||
|
||||
|
||||
class TicketHardwareGateway(Protocol):
|
||||
"""Минимальный публичный API сервиса ввода событий Ticket."""
|
||||
|
||||
def start(self) -> None:
|
||||
"""Запустить внешний источник событий."""
|
||||
|
||||
def stop(self) -> None:
|
||||
"""Остановить внешний источник событий."""
|
||||
|
||||
def get_status(self) -> TicketHardwareStatus:
|
||||
"""Вернуть текущий статус шлюза."""
|
||||
|
||||
def set_observer(self, observer: TicketHardwareObserver | None) -> None:
|
||||
"""Назначить получателя событий приложения."""
|
||||
|
||||
def set_button_state(self, button_id: int, state_code: int) -> None:
|
||||
"""Синхронизировать каноническое состояние кнопки для аппаратного шлюза."""
|
||||
|
||||
def remove_button_state(self, button_id: int) -> None:
|
||||
"""Удалить известное состояние кнопки из шлюза."""
|
||||
|
||||
def reset_button_states(self) -> None:
|
||||
"""Сбросить все известные состояния кнопок при смене контекста."""
|
||||
Reference in New Issue
Block a user