39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
""" pydantic definitions for the powermon port config model
|
|
"""
|
|
from typing import Literal
|
|
|
|
from pydantic import Field
|
|
|
|
from powermon.configmodel import NoExtraBaseModel
|
|
|
|
|
|
class BlePortConfig(NoExtraBaseModel):
|
|
""" model/allowed elements for ble port config """
|
|
type: Literal["ble"]
|
|
mac: str
|
|
protocol: None | str
|
|
victron_key: None | str = Field(default=None, repr=False)
|
|
|
|
|
|
class SerialPortConfig(NoExtraBaseModel):
|
|
""" model/allowed elements for serial port config """
|
|
type: Literal["serial"]
|
|
path: str
|
|
baud: None | int = Field(default=None)
|
|
protocol: None | str
|
|
|
|
|
|
class UsbPortConfig(NoExtraBaseModel):
|
|
""" model/allowed elements for usb port config """
|
|
type: Literal["usb"]
|
|
path: None | str
|
|
protocol: None | str
|
|
serial_number: None | str | int = Field(default=None)
|
|
|
|
|
|
class TestPortConfig(NoExtraBaseModel):
|
|
""" model/allowed elements for test port config """
|
|
type: Literal["test"]
|
|
response_number: None | int = Field(default=None)
|
|
protocol: None | str = Field(default=None)
|