94 lines
2.1 KiB
Python
94 lines
2.1 KiB
Python
#
|
|
# Import UniTAP module.
|
|
#
|
|
|
|
import UniTAP
|
|
import time
|
|
|
|
#
|
|
# 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(0)
|
|
|
|
# After opening device as in UCD Console device role should be selected.
|
|
# role = dev.select_role(UniTAP.dev.UCD422.HDMISourceHDMISink)
|
|
role = dev.select_role(UniTAP.dev.UCD323.HDMISource)
|
|
|
|
|
|
|
|
hdr10_drm_if = bytearray([
|
|
0x87, 0x01, 0x1A, 0x91,
|
|
|
|
0x02, 0x00,
|
|
|
|
0x34, 0x21, 0xAA, 0x9B,
|
|
0x96, 0x19, 0xFC, 0x08,
|
|
0x48, 0x8A, 0x08, 0x39,
|
|
0x13, 0x3D, 0x42, 0x40,
|
|
|
|
0xE8, 0x03,
|
|
0x32, 0x00,
|
|
|
|
0xE8, 0x03,
|
|
0x90, 0x01,
|
|
|
|
0x00, 0x00, 0x00, 0x00
|
|
])
|
|
|
|
role.hdtx.sdpg.add_packet(hdr10_drm_if)
|
|
|
|
# role.hdtx.sdpg.add_packet(bytearray([0x81, 0x01, 0x1B, 0x16, 0x8B, 0x84, 0x90, 0x40, 0x00, 0x00, 0x06, 0x64, 0x00, 0x00, 0x00, 0x00,
|
|
# 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
# 0x00, 0x00, 0x00, 0x00]))
|
|
# role.hdtx.sdpg.load_packet("UniTAP/dev/modules/dut_tests/cfg/hdr10/hdr10_edid.bin")
|
|
|
|
role.hdtx.sdpg.stop()
|
|
|
|
print(role.hdtx.sdpg.status())
|
|
|
|
time.sleep(5)
|
|
|
|
role.hdtx.sdpg.start()
|
|
|
|
print(role.hdtx.sdpg.status())
|
|
|
|
#
|
|
# 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()
|
|
|
|
|
|
|
|
def calc_infoframe_checksum(header, payload):
|
|
return (-sum(header) - sum(payload)) & 0xFF
|
|
|
|
|
|
# header = [0x87, 0x01, 0x1A]
|
|
|
|
# payload = [
|
|
# 0x02, 0x00,
|
|
|
|
# 0x34, 0x21, 0xAA, 0x9B,
|
|
# 0x96, 0x19, 0xFC, 0x08,
|
|
# 0x48, 0x8A, 0x08, 0x39,
|
|
# 0x13, 0x3D, 0x42, 0x40,
|
|
|
|
# 0xE8, 0x03,
|
|
# 0x32, 0x00,
|
|
|
|
# 0xE8, 0x03,
|
|
# 0x90, 0x01
|
|
# ]
|
|
|
|
# checksum = calc_infoframe_checksum(header, payload)
|
|
# print(hex(checksum)) # 0x91 |