extends Node


class InDev:
    var id: int						## Идентификатор индекс устройства
    var dev_name: String			## Имя подключаемого комплекса
    var connector: String			## Номер разъёма в приборе
    var delay: float				## Задержка фронта импульса
    var offset: float				## Смещение фронта импульса
    var state: int					## Состояние входа
    var freq: int					## Предполагаемая частота на которой работает комплекс
    var ports_data: Dictionary 		## Словарь состояния портов устройства
    var tbl_row_id: int				## Индекс устройства в таблице выходов
    var out_dots: Array				## Список выходных устройств в порядке, как в таблице и точки матрицы
    var connect_devs: Dictionary 	## Список присоединённых устройств
    var board: String				## Плата в которой находится устройство

    func _init(dev_id : int, params : Array, row_id : int):
        id = dev_id
        dev_name = String(params[0])
        connector = String(params[1])
        delay = float(params[2])
        offset = float(params[3])
        tbl_row_id = row_id


class OutDev extends InDev:
    var mode: String			## Режим работы выхода

    func _init(dev_id : int, params : Array, row_id : int):
        id = dev_id
        dev_name = String(params[0])
        connector = String(params[1])
        delay = float(params[2])
        offset = float(params[3])
        tbl_row_id = row_id
        mode = 'Работа'
