当前位置: 首页 > news >正文

QUICK 调试camera-xml解析

本文主要介绍如何在QUICK QCS6490使能相机模组。QCS6490的相机基于CameraX的框架,只需通过配置XML文件,设置相机模组的相关参数,就可以点亮相机。本文主要介绍Camera Sensor Module XML和Camera Sensor XML配置的解析,这中间需要camera的datasheet,查看对应的一些规格和参数。

Camera Sensor Module XML解析:

如下是调试imx219的module XML

      <cameraId>0</cameraId>  // cameraId与slot id一致,或者说与dts中的cell-index一致

      <moduleName>sunny</moduleName> //模组厂商名字

      <sensorName>imx219</sensorName>  //sensor名称

      <eepromName></eepromName>  //eeprom名称

      <actuatorName></actuatorName> //马达名称

      <flashName>pmic</flashName>  //flash名称

      <chromatixName>default_c7project</chromatixName> //bin文件名称

      <position>REAR</position> //模组位置,如前摄后摄

      <CSIInfo description="CSI Information"> //CSI 信息,如lane分配,combo模式等

          <laneAssign>0x10</laneAssign>

          <isComboMode>0</isComboMode>

      </CSIInfo>

      <lensInfo description="Lens Information">  //镜头的参数设置

        <focalLength>4.28</focalLength> //焦距

        <fNumber>1.79</fNumber> //光圈

        <minFocusDistance>0.08</minFocusDistance> //最小焦距

        <maxFocusDistance>2.0</maxFocusDistance> //最大焦距

        <horizontalViewAngle>66.3</horizontalViewAngle> //水平视角

        <verticalViewAngle>52.4</verticalViewAngle> //垂直视角

        <maxRollDegree>360</maxRollDegree> //翻滚角

        <maxPitchDegree>360</maxPitchDegree> //俯仰角

        <maxYawDegree>360</maxYawDegree> //偏航角

参数名称

说明

cameraId

0

cameraIdslot id一致,或者说与dts中的cell-index一致

moduleName

sunny

模组厂商名字

sensorName

imx219

sensor名称

eepromName

eeprom名称

actuatorName

马达名称

flashName

pmic

flash名称

chromatixName

default_c7project

bin文件名称

position

REAR

模组位置,如前摄后摄

CSIInfo

CSI 信息,如lane分配,combo模式等

- laneAssign

0x10

lane分配

- isComboMode

0

是否为combo模式,0表示否

lensInfo

镜头的参数设置

- focalLength

4.28

焦距

- fNumber

1.79

光圈

- minFocusDistance

0.08

最小焦距

- maxFocusDistance

2.0

最大焦距

- horizontalViewAngle

66.3

水平视角

- verticalViewAngle

52.4

垂直视角

- maxRollDegree

360

翻滚角

- maxPitchDegree

360

俯仰角

- maxYawDegree

360

偏航角

Camera Sensor XML解析

以下是从设备配置,包含型号,I2C,sensorID,上下电时序

<slaveInfo>

    <sensorName>imx219</sensorName> //sensor型号

    <slaveAddress>0x20</slaveAddress> //i2c地址

<regAddrType range="[1,4]">2</regAddrType> //地址类型

1 = Byte address 2 = Word address 3 = 3 byte address 4 = Address type max

<regDataType range="[1,4]">2</regDataType>//地址数据

1 = Byte data 2 = Word data 3 = Double word data 4 = Data type max

    <sensorIdRegAddr>0x0000</sensorIdRegAddr>  // sensor id 寄存器地址

    <sensorId>0x0219</sensorId> // sensor id

    <sensorIdMask>0xFFFFFFFF</sensorIdMask> //sensor id的掩码,如:0xFFFFFFFF    <i2cFrequencyMode>FAST</i2cFrequencyMode> //I2C的操作模式,FAST

    <powerUpSequence> //上电时序

      <powerSetting> //电源配置

        <configType>RESET</configType> //电源配置属性,如RESET,MCLK,VANA,VDIG等

        <configValue>0</configValue> //电源配置数值

        <delayMs>1</delayMs>    //延时

      </powerSetting>

      <powerSetting>

        <configType>RESET</configType>

        <configValue>1</configValue>

        <delayMs>500</delayMs>

      </powerSetting>

    </powerUpSequence>

    <powerDownSequence> //下电时序

      <powerSetting>

        <configType>RESET</configType>

        <configValue>0</configValue>

        <delayMs>1</delayMs>

      </powerSetting>

    </powerDownSequence>

  </slaveInfo>

寄存器信息节点包含各种传感器特征的配置寄存器地址,如

<regAddrInfo>

    <xOutput>0x016C</xOutput> //sensor x寄存器

    <yOutput>0x016E</yOutput>//sensor y寄存器

    <frameLengthLines>0x0160</frameLengthLines> //height + VBlank寄存器

    <lineLengthPixelClock>0x0162</lineLengthPixelClock>// width + HBlank寄存器

    <coarseIntgTimeAddr>0x015A</coarseIntgTimeAddr>  //sensor 曝光寄存器

    <shortCoarseIntgTimeAddr>0x015A</shortCoarseIntgTimeAddr>// sensor 短曝光寄存器

    <globalGainAddr>0x0157</globalGainAddr> // gain寄存器

    <shortGlobalGainAddr>0x0157</shortGlobalGainAddr>//短gain寄存器

    <digitalGlobalGainAddr>0x0158</digitalGlobalGainAddr> //数字gain寄存器

    <testPatternRAddr>0x0602</testPatternRAddr> // R通道测试寄存器

    <testPatternGRAddr>0x0604</testPatternGRAddr>// G通道测试寄存器

    <testPatternBAddr>0x0608</testPatternBAddr> // B通道测试寄存器

    <testPatternGBAddr>0x0606</testPatternGBAddr> // Gb通道测试寄存器

  </regAddrInfo>

参数名称

说明

sensorName

imx219

sensor型号

slaveAddress

0x20

i2c地址

regAddrType

2

地址类型

1 = Byte address

2 = Word address

3 = 3 byte address

4 = Address type max

regDataType

2

地址数据

1 = Byte data

2 = Word data

3 = Double word data

4 = Data type max

sensorIdRegAddr

0x0000

sensor id 寄存器地址

sensorId

0x0219

sensor id

sensorIdMask

0xFFFFFFFF

sensor id的掩码

i2cFrequencyMode

FAST

I2C的操作模式

powerUpSequence

上电时序

- powerSetting

电源配置

- configType

RESET

电源配置属性

- configValue

0

电源配置数值

- delayMs

1

延时

- powerSetting

- configType

RESET

- configValue

1

- delayMs

500

powerDownSequence

下电时序

- powerSetting

电源配置

- configType

RESET

电源配置属性

- configValue

0

电源配置数值

- delayMs

1

延时

从sensor的datasheet中可以找到以下对应的寄存器

以下为分辨率设置的一些参数,可以设置为多种配置,下面为HD 30fps配置

<resolutionData>

      <colorFilterArrangement>BAYER_RGGB</colorFilterArrangement> //色彩滤波阵列

      <streamInfo>

        <streamConfiguration> //stream配置

          <vc range="[0,3]">0</vc> //虚拟通道

          <dt>0X2b</dt> //数据类型 默认为0x2B (10 bit RAW)

          <frameDimension> //指定框架尺寸

            <xStart>681</xStart> //x坐标

            <yStart>693</yStart> //y 坐标

            <width>1920</width> //宽

            <height>1080</height> //高

          </frameDimension>

          <bitWidth>10</bitWidth> //位宽

          <type>IMAGE</type>  //数据类型

        </streamConfiguration>

      </streamInfo>

      <lineLengthPixelClock>2599</lineLengthPixelClock> //指定帧的像素时钟width + HBlank

      <frameLengthLines>1771</frameLengthLines> //帧长height + VBlank

      <minHorizontalBlanking>0</minHorizontalBlanking> //像素的最小水平间隔

      <minVerticalBlanking>0</minVerticalBlanking> //像素的最小垂直间隔

      <outputPixelClock>182400000</outputPixelClock> //输出像素clock

      <horizontalBinning>1</horizontalBinning>  //水平合并值

      <verticalBinning>1</verticalBinning> //垂直合并值

      <frameRate>30.01</frameRate> //帧率

      <laneCount>2</laneCount> //lane 数量

      <downScaleFactor>1.0</downScaleFactor> //缩小系数,理论上设置为1或者更大

      <settleTimeNs>14</settleTimeNs> //稳定时间,camera与板子传输时间,接收端能稳定接收数据

      <is3Phase>0</is3Phase> //1为CPHY, 0为DPHY

参数名称

说明

colorFilterArrangement

BAYER_RGGB

色彩滤波阵列

streamInfo

- streamConfiguration

stream配置

- vc

0

虚拟通道

- dt

0X2b

数据类型,默认为0x2B (10 bit RAW)

- frameDimension

指定框架尺寸

- xStart

681

x坐标

- yStart

693

y坐标

- width

1920

- height

1080

- bitWidth

10

位宽

- type

IMAGE

数据类型

lineLengthPixelClock

2599

指定帧的像素时钟 (width + HBlank)

frameLengthLines

1771

帧长 (height + VBlank)

minHorizontalBlanking

0

像素的最小水平间隔

minVerticalBlanking

0

像素的最小垂直间隔

outputPixelClock

182400000

输出像素时钟

horizontalBinning

1

水平合并值

verticalBinning

1

垂直合并值

frameRate

30.01

帧率

laneCount

2

lane数量

downScaleFactor

1.0

缩小系数,理论上设置为1或者更大

settleTimeNs

14

稳定时间,camera与板子传输时间,接收端能稳定接收数据

is3Phase

0

1CPHY, 0DPHY

以下是按照上述分辨率的参数,如下寄存器配置:

如下是设置寄存器前,需要设置如下权限,才能访问其他寄存器

<resSettings>

      <regSetting>

        <registerAddr>0x30EB</registerAddr> //sensor寄存器地址

        <registerData>0x05</registerData>   //sensor寄存器值

        <regAddrType range="[1,4]">2</regAddrType> //地址类型

        <regDataType range="[1,4]">1</regDataType> //数据类型

        <operation>WRITE</operation>  //读写操作

        <delayUs>0x00</delayUs> //延时

      </regSetting>

      <regSetting>

        <registerAddr>0x30EB</registerAddr>

        <registerData>0x0C</registerData>

        <regAddrType range="[1,4]">2</regAddrType>

        <regDataType range="[1,4]">1</regDataType>

        <operation>WRITE</operation>

        <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

        <registerAddr>0x300A</registerAddr>

        <registerData>0xFF</registerData>

        <regAddrType range="[1,4]">2</regAddrType>

        <regDataType range="[1,4]">1</regDataType>

        <operation>WRITE</operation>

        <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

        <registerAddr>0x300B</registerAddr>

        <registerData>0xFF</registerData>

        <regAddrType range="[1,4]">2</regAddrType>

        <regDataType range="[1,4]">1</regDataType>

        <operation>WRITE</operation>

        <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

        <registerAddr>0x30EB</registerAddr>

        <registerData>0x05</registerData>

        <regAddrType range="[1,4]">2</regAddrType>

        <regDataType range="[1,4]">1</regDataType>

        <operation>WRITE</operation>

        <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

        <registerAddr>0x30EB</registerAddr>

        <registerData>0x09</registerData>

        <regAddrType range="[1,4]">2</regAddrType>

        <regDataType range="[1,4]">1</regDataType>

        <operation>WRITE</operation>

        <delayUs>0x00</delayUs>

      </regSetting>

sensor寄存器值

Register Data

地址类型

数据类型

读写操作

延时(us)

0x30EB

0x05

2

1

WRITE

0x00

0x30EB

0x0C

2

1

WRITE

0x00

0x300A

0xFF

2

1

WRITE

0x00

0x300B

0xFF

2

1

WRITE

0x00

0x30EB

0x05

2

1

WRITE

0x00

0x30EB

0x09

2

1

WRITE

0x00

可以从datasheet上找到对应的信息,要操作0x3000-0x5FFF的寄存器,需要先设置如下寄存器

后续就开始设置对应寄存器参数,如:

      <regSetting>

          <registerAddr>0x0114</registerAddr> <!-- D-Phy, 2-lanes -->

          <registerData>0x01</registerData>

          <regAddrType range="[1,4]">2</regAddrType>

          <regDataType range="[1,4]">1</regDataType>

          <operation>WRITE</operation>

          <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

          <registerAddr>0x0128</registerAddr>

          <registerData>0x00</registerData>

          <regAddrType range="[1,4]">2</regAddrType>

          <regDataType range="[1,4]">1</regDataType>

          <operation>WRITE</operation>

          <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

          <registerAddr>0x012A</registerAddr>  <!-- 24 MHz INCK  -->

          <registerData>0x18</registerData>

          <regAddrType range="[1,4]">2</regAddrType>

          <regDataType range="[1,4]">1</regDataType>

          <operation>WRITE</operation>

          <delayUs>0x00</delayUs>

      </regSetting>

      <regSetting>

          <registerAddr>0x012B</registerAddr>

          <registerData>0x00</registerData>

          <regAddrType range="[1,4]">2</regAddrType>

          <regDataType range="[1,4]">1</regDataType>

          <operation>WRITE</operation>

          <delayUs>0x00</delayUs>

      </regSetting>

Register Address

Register Data

Address Type

Data Type

Operation

Delay (us)

0x0114

0x01

2

1

WRITE

0x00

0x0128

0x00

2

1

WRITE

0x00

0x012A

0x18

2

1

WRITE

0x00

0x012B

0x00

2

1

WRITE

0x00

以下为datasheet里面的寄存器列表:

以上就是camera xml参数的一个解析,如需要集成或者调试其他camera sensor,可以参照如上配置去参照datasheet调试camera。

作者:

戴忠忠(Zhongzhong Dai),高通工程师

相关文章:

QUICK 调试camera-xml解析

本文主要介绍如何在QUICK QCS6490使能相机模组。QCS6490的相机基于CameraX的框架&#xff0c;只需通过配置XML文件&#xff0c;设置相机模组的相关参数&#xff0c;就可以点亮相机。本文主要介绍Camera Sensor Module XML和Camera Sensor XML配置的解析&#xff0c;这中间需要c…...

【linux】shell脚本编写基础

shell 脚本关键字&#xff1a; 1、变量定义:前后不能空格 输入&#xff1a; zhao"Joe" echo ${zhao} echo "I am ${zhao}" 输出&#xff1a; yuxin I am Joe2、echo 输出 输入&#xff1a; echo "123" 输出&#xff1a; 1233、readonly 定义变…...

STM32 外设简介

STM32 外设简介 STM32 是由意法半导体 (STMicroelectronics) 开发的一系列基于 ARM Cortex 内核的微控制器&#xff0c;广泛应用于嵌入式系统中。STM32 系列的一个重要特点是其丰富而强大的外设模块&#xff0c;支持多种接口和功能&#xff0c;能满足工业控制、物联网、消费电…...

Django-Vue3-Admin - 现代化的前后端分离权限管理系统

项目介绍 Django-Vue3-Admin是一个基于RBAC&#xff08;Role-Based Access Control&#xff09;模型的综合性基础开发平台&#xff0c;专注于权限控制&#xff0c;支持列级别的细粒度权限管理。该项目采用前后端分离架构&#xff0c;技术栈包括: 后端: Django Django REST …...

Cesium K-means自动聚合点的原理

Cesium K-means自动聚合点的原理 Cesium 是一个开源的 JavaScript 库&#xff0c;用于在 Web 环境中创建 3D 地球和地图应用。它能够处理地理空间数据&#xff0c;并允许开发者对大规模的地理数据进行可视化展示。在一些应用中&#xff0c;尤其是当处理大量地理坐标点时&#…...

Vue 项目中如何解决组件之间的循环依赖

前言 在大型 Vue 项目中&#xff0c;组件之间的关系可能会变得非常复杂&#xff0c;甚至会出现循环依赖的问题。循环依赖是指两个或多个模块互相依赖&#xff0c;形成一个闭环。这类问题会导致项目无法正常编译或运行&#xff0c;甚至可能引发意想不到的错误。本文将通过通俗易…...

交通流量预测:基于交通流量数据建立模型

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

Hot100 - 搜索二维矩阵II

Hot100 - 搜索二维矩阵II 最佳思路&#xff1a; 利用矩阵的特性&#xff0c;针对搜索操作可以从右上角或者左下角开始。通过判断当前位置的元素与目标值的关系&#xff0c;逐步缩小搜索范围&#xff0c;从而达到较高的效率。 从右上角开始&#xff1a;假设矩阵是升序排列的&a…...

uart_pl011.c驱动API的zephyr测试

API概述 本次测试针对uart的uart_poll_in和uart_poll_outAPI进行测试&#xff0c; uart_poll_in static int pl011_poll_in(const struct device *dev, unsigned char *c)这是一个轮询方式的接收函数&#xff1a; 功能&#xff1a;检查 UART 是否有新数据到达&#xff0c;如…...

RPA:电商订单处理自动化

哈喽&#xff0c;大家好&#xff0c;我是若木&#xff0c;最近闲暇时间较多&#xff0c;于是便跟着教程做了一个及RPA&#xff0c;谈到这个&#xff0c;可能很多人并不是很了解&#xff0c;但是实际上&#xff0c;这玩意却遍布文末生活的边边角角。话不多说&#xff0c;我直接上…...

小程序 - 个人简历

为了让招聘人员快速地认识自己&#xff0c;可以做一个“个人简历”微信小程序&#xff0c; 展示自己的个人信息。 下面将对“个人简历”微信小程序进行详细讲解。 目录 个人简历 创建图片目录 页面开发 index.wxml index.wxss 功能实现截图 总结 个人简历 创建图片目录…...

MySQL自启动失败(MySQL不能开机自启)解决方案_MySQL开机自启疑难杂症解决,适用Win11/Win10

问题描述&#xff08;MySQL 开机自启失败&#xff09; 本文解决方法&#xff0c;在 windows10 、 windows11 系统中均可使用。 win11 安装 MySQL 后&#xff0c;不能开机自启。 在服务中&#xff0c;手动启动服务后&#xff0c;可正常使用&#xff0c;一点异常都没有。 或者…...

储存水..

问题描述: 给定m个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子下雨之后能储存多少水. 思路解析: 思考一下,什么样的位置能盛水?只有在当前柱子的左边和右边都比它高的情况下才能储存住水,而储水量和左侧最高柱及右侧最高柱有关.具体来说就是和左右两侧最矮的…...

Cmake 常用操作总结

CMakeLists.txt结构 总结该文件的主要结构 cmake_minimum_required(VERSION <version>) 指定CMake的最低版本&#xff0c;一般都是根据项目需要设定 cmake_minimum_required(VERSION 3.10) project(<name>) 定义项目的名称&#xff0c;放在CMake的开头 project(…...

Kylin Server V10 下 RocketMQ 主备自动切换模式部署

一、NameServer简介 NameServer 是一个注册中心,提供服务注册和服务发现的功能。NameServer 可以集群部署,集群中每个节点都是对等的关系,节点之间互不通信。 服务注册 Broker 启动的时候会向所有的 NameServer 节点进行注册,注意这里是向集群中所有的 NameServer 节点注册…...

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中&#xff0c;DevOps&#xff08;开发运维一体化&#xff09;已经成为提升软件交付效率和质量的关键。而GitLab&#xff0c;作为一个全面的开源DevOps平台&#xff0c;不仅提供了强大的版本控制功能&#xff0c;还集成了持续集成/持续交付(CI/CD)…...

Vue 3 中实现页面特定功能控制

在开发 Vue 应用时&#xff0c;我们经常会遇到需要在特定页面启用或禁用某些功能的情况。本文将以 A父.vue 页面为例&#xff0c;探讨如何在点击汇总菜单时仅在该页面生效&#xff0c;而在其他页面不生效的问题。 1. 利用 Vue 3 的 provide 和 inject 实现状态传递 Vue 3 提供…...

VLC 播放的音视频数据处理流水线搭建

VLC 用 input_thread_t 对象直接或间接管理音视频播放有关的各种资源,包括 Access,Demux,Decode,Output,Filter 等,这个类型定义 (位于 vlc-3.0.16/include/vlc_input.h) 如下: struct input_thread_t {VLC_COMMON_MEMBERS };input_thread_t 是个抽象类型,VLC 中这个类…...

何时在 SQL 中使用 CHAR、VARCHAR 和 VARCHAR(MAX)

在管理数据库表时&#xff0c;考虑 CHAR、VARCHAR 和 VARCHAR(MAX) 是必不可少的。此外&#xff0c;使用正确的工具&#xff08;例如dbForge Studio for SQL Server&#xff09; &#xff0c;与数据库相关的任务都会变得更加容易。它是针对 SQL Server 专业人员的强大的一体化解…...

学习笔记043——HashMap源码学习1

文章目录 1、HashMap2、Hashtable3、TreeMap4、HashMap 底层结构4.1、什么是红黑树&#xff1f; 1、HashMap HashMap key 是不能重复的&#xff0c;value 可以重复 底层结构 key-value 进行存储&#xff0c;key-value 存入到 Set 中&#xff0c;再将 Set 装载到 HashMap pack…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...