from io_module import IO_Module
from modbus import Modbus
from log_reader import AnalogInputLogReader
import colorama
from colorama import Fore
from time import sleep
from serial import Serial
from mb_registers import AI_REGS


class IO_AnalogInput(IO_Module):
    def __init__(self, modbus: Modbus):
        self.modbus = modbus
        super().__init__(self.modbus)
        self.log = AnalogInputLogReader(self.modbus)

    '''Чтение параметров'''

    # Рожим работы входов
    def get_inputs_mode(self):
        data = self.modbus.read_holding_registers(AI_REGS['ain_mode'], 1)
        return format(data[0], '012b')

    '''Установка параметров'''

    def set_inputs_mode(self, val):
        self.modbus.write_holding_register(AI_REGS['ain_mode'], val)

def main():
    colorama.init(autoreset=True)
    
    serial_port = Serial('COM56', 115200, timeout=0.05, parity='N', xonxoff=False)
    
    modbus_tester = Modbus(serial_port, 1)
    # dev_tester = IO_Digital(modbus_tester)
    ai = IO_AnalogInput(modbus_tester)

    '''Режим работы аналоговых входов'''
    print(ai.get_inputs_mode())
    ai.set_inputs_mode(0b00011000)
    print(ai.get_inputs_mode())

if __name__ == '__main__':
    main()