1.1.0版本
This commit is contained in:
215
UniTAP/dev/ports/pdc_port.py
Normal file
215
UniTAP/dev/ports/pdc_port.py
Normal file
@@ -0,0 +1,215 @@
|
||||
from UniTAP.libs.lib_tsi.tsi_io import PortIO
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_io import PDCPortIO
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_power_sink import PowerSink
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_contract_control import PowerContractControl340, PowerContractControlBase
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_power_source import PowerSource
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_controls import PdcControls340, PdcControls424, PdcControls500
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_dp_alt_mode import DpAltMode500, DpAltMode340
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_capabilities import PdcCapabilities, PdcCapabilities340
|
||||
from UniTAP.dev.ports.modules.pdc.pdc_bus_status import BusElectricalStatus
|
||||
|
||||
|
||||
class PDC:
|
||||
|
||||
"""
|
||||
Class `PDC` describes capabilities of power delivery controller.
|
||||
Contains following field:
|
||||
- Power contract control `power_contract_control`, type `PowerContractControlBase`.
|
||||
- Power Sink `power_sink`, type `PowerSink`.
|
||||
- Power Source `power_source`, type `PowerSource`.
|
||||
- DP Alt mode `dp_alt_mode`, type `DpAltMode340`.
|
||||
- PDC Capabilities `capabilities`, type `PdcCapabilities`.
|
||||
- BUS electrical status `bus_electrical_status`, type `BusElectricalStatus`.
|
||||
"""
|
||||
|
||||
def __init__(self, port_io: PortIO):
|
||||
self._pdc_io = PDCPortIO(port_io)
|
||||
self.__power_contract_control = PowerContractControlBase(self._pdc_io)
|
||||
self.__power_sink = PowerSink(self._pdc_io)
|
||||
self.__power_source = PowerSource(self._pdc_io)
|
||||
self.__dpam = DpAltMode340(self._pdc_io)
|
||||
self.__caps = PdcCapabilities(self._pdc_io)
|
||||
self.__bus_electrical_status = BusElectricalStatus(self._pdc_io)
|
||||
|
||||
@property
|
||||
def power_contract_control(self) -> PowerContractControlBase:
|
||||
"""
|
||||
Returns Power contract control.
|
||||
|
||||
Returns:
|
||||
object of `PowerContractControlBase` type
|
||||
"""
|
||||
return self.__power_contract_control
|
||||
|
||||
@property
|
||||
def power_sink(self) -> PowerSink:
|
||||
"""
|
||||
Returns Power Sink.
|
||||
|
||||
Returns:
|
||||
object of `PowerSink` type
|
||||
"""
|
||||
return self.__power_sink
|
||||
|
||||
@property
|
||||
def power_source(self) -> PowerSource:
|
||||
"""
|
||||
Returns Power Source.
|
||||
|
||||
Returns:
|
||||
object of `PowerSource` type
|
||||
"""
|
||||
return self.__power_source
|
||||
|
||||
@property
|
||||
def dp_alt_mode(self) -> DpAltMode340:
|
||||
"""
|
||||
Returns DP Alt mode.
|
||||
|
||||
Returns:
|
||||
object of `DpAltMode340` type
|
||||
"""
|
||||
return self.__dpam
|
||||
|
||||
@property
|
||||
def capabilities(self) -> PdcCapabilities:
|
||||
"""
|
||||
Returns PDC capabilities.
|
||||
|
||||
Returns:
|
||||
object of `PdcCapabilities` type
|
||||
"""
|
||||
return self.__caps
|
||||
|
||||
@property
|
||||
def bus_electrical_status(self) -> BusElectricalStatus:
|
||||
"""
|
||||
Returns BUS electrical status.
|
||||
|
||||
Returns:
|
||||
object of `BusElectricalStatus` type
|
||||
"""
|
||||
return self.__bus_electrical_status
|
||||
|
||||
def __str__(self) -> str:
|
||||
return (f"DP Alt Mode\n{self.dp_alt_mode}\n"
|
||||
f"{self.power_sink}\n"
|
||||
f"{self.power_source}\n"
|
||||
f"{self.power_contract_control}\n"
|
||||
f"{self.capabilities.status}\n"
|
||||
f"{self.bus_electrical_status}\n")
|
||||
|
||||
|
||||
class PDC340(PDC):
|
||||
|
||||
"""
|
||||
Class `PDC340` inherited from class `PDC`.
|
||||
Class `PDC340` allows working with overriding PDc controls and power contract control.
|
||||
Also has all the `PDC` functionality.
|
||||
- Power Contract control `power_contract_control`, type `PowerContractControl340`.
|
||||
- PDC Controls `controls`, type `PdcControls340`.
|
||||
"""
|
||||
|
||||
def __init__(self, port_io: PortIO):
|
||||
super().__init__(port_io)
|
||||
self.__power_contract_control = PowerContractControl340(self._pdc_io)
|
||||
self.__controls = PdcControls340(self._pdc_io)
|
||||
self.__caps = PdcCapabilities340(self._pdc_io)
|
||||
|
||||
@property
|
||||
def capabilities(self) -> PdcCapabilities340:
|
||||
"""
|
||||
Returns PDC capabilities.
|
||||
|
||||
Returns:
|
||||
object of `PdcCapabilities340` type
|
||||
"""
|
||||
return self.__caps
|
||||
|
||||
@property
|
||||
def power_contract_control(self) -> PowerContractControl340:
|
||||
"""
|
||||
Returns Power contract control.
|
||||
|
||||
Returns:
|
||||
object of `PowerContractControl340` type
|
||||
"""
|
||||
return self.__power_contract_control
|
||||
|
||||
@property
|
||||
def controls(self) -> PdcControls340:
|
||||
"""
|
||||
Returns PDC Controls.
|
||||
|
||||
Returns:
|
||||
object of `PdcControls340` type
|
||||
"""
|
||||
return self.__controls
|
||||
|
||||
def __str__(self) -> str:
|
||||
return (f"DP Alt Mode\n{self.dp_alt_mode}\n"
|
||||
f"{self.power_sink}\n"
|
||||
f"{self.power_source}\n"
|
||||
f"{self.power_contract_control}\n"
|
||||
f"{self.capabilities.status}"
|
||||
f"{self.bus_electrical_status}\n")
|
||||
|
||||
|
||||
class PDC424(PDC):
|
||||
|
||||
"""
|
||||
Class `PDC424` inherited from class `PDC`.
|
||||
Class `PDC424` allows working with overriding controls.
|
||||
Also has all the `PDC` functionality.
|
||||
- PDC Controls `controls`, type `PdcControls340`.
|
||||
"""
|
||||
|
||||
def __init__(self, port_io: PortIO):
|
||||
super().__init__(port_io)
|
||||
self.__controls = PdcControls424(self._pdc_io)
|
||||
|
||||
@property
|
||||
def controls(self) -> PdcControls424:
|
||||
"""
|
||||
Returns PDC Controls.
|
||||
|
||||
Returns:
|
||||
object of `PdcControls424` type
|
||||
"""
|
||||
return self.__controls
|
||||
|
||||
|
||||
class PDC500(PDC):
|
||||
|
||||
"""
|
||||
Class `PDC500` inherited from class `PDC`.
|
||||
Class `PDC500` allows working with overriding controls and DP Alt mode.
|
||||
Also has all the `PDC` functionality.
|
||||
- PDC Controls `controls`, type `PdcControls500`.
|
||||
- DP Alt mode `dp_alt_mode`, type `DpAltMode500`.
|
||||
"""
|
||||
|
||||
def __init__(self, port_io: PortIO):
|
||||
super().__init__(port_io)
|
||||
self.__controls = PdcControls500(self._pdc_io)
|
||||
self.__dpam = DpAltMode500(self._pdc_io)
|
||||
|
||||
@property
|
||||
def controls(self) -> PdcControls500:
|
||||
"""
|
||||
Returns PDC Controls.
|
||||
|
||||
Returns:
|
||||
object of `PdcControls500` type
|
||||
"""
|
||||
return self.__controls
|
||||
|
||||
@property
|
||||
def dp_alt_mode(self) -> DpAltMode500:
|
||||
"""
|
||||
Returns DP Alt mode.
|
||||
|
||||
Returns:
|
||||
object of `DpAltMode500` type
|
||||
"""
|
||||
return self.__dpam
|
||||
Reference in New Issue
Block a user