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 | cameraId与slot 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 | 1为CPHY, 0为DPHY |
以下是按照上述分辨率的参数,如下寄存器配置:
如下是设置寄存器前,需要设置如下权限,才能访问其他寄存器
<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的框架,只需通过配置XML文件,设置相机模组的相关参数,就可以点亮相机。本文主要介绍Camera Sensor Module XML和Camera Sensor XML配置的解析,这中间需要c…...
【linux】shell脚本编写基础
shell 脚本关键字: 1、变量定义:前后不能空格 输入: zhao"Joe" echo ${zhao} echo "I am ${zhao}" 输出: yuxin I am Joe2、echo 输出 输入: echo "123" 输出: 1233、readonly 定义变…...
STM32 外设简介
STM32 外设简介 STM32 是由意法半导体 (STMicroelectronics) 开发的一系列基于 ARM Cortex 内核的微控制器,广泛应用于嵌入式系统中。STM32 系列的一个重要特点是其丰富而强大的外设模块,支持多种接口和功能,能满足工业控制、物联网、消费电…...
Django-Vue3-Admin - 现代化的前后端分离权限管理系统
项目介绍 Django-Vue3-Admin是一个基于RBAC(Role-Based Access Control)模型的综合性基础开发平台,专注于权限控制,支持列级别的细粒度权限管理。该项目采用前后端分离架构,技术栈包括: 后端: Django Django REST …...
Cesium K-means自动聚合点的原理
Cesium K-means自动聚合点的原理 Cesium 是一个开源的 JavaScript 库,用于在 Web 环境中创建 3D 地球和地图应用。它能够处理地理空间数据,并允许开发者对大规模的地理数据进行可视化展示。在一些应用中,尤其是当处理大量地理坐标点时&#…...
Vue 项目中如何解决组件之间的循环依赖
前言 在大型 Vue 项目中,组件之间的关系可能会变得非常复杂,甚至会出现循环依赖的问题。循环依赖是指两个或多个模块互相依赖,形成一个闭环。这类问题会导致项目无法正常编译或运行,甚至可能引发意想不到的错误。本文将通过通俗易…...
交通流量预测:基于交通流量数据建立模型
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
Hot100 - 搜索二维矩阵II
Hot100 - 搜索二维矩阵II 最佳思路: 利用矩阵的特性,针对搜索操作可以从右上角或者左下角开始。通过判断当前位置的元素与目标值的关系,逐步缩小搜索范围,从而达到较高的效率。 从右上角开始:假设矩阵是升序排列的&a…...
uart_pl011.c驱动API的zephyr测试
API概述 本次测试针对uart的uart_poll_in和uart_poll_outAPI进行测试, uart_poll_in static int pl011_poll_in(const struct device *dev, unsigned char *c)这是一个轮询方式的接收函数: 功能:检查 UART 是否有新数据到达,如…...
RPA:电商订单处理自动化
哈喽,大家好,我是若木,最近闲暇时间较多,于是便跟着教程做了一个及RPA,谈到这个,可能很多人并不是很了解,但是实际上,这玩意却遍布文末生活的边边角角。话不多说,我直接上…...
小程序 - 个人简历
为了让招聘人员快速地认识自己,可以做一个“个人简历”微信小程序, 展示自己的个人信息。 下面将对“个人简历”微信小程序进行详细讲解。 目录 个人简历 创建图片目录 页面开发 index.wxml index.wxss 功能实现截图 总结 个人简历 创建图片目录…...
MySQL自启动失败(MySQL不能开机自启)解决方案_MySQL开机自启疑难杂症解决,适用Win11/Win10
问题描述(MySQL 开机自启失败) 本文解决方法,在 windows10 、 windows11 系统中均可使用。 win11 安装 MySQL 后,不能开机自启。 在服务中,手动启动服务后,可正常使用,一点异常都没有。 或者…...
储存水..
问题描述: 给定m个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子下雨之后能储存多少水. 思路解析: 思考一下,什么样的位置能盛水?只有在当前柱子的左边和右边都比它高的情况下才能储存住水,而储水量和左侧最高柱及右侧最高柱有关.具体来说就是和左右两侧最矮的…...
Cmake 常用操作总结
CMakeLists.txt结构 总结该文件的主要结构 cmake_minimum_required(VERSION <version>) 指定CMake的最低版本,一般都是根据项目需要设定 cmake_minimum_required(VERSION 3.10) project(<name>) 定义项目的名称,放在CMake的开头 project(…...
Kylin Server V10 下 RocketMQ 主备自动切换模式部署
一、NameServer简介 NameServer 是一个注册中心,提供服务注册和服务发现的功能。NameServer 可以集群部署,集群中每个节点都是对等的关系,节点之间互不通信。 服务注册 Broker 启动的时候会向所有的 NameServer 节点进行注册,注意这里是向集群中所有的 NameServer 节点注册…...
DevOps工程技术价值流:GitLab源码管理与提交流水线实践
在当今快速迭代的软件开发环境中,DevOps(开发运维一体化)已经成为提升软件交付效率和质量的关键。而GitLab,作为一个全面的开源DevOps平台,不仅提供了强大的版本控制功能,还集成了持续集成/持续交付(CI/CD)…...
Vue 3 中实现页面特定功能控制
在开发 Vue 应用时,我们经常会遇到需要在特定页面启用或禁用某些功能的情况。本文将以 A父.vue 页面为例,探讨如何在点击汇总菜单时仅在该页面生效,而在其他页面不生效的问题。 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)
在管理数据库表时,考虑 CHAR、VARCHAR 和 VARCHAR(MAX) 是必不可少的。此外,使用正确的工具(例如dbForge Studio for SQL Server) ,与数据库相关的任务都会变得更加容易。它是针对 SQL Server 专业人员的强大的一体化解…...
学习笔记043——HashMap源码学习1
文章目录 1、HashMap2、Hashtable3、TreeMap4、HashMap 底层结构4.1、什么是红黑树? 1、HashMap HashMap key 是不能重复的,value 可以重复 底层结构 key-value 进行存储,key-value 存入到 Set 中,再将 Set 装载到 HashMap pack…...
单点登录原理
允许跨域–>单点登录。 例如https://www.jd.com/ 同一个浏览器下:通过登录页面产生的cookie里的一个随机字符串的标识,在其他子域名下访问共享cookie获取标识进行单点登录,如果没有该标识则返回登录页进行登录。 在hosts文件下面做的域名…...
【随笔】AI大模型对软件开发的影响
随着 AI 技术的不断发展,AI大模型正在重塑软件开发流程,从代码自动生成到智能测试,未来,AI 大模型将会对软件开发者、企业,以及整个产业链都产生深远的影响。欢迎探讨 AI 是如何重塑软件开发的各个环节以及带来的新的流…...
JAVA中接口类和抽象类的区别
在Java中,接口(Interface)和抽象类(Abstract Class)都是实现抽象概念的方式,但它们之间存在一些关键的区别: 1. 定义和声明 抽象类: 使用abstract关键字声明。可以包含构造方法、成…...
【AI系统】昇腾 AI 架构介绍
昇腾 AI 架构介绍 昇腾计算的基础软硬件是产业的核⼼,也是 AI 计算能⼒的来源。华为,作为昇腾计算产业⽣态的⼀员,是基础软硬件系统的核⼼贡献者。昇腾计算软硬件包括硬件系统、基础软件和应⽤使能等。 而本书介绍的 AI 系统整体架构&#…...
uniapp input只输入一个字符就自动失去焦点
下面一段代码在每次输入后自动失去焦点,这是因为绑定的:key是动态的,输入改变后都需要重新刷新渲染,这是造成input只能输入一次就自动失去焦点的原因。 <view class"" v-for"(item, index) in phoneList" :key"…...
定时/延时任务-ScheduledThreadPoolExecutor的使用
文章目录 1. 概要2. 固定速率和固定延时2.1 固定速率2.2 固定延时 3. API 解释3.1 schedule3.2 固定延时 - scheduleWithFixedDelay3.2 固定速率 - scheduleWithFixedDelay 4. 小结 1. 概要 前三篇文章的地址: 定时/延时任务-自己实现一个简单的定时器定时/延时任…...
自编码器(一)
其实自编码器也可以算是自监督学习的一环,因 此我们可以再简单回顾一下自监督学习的框架。如图1.1所示,首先你有大量的没有标注的 数据,用这些没有标注的数据,你可以去训练一个模型,你必须设计一些不需要标注数据的 任…...
Spring Cloud(Kilburn 2022.0.2版本)系列教程(五) 服务网关(SpringCloud Gateway)
Spring Cloud(Kilburn 2022.0.2版本)系列教程(五) 服务网关(SpringCloud Gateway) 一、服务网关 1.1 什么是网关 在微服务架构中,服务网关是一个至关重要的组件。它作为系统的入口,负责接收客户端的请求,并将这些请求路由到相应的后端服务…...
40分钟学 Go 语言高并发:Go程序性能优化方法论
Go程序性能优化方法论 一、性能指标概述 指标类型关键指标重要程度优化目标CPU相关CPU使用率、线程数、上下文切换⭐⭐⭐⭐⭐降低CPU使用率,减少上下文切换内存相关内存使用量、GC频率、对象分配⭐⭐⭐⭐⭐减少内存分配,优化GC延迟指标响应时间、处理延…...
一文解析Kettle开源ETL工具!
ETL(Extract, Transform, Load)工具是用于数据抽取、转换和加载的软件工具,用于支持数据仓库和数据集成过程。Kettle作为传统的ETL工具备受用户推崇。本文就来详细说下Kettle。 一、Kettle是什么? Kettle 是一款开源的 ETL&#x…...
怎么知道公司网站是哪个公司做的/软文营销案例200字
1、math/rand 随机数从资源生成。包水平的函数都使用的默认的公共资源。 该资源会在程序每次运行时都产生确定的序列。如果需要每次运行产生不同的序列,应使用Seed函数进行初始化。默认资源可以安全的用于多go程并发。 关于种子seed 程序启动的时候,种…...
南昌做网站多少钱/西安网站建设推广优化
1. 编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积. 实现思路及关键代码:1) 编写一个圆类Circle,该类拥有:a) 一个成员变量,radius(私有,浮点型);//存放圆的半径b) 两个构造方法(无参、有参…...
网站优化流程图/百度推广开户多少钱
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。 今天给大侠带来“FPGA学习系列altera"系列…...
网站信息备案变更 哪里做/推广员是做什么的
ubuntu 10.10下面添加samba实现和windows共享文件 整个过程其实算是很简单了,大体步骤,请参考这里即可:samba实现ubuntu跟windows文件共享 http://spiritfrog.iteye.com/blog/216768看完后,也知道,只是去安装一下samba…...
电子配件 技术支持 东莞网站建设/关键词名词解释
题库来源:安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试内容是由公众号安全生产模拟考试一点通提供,危险化学品经营单位安全管理人员证模拟考试题库是根据危险化学品经营单位安全管理人员最新版教材汇编出危险化学品经营单位…...
一款简洁的个人主页源码/澳门seo关键词排名
C explicit关键字可以帮助我们用来进行构造函数的修饰。那么其具体的操作方法是如何进行的呢?在这里将会为大家一一介绍。 AD: C编程语言中有很多比较重要的关键字在实际编程中起着非常重要的作用。我们今天为大家介绍的C explicit关键字就是其中一个应用…...