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