前面有一篇文章 “该如何丝滑的把FAE给的一串Camera寄存器,转换成CamX的驱动代码”, 是介绍了通过写代码的方式进行转换,今天的文章内容,是采用python脚本和bat脚本的方式,需要用到的同学可以进行收藏。
示例:输入内容:
0x0103,0x01,
0x36e9,0x80,
0x37f9,0x80,
输出内容:
<regSettings>
<regSetting>
<registerAddr>0x0103</registerAddr>
<registerData>0x01</registerData>
<regAddrType range="[1,4]">2</regAddrType>
<regDataType range="[1,4]">1</regDataType>
<operation>WRITE</operation>
<delayUs>0x00</delayUs>
</regSetting>
<regSetting>
<registerAddr>0x36e9</registerAddr>
<registerData>0x80</registerData>
<regAddrType range="[1,4]">2</regAddrType>
<regDataType range="[1,4]">1</regDataType>
<operation>WRITE</operation>
<delayUs>0x00</delayUs>
</regSetting>
<regSetting>
<registerAddr>0x37f9</registerAddr>
<registerData>0x80</registerData>
<regAddrType range="[1,4]">2</regAddrType>
<regDataType range="[1,4]">1</regDataType>
<operation>WRITE</operation>
<delayUs>0x00</delayUs>
</regSetting>
</regSettings>
一、python脚本:
def generate_xml(register_string):
# 将输入字符串分割为地址和数据
register_addr, register_data = register_string.split(',')
# 创建 XML 格式的字符串
xml_output = f"""
<regSetting>
<registerAddr>{register_addr}</registerAddr>
<registerData>{register_data}</registerData>
<regAddrType range="[1,4]">2</regAddrType>
<regDataType range="[1,4]">1</regDataType>
<operation>WRITE</operation>
<delayUs>0x00</delayUs>
</regSetting>
"""
return xml_output.strip()
# 示例输入字符串数组
input_strings = [
"0x0103,0x01",
"0x36e9,0x80",
"0x37f9,0x80",
"0x301f,0x02",
"0x30b8,0x44",
"0x320c,0x08",
"0x320d,0x34",
"0x320e,0x08",
"0x320f,0xca",
"0x3301,0x0a"
]
# 遍历输入字符串数组并生成 XML 输出
for input_string in input_strings:
output_xml = generate_xml(input_string)
print(output_xml)
print() # 输出之间添加空行以便于阅读
二、window下可执行的bat脚本(generate_xml.bat)。
@echo off
setlocal enabledelayedexpansion
rem 输出 XML 文件
set outputFile=output.xml
> %outputFile% (
echo ^<regSettings^>
)
rem 读取输入文件
for /f "tokens=1,2 delims=," %%a in (input.txt) do (
set registerAddr=%%a
set registerData=%%b
echo ^<regSetting^> >> %outputFile%
echo ^<registerAddr^>!registerAddr!^</registerAddr^> >> %outputFile%
echo ^<registerData^>!registerData!^</registerData^> >> %outputFile%
echo ^<regAddrType range="[1,4]"^>2^</regAddrType^> >> %outputFile%
echo ^<regDataType range="[1,4]"^>1^</regDataType^> >> %outputFile%
echo ^<operation^>WRITE^</operation^> >> %outputFile%
echo ^<delayUs^>0x00^</delayUs^> >> %outputFile%
echo ^</regSetting^> >> %outputFile%
)
>> %outputFile% echo ^</regSettings^>
echo XML 文件已生成:%outputFile%
@pause
使用:
双击 generate_xml.bat 文件,或在命令提示符中运行它。它将读取 input.txt 文件中的数据,并生成 output.xml 文件
确保 input.txt 文件与 generate_xml.bat 文件在同一目录下,或者在脚本中指定完整路径。
生成的 XML 文件将保存在同一目录下,命名为 output.xml。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有