powermon.ports.serialport module

powermon / ports / serialport.py

class powermon.ports.serialport.SerialPort(path, baud, protocol)

Bases: AbstractPort

serial port object - normally a usb to serial adapter

async connect() int

default port connect function

async disconnect() None

default port disconnect function

async classmethod from_config(config=None)

build port object from config dict

is_connected()

default is_connected function

async resolve_path(path, serial_number)

Async method to resolve a valid path by testing each one.

async send_and_receive(command: Command) Result

main worker function for port objects, specific to each port type

to_dto() _AbstractPortDTO

convert port object to data transfer object

class powermon.ports.serialport.SerialPortDTO(*, port_type: str, protocol: AbstractProtocolDTO, path: str, baud: int, serial_number: None | int | str)

Bases: _AbstractPortDTO

data transfer model for SerialPort class

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'baud': FieldInfo(annotation=int, required=True), 'path': FieldInfo(annotation=str, required=True), 'port_type': FieldInfo(annotation=str, required=True), 'protocol': FieldInfo(annotation=AbstractProtocolDTO, required=True), 'serial_number': FieldInfo(annotation=Union[NoneType, int, str], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.