更新UCD-API库及文档

This commit is contained in:
xinzhu.yin
2026-07-02 17:16:18 +08:00
parent a500751d85
commit 9fa811a9eb
290 changed files with 9558 additions and 2306 deletions

View File

@@ -8,7 +8,7 @@ class OPFParametersParser:
return parse_link_training(args[3])
if opf_id in [2]:
return parse_video_mode_2(args[3])
if opf_id in [3, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16, 17, 101, 102, 104, 105, 106, 121, 122, 123, 145, 150, 152, 161]:
if opf_id in [3, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16, 17, 22, 23, 24, 101, 102, 104, 105, 106, 121, 122, 123, 145, 150, 152, 161]:
return parse_message(args[1])
if opf_id in [6]:
return parse_video_mode_6(args[1], args[3])
@@ -26,6 +26,11 @@ class OPFParametersParser:
return parse_opf_21(args[3])
if opf_id in [103]:
return parse_video_mode_103(args[3])
if opf_id in [108]:
if len(args) > 3:
return parse_audio_mode_108(args[3])
else:
return parse_message(args[1])
if opf_id in [120]:
return parse_video_mode_120(args[3])
if opf_id in [140]:
@@ -38,6 +43,10 @@ class OPFParametersParser:
return parse_video_mode_143(args[3])
if opf_id in [144]:
return parse_video_mode_144(args[3])
if opf_id in [146]:
return parse_video_mode_146(args[3])
if opf_id in [147]:
return parse_video_mode_147(args[3])
if opf_id in [151]:
return parse_video_mode_103(args[3])
else:

View File

@@ -1,10 +1,10 @@
import re
from typing import List, Optional
from UniTAP.libs.lib_tsi.tsi_types import TSI_OPF_PARAMETER
import UniTAP.libs.lib_tsi.tsi_types as ci
def parse_link_training(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_link_training(parameters_list: List[ci.TSI_OPF_PARAMETER]):
dp_lanes = 0
dp_link_rate = 0
encoding = None
@@ -29,7 +29,7 @@ def parse_link_training(parameters_list: List[TSI_OPF_PARAMETER]):
return int(dp_lanes), float(dp_link_rate), encoding
def parse_video_mode_2(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_2(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x = 0
res_y = 0
res_frate = 0
@@ -48,7 +48,7 @@ def parse_video_mode_2(parameters_list: List[TSI_OPF_PARAMETER]):
return int(res_x), int(res_y), int(float(res_frate) * 1000), int(res_bpc), tim_std, tim_rb
def parse_video_mode_6(pattern_request: str, parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_6(pattern_request: str, parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x = 0
res_y = 0
res_frate = 0
@@ -79,7 +79,7 @@ def parse_video_mode_6(pattern_request: str, parameters_list: List[TSI_OPF_PARAM
res_bpc), timing_standard, col_format, col_range, col_yc, pattern_name
def parse_video_mode_9(parameters_list: List[TSI_OPF_PARAMETER], pattern_request: Optional[str] = None):
def parse_video_mode_9(parameters_list: List[ci.TSI_OPF_PARAMETER], pattern_request: Optional[str] = None):
res_x = 0
res_y = 0
res_frate = 0
@@ -101,7 +101,7 @@ def parse_video_mode_9(parameters_list: List[TSI_OPF_PARAMETER], pattern_request
return int(res_x), int(res_y), int(float(res_frate) * 1000), int(res_bpc), tim_std, pattern_name
def parse_opf_10(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_opf_10(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x, res_y, res_frate, res_bpc, timing_standard = [0] * 5
audio_pattern = ''
@@ -136,7 +136,7 @@ def parse_message(message: str):
return [str(message)]
def parse_video_mode_19(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_19(parameters_list: List[ci.TSI_OPF_PARAMETER]):
use_3tap = False
for param in parameters_list:
if param.name == 'Conversion type filter':
@@ -144,7 +144,7 @@ def parse_video_mode_19(parameters_list: List[TSI_OPF_PARAMETER]):
return [use_3tap]
def parse_video_mode_18(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_18(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x = 0
res_y = 0
res_frate = 0
@@ -166,7 +166,7 @@ def parse_video_mode_18(parameters_list: List[TSI_OPF_PARAMETER]):
return int(res_x), int(res_y), int(float(res_frate) * 1000), int(res_bpc), col_format, col_range, col_yc, tim_std
def parse_video_mode_20(parameters_list: List[TSI_OPF_PARAMETER], pattern_request: Optional[str] = None):
def parse_video_mode_20(parameters_list: List[ci.TSI_OPF_PARAMETER], pattern_request: Optional[str] = None):
pattern_name = None
res_x = 0
res_y = 0
@@ -186,10 +186,10 @@ def parse_video_mode_20(parameters_list: List[TSI_OPF_PARAMETER], pattern_reques
enable_dsc = False
for param in parameters_list:
if param.name == 'Video Mode':
line = param.description.split("Hz")
res_x, res_y, res_frate = re.findall(r'\d+', line[0])
tim_std = re.findall(r'VIC \d+|DMT \w+|UFG \d+|CVT RB\d+|CVT|OVT', line[1])
if param.name == 'Video Mode' and param.description != "Disable Video":
line = param.description.split("Hz")
res_x, res_y, res_frate = re.findall(r'\d+', line[0])
tim_std = re.findall(r'VIC \d+|DMT \w+|UFG \d+|CVT RB\d+|CVT|OVT', line[1])
elif param.name == 'Color Format':
color_format_str = param.description
result = re.findall(r'RGB|YCbCr 4:2:2|YCbCr 4:4:4|YCbCr 4:2:0|Simple 4:2:2|ITU-601|ITU-709|\d+|VESA|CTA',
@@ -203,7 +203,7 @@ def parse_video_mode_20(parameters_list: List[TSI_OPF_PARAMETER], pattern_reques
pattern_name, enable_dsc
def parse_opf_21(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_opf_21(parameters_list: List[ci.TSI_OPF_PARAMETER]):
audio_pattern = ''
ch_count = 0
sample_freq = 0
@@ -230,7 +230,7 @@ def parse_opf_21(parameters_list: List[TSI_OPF_PARAMETER]):
ch_info if len(ch_info) > 0 else None)
def parse_video_mode_103(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_103(parameters_list: List[ci.TSI_OPF_PARAMETER]):
width = 0
height = 0
res_frate = 60000
@@ -268,7 +268,26 @@ def parse_video_mode_103(parameters_list: List[TSI_OPF_PARAMETER]):
int(h_slice_number), int(buffer_bit_depth), int(v_slice_number), int(dsc_v_major), int(dsc_v_minor)
def parse_video_mode_120(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_audio_mode_108(parameters_list: List[ci.TSI_OPF_PARAMETER]):
audio_pattern = ''
ch_count = 0
sample_rate = 0
sample_size = 0
for ind, param in enumerate(parameters_list):
if param.name == 'Audio test pattern':
audio_pattern = param.description
elif param.name == 'Sample rate':
sample_rate, = re.findall(r'\d+', param.description)
elif param.name == 'Sample size':
sample_size, = re.findall(r'\d+', param.description)
elif param.name == 'Channels count':
ch_count, = re.findall(r'\d+', param.description)
return audio_pattern, int(sample_rate), int(sample_size), int(ch_count)
def parse_video_mode_120(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x = 0
res_y = 0
res_frate = 0
@@ -282,7 +301,7 @@ def parse_video_mode_120(parameters_list: List[TSI_OPF_PARAMETER]):
return int(res_x), int(res_y), int(float(res_frate) * 1000), int(res_bpc), color_format
def parse_video_mode_140(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_140(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x = 0
res_y = 0
res_frate = 0
@@ -300,7 +319,7 @@ def parse_video_mode_140(parameters_list: List[TSI_OPF_PARAMETER]):
return int(res_x), int(res_y), int(float(res_frate) * 1000), tim_std, tim_std_num
def parse_video_mode_141(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_141(parameters_list: List[ci.TSI_OPF_PARAMETER]):
audio_format = ''
channels = 0
size = 0
@@ -313,7 +332,7 @@ def parse_video_mode_141(parameters_list: List[TSI_OPF_PARAMETER]):
return audio_format, int(channels), int(size), int(float(rate) * 1000)
def parse_video_mode_143(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_143(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_frate = 0
for param in parameters_list:
@@ -323,5 +342,23 @@ def parse_video_mode_143(parameters_list: List[TSI_OPF_PARAMETER]):
return [int(float(res_frate))]
def parse_video_mode_144(parameters_list: List[TSI_OPF_PARAMETER]):
def parse_video_mode_144(parameters_list: List[ci.TSI_OPF_PARAMETER]):
return [parameters_list[0].description]
def parse_video_mode_146(parameters_list: List[ci.TSI_OPF_PARAMETER]):
res_x = 0
res_y = 0
rate = 0
for param in parameters_list:
if param.name == "Resolution":
res_x, res_y = re.findall(r'\d+', param.description)
if param.name == 'Refresh rate':
rate = re.findall(r'\d+', param.description)[0]
return int(res_x), int(res_y), int(float(rate) * 1000)
def parse_video_mode_147(parameters_list: List[ci.TSI_OPF_PARAMETER]):
refresh_rate = 0
for param in parameters_list:
if param.name == 'Refresh rate':
refresh_rate = re.findall(r'\d+', param.description)[0]
return int(refresh_rate)