powermon.ports.usbport module

powermon / ports / usbport.py

class powermon.ports.usbport.USBPort(path, protocol)

Bases: AbstractPort

usb port object

async connect() bool

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() bool

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()

convert port object to data transfer object

class powermon.ports.usbport.UsbPortDTO(*, port_type: str, protocol: AbstractProtocolDTO, path: str, 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]] = {'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.