佳能镜头EOS系统EF协议逆向工程(四)常用指令

news2025/1/10 8:02:15

目录

EOS5000(基础协议)

AE*记忆键

物镜38-76焦距76mm的帧值(手动焦距)

帧操作和解码命令

指令0x0A:请求物镜可用

指令0xA0、B0、B2、90和F0:光学特性和AF状态

指令0x80-0A:请求物镜的物理特性

指令0xC2:物镜焦距

回调操作目标定位编码器

物镜手动AF开关

EF 50/1.8 Stm

EF 38-76

38-76和50/1..8 STM帧值比较

PDC键

指令0x12:光圈电机

光圈运动持续时间

自动聚焦扫描(AF)

帧值(提取)

指令0x05、0x06和0x0C:AF移动到极限位置。

0xC0和0xE0指令:AF定位信息

0x90指令:自动对焦状态

指令0x50+参数:设置AF速度

物镜70-200和300/2.8


这篇文章基于此前写过的三篇文章上继续。前三篇文章的链接是:

佳能镜头EOS系统EF协议逆向工程(一)转接环电路设计_佳能ef自动对焦协议_岬淢箫声的博客-CSDN博客本文属于专栏——工业相机。此专栏首先提供我人工翻译的法语文档部分,然后通过STM32F103C8T6控制佳能镜头,最后协同上位机或者NVIDIA Xavier实现自动对焦。还有一个用处不大的River文档,它知道如何让相机和镜头通信,也许对当前的摄影实践几乎没有帮助。尽管如此,一些应用程序可能需要独立订购物镜的主要功能。撇开工业世界及其特殊机器不谈,在另一个品牌的图像采集系统上安装佳能光学元件是不可能的,而且是有罪的,无论是出于经济原因还是纯粹的技术原因,获得的组合提供了其他不可用的功能。https://blog.csdn.net/caoshiying/article/details/127609884?spm=1001.2014.3001.5502

佳能镜头EOS系统EF协议逆向工程(二)逻辑分析仪测试_岬淢箫声的博客-CSDN博客本章描述了用于解密EF协议函数的思想和分析,如果其读数是可选的,则所获得结果的摘要将在专用章节中进行汇编,这仍然是正确理解EF协议函数的必要来源。随着函数的测试和逐步解码,它们的描述和列表中使用的注释将在过程中变得越来越精确,因为以前的分析或推理错误不会被强制纠正。所使用的逻辑分析仪是一个小型号的低成本8输入TTL USBEE AX Pro,所使用的软件是制造商的标准套件,可免费下载。软件不允许编辑或删除部分结果,某些读数或时钟意外激活,因为通电会导致SPI字解码不同步。https://blog.csdn.net/caoshiying/article/details/129057004?spm=1001.2014.3001.5502佳能镜头EOS系统EF协议逆向工程(三)解码算法_岬淢箫声的博客-CSDN博客逻辑分析仪没有特别要求,某宝上的大部分逻辑分析仪可以用。分号开头表示注释,第一列是时间,这个时间是相对开始捕获的时间,用单词elapse表示列标题更合适。这款逻辑分析仪软件导出数据的表头就是这么写的,无所谓了。第二列是CLK信号,CLK是时钟的简写,搞硬件的同学是不是很熟悉呢?第三列是DLC信号。DLC是Data Lens to Camera的首字母缩写。第四列是DCL,DCL是Data Camera to Lens首字母缩写。所有信号用1表示高电平,0表示低电平。佳能相机的电平为3.3V。https://blog.csdn.net/caoshiying/article/details/129057831?spm=1001.2014.3001.5502

EOS5000(基础协议)

AE*记忆键

逻辑分析器软件不允许从记录的数据中删除一部分随机时钟信号转换,这会干扰每个字节值的解码。当然,通过分析手动解码是可能的,但有时会很麻烦和昂贵,因此,在不控制任何执行器的情况下,按MEMO AE键“唤醒”物镜将用于分析整个对话的结构。

镜头和相机之间的对话是一个长序列,在按下按钮的时间内,然后是一系列相同的短帧,持续约4秒。

 

无论变焦的焦距、焦点环的位置或盒子上的光圈(滑动镜头光圈)对话框的结构都保持完全相同,只有帧数4随按下按钮的时间而变化*。来自物镜的值仅随控制环的物理位置而变化。

用其他模型代替镜头也不会影响这种对话结构,有一些细节。

物镜38-76焦距76mm的帧值(手动焦距)

(8帧表格交互数据,当前没有必要整理,有时间再整理)

帧操作和解码命令

遇到了两种类型的命令,第一种命令后面大部分是零,关联的命令有一个可变的响应,第二种命令单独使用,并有自己的响应值。可以很容易地得出结论,前者是对可变长度目标的信息请求,通过发出零来获得下一个值。返回值表示已考虑的命令的秒数。

提示:SPI总线的操作意味着发出命令和接收命令响应是交错的。与发出命令同时接收的字节不属于该命令的响应,但可能属于前一个。读取一个命令响应的每个字节将需要为该响应的下一个字节发出一个零或一个新命令。

指令0x0A:请求物镜可用

此命令通常是在发布帧时遇到的第一个命令。然后重复此操作,直到物镜发出0xAA响应,然后可以执行其他命令。这种操作方法是典型的响应无罪释放测试,例如在与ENQ/ACK(或TCPIP与SYN/ACK)的ASCII串行通信中使用的方法,但在1987年设计协议时,它的实用性要低得多。

这一原则可以在以前的无物镜测试中找到,或者在放弃或进一步尝试之前发布了大量的0x0A指令集。在EOS 5000中,这些0x0A命令集后面跟着0x09、0E、0F指令,这可能意味着它们对应于初始化或重置命令。请注意,以后只会遇到0x0E,物镜设置为手动自动对焦。

指令0xA0、B0、B2、90和F0:光学特性和AF状态

通过将其中一些指令与其他物镜和多种配置进行分析,可以获得易于识别其含义的结果。下表提供了返回值(十进制)的摘要。

  1. 指令0xA0:继续执行此指令,返回两个字节,其值与物镜的当前焦点相对应。第一个字节为强权重值,仅用于超过256mm的焦距,在70-200x2(1x256+144=400mm)或300x2(2x256+88=600mm)中可见

  2. 指令0xB0:所遇到的3个字节的值仅随物镜孔径的变化而变化,这取决于物镜的型号或滑动孔径光学元件的焦距变化。下表列出了根据遇到的不同F/N值返回的值,以说明返回值与AV开口值之间的直接和线性关系。字节1和2表示当前镜头光圈和最大可能光圈(或相反),字节3表示其最小可能光圈。

    通过按数字顺序对开口值和返回值进行分类,可以看出隔膜的差异对应于这些值的8个单位的变化。因此,该系统使用1/8的光圈精度来表示光圈值,这可以包括通常具有以¼直径运行的步进电机的虹膜。如果孔径用AV(顶点线性表示法)表示,则很容易找到数学关系。

    在计算四舍五入时,理论RET的计算值与物镜返回的值相对应。完整的表格和转换公式将在订单摘要一章的末尾给出。

  3. 指令0xb2和f0:这些指令以非线性方式返回随焦距变化的值,而且变化规律似乎随物镜模型而变化。对于某些物镜,如50/1.8 STM,B2值也会随着焦距的变化而变化。其意义的一个假设可能是与焦距相关的自聚焦校正参数。在使用Arduino测试台进行测试时,将进行更深入的研究,以便更快地利用结果。

  4. 指令0x90:第二个字节的第7位随镜头AF/MF开关的位置而变化。假设该指令与镜头自动对焦系统有关是有意义的,这将在以下测试中确认和完成。

    焦点环或其他物镜开关(范围限制器、IS、MEMO AF)位置的变化不影响本表中的值。

指令0x80-0A:请求物镜的物理特性

然后是一个零序列,其响应随物镜模型的变化而变化,从而形成了一组描述该序列的值。

对该字符串的分析有一个陷阱,因为构成该字符串的第二个字节也是物镜可用性指令ENQ的值,因此可以将其视为0x80、0x0a和0x03+00s指令套件,或者将其视为0x80指令,然后是参数0a和03。如果没有额外的测试,第二个解决方案的唯一指标是0x0a的响应值与0xaa不同。通过Arduino工作台单独发送这些指令将确认这一假设的有效性,返回到0x03的值是指令的值,没有其他后续值,这是简单指令的典型响应。

 

请注意,参数0x03仅适用于相关的机箱,从网络上检索到的帧(EOS500)或Arduino测试表明,可以用值0x00代替它,而不必担心…。我们将在下文中看到,这并不总是正确的。

返回的值仅取决于物镜的物理特性,不受物镜的各种设置(变焦焦距、焦距、开关等)的影响。仅使用70-200/2.8 II检测到TC的存在。

  1. 字节1-镜头类型:一个非常古老的佳能白皮书指出镜头类型(固定、缩放、宏、软焦点……)是提供给Boiter的信息的一部分。此字节值的微小变化有利于此解释。此外,位5仅为缩放类型的镜头设置为1。

  2. 字节2-lensid:此值是一个常量,仅与物镜类型相关,不存在重复项,这表明存在标识码。一个带有“canon lensid”标签的网络搜索找到了一个数组,它在照片的exif中使用的值与遇到的值完全匹配

  3. 字节3-6-最大/最小焦距:这4个字节的意义是显而易见的,镜头允许的最小和最大焦距值的编码用明文表示。只有比300/2.8 IS更新一代的70-200/2.8 IS II在有遥控器的情况下改变这些值。

  4. 字节7,8-功能:无论物镜配置如何,这些字节的值都是恒定的,其含义不太明显,但从上下文来看,它们确实是关于物镜提供的功能的信息。

    下表比较了以二进制模式写入的字节7和字节8的结果与一些物理物镜(稳定、USM AF引擎)或逻辑特征(高速传输A 500kHz、实际MAP距离信息C2、物镜名称82、扩展到12字节的高级版本指令80)的结果。相关性可以找到,但由于样本量小,不确定,包括:

    • Bit0 - Byte7: C2指令的可用性(在Tamron上可用,但未使用)。
    • Bit2 - Byte7:存在编码器焦距。
    • Bit4 - Byte7: IS存在,由与7D一起使用的50STM(而不是其他容器)取消。
    • Bit7 - Byte8: NV协议生成,时钟500kHz,指令82等。
    • Bit0 et 2 - Byte8:超级电视,带存储卡和AF按钮。

    请注意,使用其他boiter的测试和ef协议的发展使得使用0x0a03以外的参数成为可能,这些参数的值取决于外壳模型,然后可以修改指令响应,尤其是字节5和6(参见ef50stm和eos 7d)。

指令0xC2:物镜焦距

此物镜仅在某些物镜的初始化帧中出现,可能是通过将0x80物镜获得的字节5的位1设置为1来报告的。

此物镜返回4个字节,其值随焦距变化。使用EF 50/1.8 STM物镜进行了多次测试。下表给出了通过手动改变从无穷远到迷你贴图再到无穷远的焦点距离而获得的值。

 两个值A和B似乎都与焦距成线性关系。单位为厘米,官方值为0.35m,作为最小焦距。在70-200/2.8上进行的一项带有地图距离显示窗口的测试验证了这一发现的准确性。

无论测试或行驶方向如何,发送的两个值总是相同的,或者A大于AB。认为物镜发出的不是绝对焦距,而是SI所处的距离范围是有意义的,从而降低了焦距编码器分辨率低的不确定性。这种工作模式当然是由编码器直接管理的,编码器的编码系统相对复杂。

回调操作目标定位编码器

焦点设置的绝对位置由一个经典的编码器来确定,该编码器通过与焦点透镜组机械相关联的导电梳将印刷电路板上的导线连接起来。下面是17-85上使用的编码器的照片,显示了梳子在宏(白色)和无限(黑色)位置的位置,轨迹根据极性着色。

作为整个光学系统的参考,通常只精确地提供无限位置,在组装接触梳时进行调整。其他焦点位置和距离的精度明显较低,编码器分辨率较低,在用于测试的EF 50/1.8 STM中,只能提供14个不同的焦点距离值。

物镜手动AF开关

这篇文章的意义在于,这是为数不多的几个案例之一,否则对话的主动性将不再是一纸空文,而是物镜。当物镜MF按钮的状态发生变化时,物镜MF将其DLC信号切换到低状态,这将导致箱子唤醒并初始化事务。

该序列由初始帧组成,然后重复信息帧2到3秒。

两个测试物镜之间的操作略有不同,如果EF 50/1.8 STM在空位后直接向Boiter发送值,则旧物镜EF38-76正在等待来自Boiter的0x0A指令的轮询操作。

EF 50/1.8 Stm

EF 38-76

38-76和50/1..8 STM帧值比较

这些帧之间几乎没有区别,除了出现了命令C2和EF50/1.8,它取代了一组命令A0、B2、80。

PDC键

PDC键允许独立操纵光圈,理论上限制了分析范围,仅激活光圈电机。

与先前遇到的帧结构类似,具有初始化帧、光圈关闭命令帧、一组相同的帧、光圈打开和结束帧以及持续3或4秒的信息帧。

指令0x12:光圈电机

此命令通过发送0x12命令,然后发送引擎在有符号字节上执行的移动值来执行。与第13页视图中0xB0命令的光圈信息一样,该值表示为AV孔径值的1/8。使用后一个命令可以知道全光圈值。只需减去所需的光圈值,就可以知道使用0x12发送的值。通过发送值0x80,返回到全开状态。下表提供了一些使用的值示例。

 通过接收0x12命令及其参数的反馈值0x12,验证光圈转动顺序的正确执行或至少正确理解。

此命令始终由0x09命令组成,这些命令似乎指示初始化过程。

请注意,命令0xb0在光圈关闭顺序之后对光圈特性的请求总是返回与全光圈相同的值,这使得一些网络源分配了一个字节的响应的当前实际光圈值无效。

光圈运动持续时间

膜片光圈电机控制命令0x12具有一个特殊性,即在第8个脉冲后处于低时钟信号状态的开关在镜头的主动性很好,并指示操作员其占用和不可用,以接收其他命令。这个低位的持续时间取决于光圈电机必须执行的步进数,从验证标准值(4到80µs,取决于镜头)到40毫秒,请参阅更多关于某些光学元件的信息。

自动聚焦扫描(AF)

由于测试系统是用两个独立的适配器设计的,因此镜头不再与外壳及其AF传感器进行光学连接,因此无法正常聚焦。因此,当对触发器按钮的第一个进行操作时,箱子将进行搜索扫描,将AF电机从一个极端位置移动到另一个极端位置,这将是不成功的。

帧值(提取)

测试是在AF初始位置无限远的情况下进行的,因此,对触发器的持续操作会导致AF系统从无限远的起始位置移动到最小对焦距离位置,然后在大约300 ms后返回无限远。只显示了初始化帧和无限迷你路径,返回帧保持不变,除了运行时命令变成0x05而不是0x06。

测试了几个不同迭代的物镜(EF 38-76、TAMRON 17-50、EF 50/1.4 USM和EF 50/1.8 STM),几乎没有差异,帧结构保持不变,只有少数命令随光协议的发展而增加。

这些差异将在下面列表的注释部分根据颜色进行排序。

简化流程图

指令0x05、0x06和0x0C:AF移动到极限位置。

因此,以前从未出现过的没有参数0x05和0x06的指令对应于启动一个循环,导致AF电机启动,并将焦点镜头从其当前位置移开,这是一个极端位置,无论起始位置如何。这些指令前面总是有一个0x0c指令,该指令也出现在物镜初始化序列中,因此有理由假设该指令允许初始化专用的自动对焦进程并将其工作寄存器重置为零。

使用Arduino进行的直接测试可以确认此操作。对于某些物镜,如50STM,这些指令没有足够的动作来执行全行程,需要发送第二个指令,包括使用与EOS 5000相同的帧。我找不到这种现象的解释,如果需要,有必要用0x90指令确认停止位置。

0xC0和0xE0指令:AF定位信息

这两个指令都返回两个字节的编码值,因为上下文和值的变化对应于自动对焦系统的计数器或操作寄存器。 从0xC0输出的值始终具有从无穷远到迷你方向的0xFFFF值作为初始值,而从另一个方向输出的0x0000值将根据焦距的物镜和起始位置进行更改。因此,这是一个有符号的16位计数器,当然是由调焦电机的位置编码器直接递增的(见下图)。

从0xE0输出的值取决于焦距,测试A焦距和可变起始位置总是根据该位置返回相同的值。与前面看到的0xC2指令一样,该值来自MAP环位置编码器,除了无限位置外,分辨率和精度都很低。例如,在50/1.4 USM或无限停止位置的小位移下,这一点尤其明显,使该值从0x4000增加到0x3FFF,而在3M到1M的范围内,它在0x3FF9下保持恒定。有些没有编码器的镜头会看到这个值变得恒定,有时会随着焦距的变化而变化。

下表列出了这些价值观的结果,这些价值观来自不同的背景和物镜。

对于两个止动块之间的位移,无论移动方向如何,0xC0指令产生的计数值保持不变,精确到物理误差。如果50/1.8 STM和Tamron退出批次,计数步距的精度将随着设计和物镜年龄的变化而显著变化,旧的50/1.4的USM技术没有比35-70这样的老式Tracassins带来更多。

另一方面,0xE0返回的值仍然是个谜,它们随焦距和焦距的变化规律当然与0xB0函数返回的参数有关,但并不明显。

0x90指令:自动对焦状态

使用MEMOAE键进行的测试表明,0x90指令返回的第二个字节的值随手动AF开关的位置而变化。AF扫描测试为该参数提供其他值,这些值随聚焦过程的变化而变化,下表总结了这些值。

 因此,该指令是对自动对焦状态的查询,其含义由第二个字节中每个位的位置给出。

在无限PU Mini停止时,将位设置为1自动对焦的操作因物镜而异。如果使用50STM,此操作与AF块的物理位置检测相关,则其他如50USM使用内部逻辑管理。在后一种情况下,该标志的位置仅随发动机行驶控制装置的变化而变化,与手动对焦环上的操作无关。

指令0x50+参数:设置AF速度

此指令仅存在于协议的某个版本中,绑定到自动对焦系统,在0x05或0x06指令之前发送,并与变量参数关联。如果某些物镜使用参数的值作为返回值,50 STM将返回指令0x50的值,从而消除对该函数语法的任何怀疑。

如果指令0x50后的参数通常为0x2c,则有时会使用0x2d或0x2e,无明显原因,直到使用70-200和遥控器进行试验,以研究其对AF电机速度的影响。

众所周知,在弱光条件下,遥控器会降低转速。箱子的AF传感器被遮挡或亮起(清除)。对获得的帧进行比较表明,唯一的差异(除了返回的光圈和焦距值)是0x50使用的参数。

因此,除了AF模块的初始化功能外,0x50指令还可以确定电机的运行速度(对于接受该指令的物镜),这当然要归功于后面参数的前两位。

物镜70-200和300/2.8

这些物镜的问题是,这个指令不再使用一个参数,而是使用两个参数。确定要使用的参数数量当然与0x80指令返回的值有关,但没有任何确定性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(考研湖科大教书匠计算机网络)第四章网络层-第四节:IP数据报的发送和转发过程

获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:概述二:举例三:路由器可以隔离广播域本节对应视频如下 【计算机网络微课堂(有字幕无背景音乐版)】&…

文华财经期货策略高胜率顶底反转指标公式,短线操盘量化CTA主图K线指标

​期货指标公式不是交易的圣杯,也不是期货亏损后的救命稻草。请理性运用指标公式,独立决策,盈亏自负。 什么是多头趋势行情? 多头趋势行情指的是市场单边多头行情。具体表现为上涨过程中出现连续上涨的高点与低点,只要…

3.4 ISIS和OSPF之间路由引入

实验目的掌握在IS-IS中引入OSPF路由的方法掌握在OSPF中引入IS-IS路由的方法实验拓扑ISIS和OSPF之间路由引入实验拓扑如图3-3所示: 图3-3:ISIS和OSPF之间路由引入 实验步骤IP地址的配置R1的配置 <Huawei>system-view [Huawei]undo info-center enable

Spring 框架源码(六) Bean的生命周期全流程源码解析

Spring框架作为Java王国的地基&#xff0c;我觉得它包含了很多精妙的设计&#xff0c;例如Bean工厂设计、Bean的生命周期、tx、aop、web、mvc等&#xff0c;最核心基本的Bean设计是Spring 的框架的灵魂&#xff0c;本文就Bean的生命周期全流程做源码程度上的解析&#xff0c;欢…

【surfaceflinger源码分析】surfaceflinger进程的消息驱动模型(二)

接着上篇文章中的两个新疑问: mEventTube是个什么玩意&#xff1f;MessageQueue::setEventConnection(…) 什么时候有谁调用的 &#xff1f; BitTube mEventTube的类型为class BitTube&#xff0c;BitTube从字面上的意思来看bit管道&#xff0c;bit隧道&#xff0c;应该是一…

20230216在Ubuntu18.04下查看硬盘信息

20230216在Ubuntu18.04下查看硬盘信息 2023/2/16 22:25 百度搜索&#xff1a;查看 HDD 缓存 ubuntu [BEGIN] 2023/2/16 22:10:24 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cat /sys/block/sda/device/modelHUS726060ALE61…

VIVADO2022 sdk 工程创建流程

正点原子uart历程复现 create block design&#xff08;起名 为System&#xff09; -> open block design -> 号/IP catalog 中搜索zynq 双击打开&#xff0c; 将和pl相关的时钟都干掉 再auto 布线一下 把herarchy中的sources 中的system.bd右键、 无脑下一步导出 如…

赛狐ERP|亚马逊产品缺货怎么办?该如何补救?

由于物流时效的延长&#xff0c;运输成本的增加&#xff0c;亚马逊的仓储限制等各种原因&#xff0c;断货问题很常成为亚马逊卖家的普遍困扰。那么亚马逊产品缺货应该怎么办&#xff01;1、提高产品价格&#xff1a;除了卖自己的Listing此外&#xff0c;提高产品价格也是一种保…

基于微信小程序的智能招聘小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…

Cygwin安装与Mingw

共同点&#xff1a;window下编译环境 区别&#xff1a;cygwin(gnu windows)模拟Linux编译环境&#xff0c; mingw模拟window编译环境&#xff0c;生成.exe可执行文件 目录 Cygwin安装 一、官网下载 二、双击安装 三、选择安装路径后&#xff0c;到连接方式如图 四、添加连…

USB3.0移动硬盘启动Win7的方法(AHCI/AMD USB3.0/Win7)

古董电脑(intel处理器&#xff0c;无USB3.0接口)突然坏了&#xff0c;已经没有维修价值了&#xff0c;硬盘还是完好的。欲把硬盘拆下来&#xff0c;装到USB3.0硬盘盒上&#xff0c;然后在新电脑(AMD R5-4650G/A520)上从USB3.0硬盘盒上启动。 一、需要工具 SATA数据线PS/2鼠标…

合并两个有序数组-力扣88-java

一、题目描述给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。注意&#xff1a;最终&#xff0c;合…

【mac】在m2 mbp上通过Parallels Desktop安装ubuntu22.04

文章目录前言一、参考文章二、版本信息三、方法1:通过ubuntu官网提供的iso安装3.1 配置服务器3.2 安装图形界面四、方法2:通过Parallels Desktop提供的安装包五、 小工具5.1 调整应用栏图标大小5.2 ubuntu获取mac的剪切板5.3 调整terminal字体大小5.4 安装samba5.5 ubuntu连接m…

【Java基础】022 -- Lambda与递归练习

目录 一、Lambda表达式 1、Lambda初体验 2、函数式编程 3、Lambda表达式的标准格式 4、小结 5、Lambda表达式的省略写法 ①、示例代码 ②、小结 6、Lambda表达式的练习 ①、Lambda表达式简化Comparator接口的匿名形式 二、综合练习 1、按照要求进行排序&#xff08…

四【Spring框架】

目录一 Spring概述二 .Spring 的体系结构三 Spring的开发环境3.1 配置pom.xml文件四 项目案例&#xff1a;4.1 创建实体类4.2 在pom.xml中引入依赖4.3 配置Spring-config.xml文件4.4 Test✅作者简介&#xff1a;Java-小白后端开发者 &#x1f96d;公认外号&#xff1a;球场上的…

Java kafka

JAVA面试题--Kafka&#xff08;最新最全&#xff09; 目录概述需求&#xff1a;设计思路实现思路分析1.URL管理2.网页下载器3.爬虫调度器4.网页解析器5.数据处理器拓展实现性能参数测试&#xff1a;参考资料和推荐阅读)Survive by day and develop by night. talk for import b…

Mac M1 使用Centos8➕VMware Fusion进行静态网络配置

大部分的流程网络上面都有当我们已经下载好mac m1版的Centos8链接: https://pan.baidu.com/s/1UTl4Lo-_c17s-PDj3dA6kA 提取码: 7xh2 和VMware Fusionhttps://www.vmware.com/cn/products/fusion.html之后就可以进行安装了在导入过后 记得将硬盘和内存都设置好了 记得在关机状态…

Flutter-Charts_painter大数据量绘制性能优化-数据收敛

Flutter-Charts_painter大数据量绘制性能优化-数据收敛 1、背景介绍 HRV测量仪器上传的数据&#xff0c;每秒有250个数据&#xff0c;业务上需要测量180秒&#xff0c;预计有3w-5w个数据点需要绘制到折线图上去。Charts_painter绘制这么大的数据是时候会有些卡顿&#xff0c;…

自定义markdown-loader

webpack markdown-loader 想要创建自己的makdown-loader 首先创建markdown文件 # 前端学习总结## 一、深入学习HTMLCSS* HTML常见特性## 二、深入学习javascript创建my-md-loader.js 我们需要先将markdown的语法转化成html标签语法 使用marked pnpm add marked loader返回…

“2023数据安全智能化中国行”活动,开幕即高能

工信部等16部门近日发布的《关于促进数据安全产业发展的指导意见》提出&#xff0c;到2025年&#xff0c;数据安全产业基础能力和综合实力明显增强&#xff0c;数据安全产业规模超过1500亿元&#xff0c;年复合增长率超过30%。到2035年&#xff0c;数据安全产业进入繁荣成熟期。…