Files
pqAutomationApp/docs/UCD-API文档/examples/work_with_hdcp.py

101 lines
3.2 KiB
Python
Raw Normal View History

2026-07-02 17:16:18 +08:00
#
# Import UniTAP module.
#
import time
import UniTAP
#
# To initialize UniTAP library wrapper user should create UniTAP.TsiLib() object.
#
lUniTAP = UniTAP.TsiLib()
#
# For opening device, please, put serial number of the device as 8 symbol str or put index of device.
#
# dev = lUniTAP.open("NNNNNNNN")
dev = lUniTAP.open(0)
# After opening device as in UCD Console device role should be selected.
role = dev.select_role(UniTAP.dev.UCD400.DPSourceDPSink)
# role = dev.select_role(UniTAP.dev.UCD500.DPSourceDPSink)
# Print HDCP 1.4 and 2.3 statuses
# print(role.dptx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
print(role.dptx.hdcp.status.get(UniTAP.HdcpStatus.StatusTx2x))
# print(role.dprx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
print(role.dprx.hdcp.status.get(UniTAP.HdcpStatus.StatusRx2x))
# Set config HDCP 1.4 TX
# config = UniTAP.HdcpTxConfig.Config1x()
# config.encryption = True
# config.authenticate = True
# config.keys = UniTAP.HdcpSource1XKeys.Production
# role.dptx.hdcp.config.set(config)
# time.sleep(2)
# Set config HDCP 1.4 RX
# config = UniTAP.HdcpRxConfig.Config1x()
# config.keys = UniTAP.HdcpSink1XKeys.Production
# config.capable = True
# print(role.dptx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
# print(role.dptx.hdcp.status.get(UniTAP.HdcpStatus.StatusTx2x))
# print(role.dprx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
# print(role.dprx.hdcp.status.get(UniTAP.HdcpStatus.StatusRx2x))
# Set config HDCP 2.3
config = UniTAP.HdcpTxConfig.Config2x()
config.encryption = True
config.authenticate = True
config.keys = UniTAP.HdcpSource2XKeys.Production
config.store_km = True
config.content_level = 1
role.dptx.hdcp.config.set(config)
time.sleep(2)
# Set config HDCP 2.3 RX
config = UniTAP.HdcpRxConfig.Config2x()
config.keys = UniTAP.HdcpSink2XKeys.Production
config.capable = True
# print(role.dptx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
print(role.dptx.hdcp.status.get(UniTAP.HdcpStatus.StatusTx2x))
# print(role.dprx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
print(role.dprx.hdcp.status.get(UniTAP.HdcpStatus.StatusRx2x))
# Get config HDCP 1.4
# config_14 = role.dptx.hdcp.config.get(UniTAP.HdcpTxConfig.Config1x)
# Get config HDCP 2.3
config_23 = role.dptx.hdcp.config.get(UniTAP.HdcpTxConfig.Config2x)
# For UCD-323 -> UCD-301
# role_rx = dev_rx.select_role(UniTAP.dev.UCD301.HDMISink)
# role_tx = dev_tx.select_role(UniTAP.dev.UCD323.HDMISource)
# Print HDCP 1.4 and 2.3 statuses
# print(role_rx.hdrx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
# print(role_tx.hdtx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
# Set config HDCP 1.4
# config = UniTAP.HdcpTxConfig.Config1x()
# config.encryption = True
# config.authenticate = True
# config.keys = UniTAP.HdcpSource1XKeys.Production
# role_tx.hdtx.hdcp.config.set(config)
# time.sleep(2)
# print(role_rx.hdrx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
# print(role_tx.hdtx.hdcp.status.get(UniTAP.HdcpStatus.Status1x))
#
# Since the 3.5 version, TsiLib and TSIDevice objects have the option to be closed earlier.
# TSIDevice can be closed with the TsiLib method close(). TsiLib can be closed with cleanup().
# Clean up will close all opened devices and block ability to open any devices
# with same TsiLib object.
#
lUniTAP.close(dev)
lUniTAP.cleanup()