77 lines
3.0 KiB
Python
77 lines
3.0 KiB
Python
|
|
#
|
||
|
|
# Import UniTAP module.
|
||
|
|
#
|
||
|
|
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)
|
||
|
|
dev.opf_handler = UniTAP.OpfHandlerInternal(port_tx=role.dptx, port_rx=role.dprx)
|
||
|
|
|
||
|
|
group_test = UniTAP.TestGroupId.DP_TX_LL_CTS
|
||
|
|
|
||
|
|
# You can make a copy of the object, configure it and reassign it or can configure it directly
|
||
|
|
|
||
|
|
# Copy
|
||
|
|
params = role.dut_tests.get_default_parameters(UniTAP.Dp14SinkTestParam)
|
||
|
|
|
||
|
|
# Configure supported timings for DP DUT Sink tests
|
||
|
|
params.timings.T_3840_x_2160_60.set_all()
|
||
|
|
params.timings.T_5120_x_2160_60.set_all()
|
||
|
|
|
||
|
|
# Configure Event Filter from Source side
|
||
|
|
event_filter_tx = role.dptx.event_capturer.event_filter(UniTAP.EventFilterDpTx) # Get filter object
|
||
|
|
event_filter_tx.config_hpd_events(True) # Enable capturing HPD events
|
||
|
|
event_filter_tx.config_aux_events(True) # Enable capturing AUX events
|
||
|
|
role.dptx.event_capturer.configure_capturer(event_filter_tx) # Transfer updated filter object
|
||
|
|
|
||
|
|
event_filter_rx = role.dprx.event_capturer.event_filter(UniTAP.EventFilterDpRx) # Get filter object
|
||
|
|
event_filter_rx.config_hpd_events(True) # Enable capturing HPD events
|
||
|
|
event_filter_rx.config_aux_events(True) # Enable capturing AUX events
|
||
|
|
event_filter_rx.config_sdp_events(True, UniTAP.EventSDP.CG2) # Enable capturing SDP (CG2) events
|
||
|
|
role.dprx.event_capturer.configure_capturer(event_filter_rx) # Transfer updated filter object
|
||
|
|
|
||
|
|
role.dptx.event_capturer.start() # Start event capturing
|
||
|
|
|
||
|
|
role.dut_tests.run(group_id=group_test, test_id=0, params=params) # Run selected test
|
||
|
|
|
||
|
|
results = role.dut_tests.get_all_tests_results() # Get results after testing
|
||
|
|
|
||
|
|
role.dptx.event_capturer.stop() # Stop event capturing
|
||
|
|
|
||
|
|
capture_result = role.dptx.event_capturer.pop_all_elements_as_result_object() # Get all captured events
|
||
|
|
|
||
|
|
event_log_file_path = "EventData"
|
||
|
|
event_log_html_file_path = "EventDataReport"
|
||
|
|
if len(capture_result.buffer) > 0:
|
||
|
|
# Save captured events to BIN file and save HTML report
|
||
|
|
capture_result.save_to_file_all_events(file_format=UniTAP.EventFileFormat.BIN, path=event_log_file_path)
|
||
|
|
capture_result.save_to_file_all_events(file_format=UniTAP.EventFileFormat.HTML, path=event_log_html_file_path)
|
||
|
|
else:
|
||
|
|
print("Buffer is empty.")
|
||
|
|
|
||
|
|
# Save test result to HTML report
|
||
|
|
role.dut_tests.make_report('./report',
|
||
|
|
tested_by="Example",
|
||
|
|
remarks="Remarks for test report.")
|
||
|
|
#
|
||
|
|
# 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()
|