首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >把FAE给的一串Camera寄存器,转换成CamX的驱动代码 | 脚本处理

把FAE给的一串Camera寄存器,转换成CamX的驱动代码 | 脚本处理

作者头像
小驰行动派
发布2025-01-07 10:44:42
发布2025-01-07 10:44:42
12200
代码可运行
举报
文章被收录于专栏:Android Camera开发Android Camera开发
运行总次数:0
代码可运行

前面有一篇文章 “该如何丝滑的把FAE给的一串Camera寄存器,转换成CamX的驱动代码”, 是介绍了通过写代码的方式进行转换,今天的文章内容,是采用python脚本和bat脚本的方式,需要用到的同学可以进行收藏。

示例:输入内容:

代码语言:javascript
代码运行次数:0
运行
复制
0x0103,0x01,
0x36e9,0x80,
0x37f9,0x80,

输出内容:

代码语言:javascript
代码运行次数:0
运行
复制
<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脚本:

代码语言:javascript
代码运行次数:0
运行
复制
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)。

代码语言:javascript
代码运行次数:0
运行
复制
@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。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小驰行动派 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档