Source code for pydoover.docker.modbus.config

import enum

from ...config import Array, Enum, Integer, Number, Object, String


class ModbusType(enum.Enum):
    SERIAL = "serial"
    TCP = "tcp"


[docs] class ModbusConfig(Object): type = Enum("Bus Type", choices=["serial", "tcp"], default="serial") name = String("Name", default="default") # TODO: only show these when serial type is selected. serial_port = String("Serial Port", default="/dev/ttyAMA0") serial_baud = Integer("Serial Baud", default=9600) serial_method = Enum( "Serial Method", choices=["rtu", "ascii", "socket", "tls"], default="rtu", ) serial_bits = Integer("Serial Data Bits", default=8) serial_parity = Enum( "Serial Parity", choices=["None", "Even", "Odd"], default="None" ) serial_stop = Integer("Serial Stop Bits", default=1) serial_timeout = Number("Serial Timeout", default=0.3) tcp_uri = String("TCP URI", default="127.0.0.1:5000") tcp_timeout = Number("TCP Timeout", default=2.0) def __init__(self, display_name: str = "Modbus Config"): super().__init__(display_name)
[docs] class ManyModbusConfig(Array): elements: list[ModbusConfig] def __init__(self, display_name: str = "Modbus Config"): super().__init__(display_name, element=ModbusConfig("Modbus Instance Config"))