from dataclasses import dataclass
from typing import Dict, Any

@dataclass
class ModbusScanResult:
    """
    Результаты сканирования Modbus устройства
    Содержит только активные регистры
    """
    ip_address: str
    active_coils: Dict[int, bool]           # Активные Coils: адрес -> значение
    active_discrete_inputs: Dict[int, bool]  # Активные Discrete Inputs
    active_holding_registers: Dict[int, int]  # Активные Holding Registers
    active_input_registers: Dict[int, int]    # Активные Input Registers

    def to_dict(self) -> Dict[str, Any]:
        """Сериализация в словарь"""
        return {
            'ip_address': self.ip_address,
            'active_coils': self.active_coils,
            'active_discrete_inputs': self.active_discrete_inputs,
            'active_holding_registers': self.active_holding_registers,
            'active_input_registers': self.active_input_registers
        }