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