Files
pqAutomationApp/UniTAP/dev/dev_3xx_roles.py

460 lines
13 KiB
Python
Raw Permalink Normal View History

2026-04-16 16:51:05 +08:00
from .ports import DPRX, DPTX, HDRX, HDTX, PDC340
from .modules import MemoryManager, Capturer, DUTTests
from UniTAP.libs.lib_tsi.tsi_io import DeviceIO, PortProtocol
class UCD340:
"""
Class `UCD340` describes of device UCD-340. Device has several possible role:
- 'USB-C, DP Alt Mode Reference Sink' `USBCSink`
- 'USB-C, DP Alt Mode Reference Source' `USBCSource`.
"""
class USBCSink:
"""
Class `USBCSink` contains information of available functionality modules for role USB-C Sink (RX - receiver)
role:
- `DPRX`.
- `DUTTests`.
- `PDC`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__port_io = dev_io.create_port_io(0, PortProtocol.DisplayPortThrowUSBC)
self.__dprx = DPRX(self.__port_io, memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
self.__pdcrx = PDC340(self.__port_io)
@property
def dprx(self) -> DPRX:
"""
Returns DP Sink (RX - receiver) role.
Returns:
object of DPRX type.
"""
return self.__dprx
@property
def pdcrx(self) -> PDC340:
"""
Returns PDC Sink (RX - receiver) role.
Returns:
object of `PDC340` type.
"""
return self.__pdcrx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD340.ROLE_DICT.keys())[list(UCD340.ROLE_DICT.values()).index(type(self))]
class USBCSource:
"""
Class `USBCSource` contains information of available functionality modules for role USB-C Source
(TX - transmitter) role:
- `DPTX`.
- `DUTTests`.
- `PDC`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__port_io = dev_io.create_port_io(0, PortProtocol.DisplayPortThrowUSBC)
self.__dptx = DPTX(self.__port_io, memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
self.__pdctx = PDC340(self.__port_io)
@property
def dptx(self) -> DPTX:
"""
Returns DP Source (TX - transmitter) role.
Returns:
object of DPTX type.
"""
return self.__dptx
@property
def pdctx(self) -> PDC340:
"""
Returns PDC Source (TX - transmitter) role.
Returns:
object of `PDC340` type.
"""
return self.__pdctx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD340.ROLE_DICT.keys())[list(UCD340.ROLE_DICT.values()).index(type(self))]
ROLE_DICT = {
"USB-C, DP Alt Mode Reference Sink": USBCSink,
"USB-C, DP Alt Mode Reference Source": USBCSource
}
class UCD240(UCD340):
"""
Class `UCD240` describes of device UCD-240 and have the same functionality as the class 'UCD340'.
Device has several possible role:
- 'USB-C, DP Alt Mode Reference Sink' `USBCSink`
- 'USB-C, DP Alt Mode Reference Source' `USBCSource`.
"""
class UCD323:
"""
Class `UCD323` describes of device UCD-323. Device has several possible role:
- 'DisplayPort Reference Sink (SST, HDCP 2.3)' `DPSink`
- 'DisplayPort Reference Source (SST, HDCP 2.3)' `DPSource`
- 'HDMI Reference Sink (HDCP 2.3)' `HDMISink`
- 'HDMI Reference Source (HDCP 2.3)' `HDMISource`
"""
class DPSink:
"""
Class `DPSink` contains information of available functionality modules for role DP Sink (RX - receiver) role:
- `DPRX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__dprx = DPRX(dev_io.create_port_io(0, PortProtocol.DisplayPort), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def dprx(self) -> DPRX:
"""
Returns DP Sink (RX - receiver) role.
Returns:
object of DPRX type.
"""
return self.__dprx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD323.ROLE_DICT.keys())[list(UCD323.ROLE_DICT.values()).index(type(self))]
class DPSource:
"""
Class `DPSink` contains information of available functionality modules for role DP Source (TX - transmitter)
role:
- `DPTX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__dptx = DPTX(dev_io.create_port_io(0, PortProtocol.DisplayPort), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def dptx(self) -> DPTX:
"""
Returns DP Source (TX - transmitter) role.
Returns:
object of DPTX type.
"""
return self.__dptx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD323.ROLE_DICT.keys())[list(UCD323.ROLE_DICT.values()).index(type(self))]
class HDMISink:
"""
Class `HDMISink` contains information of available functionality modules for role HDMI Sink (RX - receiver)
role:
- `HDRX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__hdrx = HDRX(dev_io.create_port_io(0, PortProtocol.HDMI), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def hdrx(self) -> HDRX:
"""
Returns HDMI Sink (RX - receiver) role.
Returns:
object of HDRX type.
"""
return self.__hdrx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD323.ROLE_DICT.keys())[list(UCD323.ROLE_DICT.values()).index(type(self))]
class HDMISource:
"""
Class `HDMISource` contains information of available functionality modules for role HDMI Source
(TX - transmitter) role:
- `HDTX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__hdtx = HDTX(dev_io.create_port_io(0, PortProtocol.HDMI), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def hdtx(self) -> HDTX:
"""
Returns HDMI Source (TX - transmitter) role.
Returns:
object of HDTX type.
"""
return self.__hdtx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD323.ROLE_DICT.keys())[list(UCD323.ROLE_DICT.values()).index(type(self))]
ROLE_DICT = {
"DisplayPort Reference Sink (SST, HDCP 2.3)": DPSink,
"DisplayPort Reference Source (SST, HDCP 2.3)": DPSource,
"HDMI Reference Sink (HDCP 2.3)": HDMISink,
"HDMI Reference Source (HDCP 2.3)": HDMISource,
}
class UCD301:
"""
Class `UCD301` describes of device UCD-301. Device has several possible role:
- 'DisplayPort Reference Sink (SST, HDCP 2.3)' `DPSink`
- 'HDMI Reference Sink (HDCP 2.3)' `HDMISink`
"""
class DPSink:
"""
Class `DPSink` contains information of available functionality modules for role DP Sink (RX - receiver) role:
- `DPRX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__dprx = DPRX(dev_io.create_port_io(0, PortProtocol.DisplayPort), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def dprx(self) -> DPRX:
"""
Returns DP Sink (RX - receiver) role.
Returns:
object of DPRX type.
"""
return self.__dprx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD301.ROLE_DICT.keys())[list(UCD301.ROLE_DICT.values()).index(type(self))]
class HDMISink:
"""
Class `HDMISink` contains information of available functionality modules for role HDMI Sink (RX - receiver)
role:
- `HDRX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__hdrx = HDRX(dev_io.create_port_io(0, PortProtocol.HDMI), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def hdrx(self) -> HDRX:
"""
Returns HDMI Sink (RX - receiver) role.
Returns:
object of HDRX type.
"""
return self.__hdrx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD301.ROLE_DICT.keys())[list(UCD301.ROLE_DICT.values()).index(type(self))]
class DPSinkHDMISink:
"""
Class `DPSinkHDMISink` contains information of available functionality modules for role DP and HDMI Sink
(RX - receiver) role:
- `DPRX`.
- `HDRX`.
- `DUTTests`.
"""
def __init__(self, dev_io: DeviceIO, memory_manager: MemoryManager, capturer: Capturer):
self.__dprx = DPRX(dev_io.create_port_io(0, PortProtocol.DisplayPort), memory_manager, capturer)
self.__hdrx = HDRX(dev_io.create_port_io(0, PortProtocol.HDMI), memory_manager, capturer)
self.__dut_tests = DUTTests(dev_io)
@property
def hdrx(self) -> HDRX:
"""
Returns HDMI Sink (RX - receiver) role.
Returns:
object of HDRX type.
"""
return self.__hdrx
@property
def dprx(self) -> DPRX:
"""
Returns DP Sink (RX - receiver) role.
Returns:
object of DPRX type.
"""
return self.__dprx
@property
def dut_tests(self) -> DUTTests:
"""
Returns DUT Test module.
Returns:
object of DUTTests type.
"""
return self.__dut_tests
@property
def name(self) -> str:
"""
Returns name of role.
Returns:
object of str type.
"""
return list(UCD301.ROLE_DICT.keys())[list(UCD301.ROLE_DICT.values()).index(type(self))]
ROLE_DICT = {
"DisplayPort Reference Sink (SST, HDCP 2.3)": DPSink,
"HDMI, DisplayPort (SST), SPDIF Reference Sink": DPSinkHDMISink,
"HDMI Reference Sink (HDCP 2.3)": HDMISink,
}