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

WOL唤醒配置(以太网、PHY、MAC)

目录

wol 

以太网

MAC

PHY

RMII

通信配置

总结


wol 

Wake-on-LAN简称WOL,WOL(网络唤醒) 是一种标准网络协议,它的功效在于让已经进入休眠状态或关机状态的计算机,透过局域网(多半为以太网)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成引导状态。WoL 技术通过将魔术数据包从服务器传输到特定计算机来运行。幻数据包是一个特殊的数据包,其中包含目标计算机的媒体访问控制 (MAC) 地址和网络广播地址以及 WoL 配置。WoL 通常从具有 IP 地址管理软件的服务器广播。

WoL 的目的是远程在设备上执行唤醒操作。它可以帮助网络管理员自动执行不需要任何手动干预的定期唤醒计划。

消息通常由在连接到同一局域网的设备上执行的程序发送到目标计算机。

以太网连接(包括家庭和工作网络、无线数据网络和 Internet 本身)都基于计算机之间发送的帧。 WoL 是使用一种特殊设计的称为魔术包的帧来实现的,魔术包被发送到网络中的所有计算机,其中包括要被唤醒的计算机。 魔术分组包含目的地计算机的 MAC 地址、内置在计算机中的每个网络接口卡(“NIC”)或其它以太网设备中的标识号,其使得它能够在网络上被唯一地识别和寻址。 具有 LAN 唤醒功能的已关机或关闭的计算机将包含能够在系统关机时以低功耗模式“侦听”传入数据包的网络设备。 如果接收到指向设备 MAC 地址的魔术包,网卡会向计算机的电源或主板发出信号,以启动系统唤醒,其方式与按下电源按钮的方式相同。

魔术分组在数据链路层(OSI 模型中的第 2 层)上被发送,并且当被发送时,使用网络广播地址被广播到给定网络上的所有附接的设备;不使用 IP 地址(OSI 模型中的第 3 层)。

由于 LAN 唤醒是基于广播技术构建的,因此通常只能在当前网络子网内使用。 不过,也有一些例外情况,LAN 唤醒实际上可以在任何网络上运维,只要配置和硬件适当,包括通过互联网进行远程唤醒。为了使 LAN 唤醒工作,网络接口的某些部分需要保持打开状态。

功耗控制(MCU ARM-cortex M3内核):

待机模式特点:

以太网

以太网 不是一种具体的网络,而是一种网络技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构、访问控制方式、传输速率等。

以太网中的所有主机,共享一个通信信道,当一台主机给目标主机发送数据后,处于同一个局域网的所有主机都能够收到,它们都会对比自己的 MAC 地址和数据中的目的 MAC 地址,除了目标主机的对比是相等的之外,其余主机的对比都是不相等的,所以其余主机都会丢弃,只有目标主机会将其解包并向上交付。

以太网电路的基本构成

对于上面框图三个部分,并不是每个部分都是独立的芯片,一般有几种情况:

  • CPU内部集成了MAC和PHY,难度较高
  • CPU内部集成MAC,PHY采用独立芯片(主流方案目前用的最多)
  • CPU不集成MAC和PHY,MAC和PHY采用独立芯片或者集成芯片(高端采用)

PHY整合了大量模拟硬件,而MAC是典型的全数字硬件,芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因。更灵活,密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。

常用的CPU内部集成MAC,PHY采用独立的芯片方案,CPU和MAC集成在一起,PHY芯片通过MII接口与CPU上的MAC互联。

对于这种方案,其硬件方案比独立的相对于更简单,PHY与MAC之间有以下两个重要的硬件接口

MDIO总线接口,主要是完成CPU对于PHY芯片的寄存器配置

MII总线接口,主要是完成数据收发相关的业务

当我们的PHY芯片发送数据,接受到MAC层发送过来的数字信号,然后转换成模拟信号,通过MDI接口传输出去。但是我们的网线传输的距离又很长,有时候需要送到100米甚至更远的地址,那么就会导致信号的流失。而且外网线与芯片直接相连的话,电磁感应和静电,也很容易导致芯片的损坏,所以就要使用网络变压器,其主要作用是

传输数据,它把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到不同电平的连接网线的另外一端

隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输损坏设备

还能使芯片端与外部隔离,抗干扰能力大大增强,而且对芯片增加了很大的保护作用,保护PHY免遭由于电气失误而引起的损坏(如雷击)

MAC

MAC(Media Access Control),即媒体访问控制子层协议,该部分有两个概念:MAC可以是一个硬件控制器以及MAC通讯协议。该协议位于OSI七层协议中数据链路层的下半部分,主要是负责控制与连接物理层的物理介质。

MAC硬件框图

MAC 地址用来标识数据链路层中相连的节点。长度为 6 个字节 48 位,一般用十六进制数字加上冒号的形式来表示。例如:52:54:00:56:6a:47 。

PHY

什么是phy

PHY(英语:Physical),中文可称之为端口物理层,是一个对OSI模型物理层的共同简称。而以太网是一个操作OSI模型物理层的设备。一个以太网PHY是一个芯片,可以发送和接收以太网的数据帧(frame)。不同于NIC(网卡),PHY没有自己的MAC地址。 ​

也就是说,PHY是网络结构中的最底层,物理层。PHY芯片是实现物理层这一层功能的芯片。网络设备之间就是通过PHY芯片相互连接的(介质是网线或者光纤)。

PHY的主要功能就是将数字信号转成模拟信号,然后在网线或者光纤传输。因为模拟信号和数字信号的不同,加上不同设备之间的传输环境复杂,因此,大部分的PHY都是单独做到一个芯片内的。

因此,在一般的网络设备电路设计中,需要为PHY芯片设计电路。PHY的芯片厂家为了满足大部分的应用场景,会在PHY上面提供很多接口协议,以供设计人员使用。比如,一颗PHY可能会支持网线传输,又或者支持光纤传输,然后在连接数据链路层这边,会提供很多的MII接口以供选择。

发送数据:对于PHY来说,并没有帧的概念,对它来说,不管是地址、数据还是CRC,都会将并行数据转换为串行数据流,在按照物理层的编码规则把数据编码,最终转换成模拟信号发送出去

接收数据:从外部接收数据时,模拟信号先转成数字信号,再经过解码得到数据, 经过MII送到MAC

CSMA/CD:可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去。如果两个碰巧同时送出了数据,那样必将造成冲突。这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。

MDI

MDI口是快速以太网100BASE-T定义的与介质有关接口(Media Dependent Interface)。MDI是指通过收发器发送的100BASE-T信号,即100BASE-TX、FX、T4或T2信号。将集线器连接网络接口卡时,其发送和接收对通常是相互连接的。集线器之间连接时,通常需要一条跨接电缆,其中的发送和接收对是反接的。MDI是正常的UTP或STP连接,而MDI-X连接器的发送和接收对是在内部反接的,这就使得不同的设备(如集线器-集线器或集电器-交换机),可以利用常规的UTP或STP电缆实现背靠背的级联。

PHY是IEEE 802.3规定的一个标准模块,SOC可以通过MDIO对PHY进行配置或者读取phy相关状态,PHY内部寄存器必须满足

PHY芯片的寄存器地址空间是5位,一般由外部硬件连接决定。

地址空间031共32个寄存器,IEEE定义了015这16个寄存器的功能,16-31这16个寄存器由厂商自行实现。也就是说不管哪个厂商的PHY芯片,其中0~15这16个寄存器是一模一样的。

仅靠这 16个寄存器完全可以驱动起PHY芯片,至少能保证基本的网络数据通信。因此 Linux 内核有通用 PHY 驱动,按道理来讲,不管你使用的哪个厂家的 PHY 芯片,都可以使用 Linux 的这个通用 PHY 驱动来验证网络工作是否正常。事实上在实际开发中可能会遇到一些其他的问题导致 Linux 内核的通用 PHY 驱动工作不正常,这个时候就需要驱动开发人员去调试了。而且除了Linux平台,单片机平台也会和phy通信,所使用的功能和芯片也是根据需求所定,所以在实际开发中需要做不同的适配,下面会讲到极海32和裕泰8512的配置通信。

phy芯片的接口介绍

MAC与PHY之间通过两个接口连接,分别为SMI接口和MII接口。

MII叫做介质独立接口,以太网MAC通过该接口发出数据帧经过PHY后传输到其他网络节点上,同时其他网络节点的数据先经过PHY后再由MAC接收;

SMI叫做是串行管理接口,以太网MAC通过该接口可以访问PHY的寄存器,通过对这些寄存器操作可对PHY进行控制和管理。

MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。它是IEEE-802.3定义的以太网行业标准。MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术。媒体独立表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作.它包括一个数据接口,以及一个MAC和PHY之间的管理接口。MII接口有MII、RMII、SMII、SSMII、SSSMII、GMII、SGMII、RGMII等。这里简要介绍其中的MII和RGMII。

MII接口主要包括以下三个部分:

  • 从MAC层到PHY层的发送数据接口
  • 从PHY层到MAC层的接收数据接口
  • 从MAC层和PHY层之间寄存器控制和信息获取的MDIO接口

MII的MAC层定义接口

MII的时钟为25MHz,传输速率为10/100Mbps。其特性如下:

  • 支持10Mb/s和100Mb/s的数据速率
  • 100M工作模式下,参考时钟是25MHz;10M工作模式下,信号参考时钟是2.5MHz
  • 支持全双工、半双工两种工作模式
  • 发送和接收数据时采用,4bit方式

SMI是MAC内核访问PHY寄存器接口,它由两根线组成,双工,MDC为时钟,MDIO为双向数据通信,原理上跟I2C总线很类似,也可以通过总线访问多个不同的phy。

MDC/MDIO基本特性:

两线制:MDC(时钟线)和MDIO(数据线)。

时钟频率:2.5MHz

通信方式:总线制,可同时接入的PHY数量为32个

通过SMI接口,MAC芯片主动的轮询PHY层芯片,获得状态信息,并发出命令信息。

SMI帧格式

RMII

RMII 精简介质独立接口。RMII降低了以太网外设与外部 PHY在 10/100Mbit/s下微控制器的引脚数。根据IEEE 802.3U标准,MII有16个数据和控制信号的引脚。RMII将引脚减少为7个。

RMII 在MAC 和 PHY之间实例化。有助于将MAC 的 MII 转换为RMII。RMII具有一特性:

1、单独的2位宽的发送和接收数据路径

2、10-Mbit/s 和100-Mbit/s 的运行速率

3、参考时钟为50MHz

4、从外部提供相同的参考时钟给MAC和外部以太网PHY

RMII接口框图

通信配置

以下的配置说的是极海32与裕泰8512通信的简单流程,附部分代码,

首先需要初始化配置RMII模式相关的gpio,并选择以太网外部接口为RMII

//MCU引脚 
/* * ETH_RESET# PB6* ETH_INT PB15* ETH_MDIO PA2* ETH_MDC PC1* ETH_RMII_REF_CLK PA1* ETH_RMII_CRS_DV PA7* ETH_RMII_RXD0 PC4* ETH_RMII_RXD1 PC5* ETH_RMII_TX_EN PB11* ETH_RMII_TXD0 PB12* ETH_RMII_TXD1 PB13
*/ 
//接口gpio初始化函数 
etherent_gpio_config() 
{ /* Configure ETH_MDIO */ configStruct.pin = ETH_MDIO_PIN; configStruct.mode = GPIO_MODE_AF_PP; GPIO_Config(ETH_MDIO_PORT, &configStruct); ... ... ... ... 
} 
/Select an Ethernet external interface/ 
GPIO_ConfigPinRemap(GPIO_REMAP_MACEISEL_RMII);

YT8512 产品使用说明书

查看PHY芯片产品说明书及MCU产品手册和硬件原理图配置外部中断

EINT_ClearStatusFlag(EINT_LINE_15); 
EINT_InitStructure1.line = EINT_LINE_15; 
EINT_InitStructure1.mode = EINT_MODE_INTERRUPT; 
EINT_InitStructure1.trigger = EINT_TRIGGER_FALLING; 
EINT_InitStructure1.lineCmd = ENABLE; 
EINT_Config(&EINT_InitStructure1); 
NVIC_EnableIRQRequest(EINT15_10_IRQn, 1, 1);

根据MCU手册,配置以太网外设

etherent_mac_dma_config() 
{ /* Enable ETHERNET clock */ RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_ETH_MAC | RCM_AHB_PERIPH_ETH_MAC_TX |                 RCM_AHB_PERIPH_ETH_MAC_RX); /* Reset ETH on AHB Bus */ ETH_Reset(); /* Software reset */ ETH_SoftwareReset(); /* Wait for software reset */ while (ETH_ReadSoftwareReset() == SET); /* ETH Config Struct *///使用默认值配置ETH_Config_T成员。            ETH_ConfigStructInit(Ð_InitStructure); /* ETH Config MAC */     ETH_InitStructure.autoNegotiation = ETH_AUTONEGOTIATION_ENABLE; //选择外部PHY的自协商模式 ETH_InitStructure.xxxxx ................. ................. /* ETH Config DMA */ ETH_InitStructure.receiveStoreForward = ETH_RECEIVESTOREFORWARD_ENABLE;  // /*!<启用接收存储和转发模式*ETH_InitStructure.xxxxx ................. ................. 
}//配置以太网外设参数ETH_Config(Ð_InitStructure, YT8512_PHY_ADDRESS) //这个函数调用厂商的eth外设库函数,主要是配置以太网参数以及PHY的初始化配置

上述配置成功后就能与PHY进行通信了,然后就可以去配置PHY的寄存器。要实现wol功能,就需要去配置PHY的MAC地址,地址自定义,写进PHY的MAC地址寄存器。

根据手册得到3个MAC寄存器,这里要注意,地址前面标注为“EXT”,表示这3个寄存器为外部扩展寄存器,而对于扩展寄存器的操作在手册中另有说明,如下

MII_reg0x1e 和MII_reg0x1f 寄存器描述

所以根据访问方式去配置 PHY 的MAC寄存器,如下

//写PHY扩展寄存器的方式 
static void apm_phy_wr_ext(uint16_t reg,uint16_t val) 
{ //配置PHY MAC地址ETH_WritePHYRegister(YT8512_PHY_ADDRESS,REG_DEBUG_ADDR_OFFSET,reg);         ETH_WritePHYRegister(YT8512_PHY_ADDRESS,REG_DEBUG_DATA,val);   apm_phy_wr_ext(PHY_MAC_ADDRESS_ADDR1,0x2db2);//04 ETH_WriteDelay(ETH_REG_WRITE_DELAY); apm_phy_wr_ext(PHY_MAC_ADDRESS_ADDR2,0xe87c);//05 ETH_WriteDelay(ETH_REG_WRITE_DELAY); apm_phy_wr_ext(PHY_MAC_ADDRESS_ADDR3,0xd769);//06、
}

然后需要配置PHY WOL相关寄存器,如下:

开启wol机制:

触发方式:

配置phy中断:

//开启WOL机制 
//0x4000 
//0x4004 
apm_phy_wr_ext(PHY_MACHINING_ADDRESS_ADDR1,0x06); 
ETH_WriteDelay(ETH_REG_WRITE_DELAY); 
//选择中断触发方式为1ms的脉冲,通过读取两次0x13寄存器清除中断(0x13寄存器清零,中断信号变高) 
apm_phy_wr_ext(PHY_MACHINING_ADDRESS_ADDR2,0x02ef);//03 
//配置中断为WOL中断                         //0x12 ETH_WritePHYRegister(YT8512_PHY_ADDRESS,PHY_INTERRUPT_ADDRESS,0x40);

清除中断:

//读取两次PHY_MII_REG 0X13 寄存器 清除中断 ETH_ReadPHYRegister(YT8512_PHY_ADDRESS,PHY_INTERRUPT_EVENT_ADDRESS); 
APM_EVAL_DelayMs(50); 
ETH_ReadPHYRegister(YT8512_PHY_ADDRESS,PHY_INTERRUPT_EVENT_ADDRESS);

配置流程到这里就基本结束了,验证就是通过远程网络工具发送配置的Mac地址,然后看有没有触发配置的MCU外部中断。

总结

MAC 就是以太网控制器,属于OSI的数字链路层。 phy 属于OSI的物理层(Physical layer),所以叫phy。

CPU Mac与phy通信通过MII接口,数据的传输通过MDIO数据线。通过配置phy的相关寄存器实现不同的功能。

相关文章:

WOL唤醒配置(以太网、PHY、MAC)

目录 wol 以太网 MAC PHY RMII 通信配置 总结 wol Wake-on-LAN简称WOL&#xff0c;WOL&#xff08;网络唤醒&#xff09; 是一种标准网络协议&#xff0c;它的功效在于让已经进入休眠状态或关机状态的计算机&#xff0c;透过局域网&#xff08;多半为以太网&#xff…...

MySQL复制,约束条件,查询与安全控制

MySQL之复制 复制表 我有一个表 mysql> show tables; ------------------ | Tables_in_school | ------------------ | student | ------------------mysql> select * from student; -------------------------------------------- | id | name | sec |…...

Java ES 滚动查询

滚动查询&#xff08;Scroll Query&#xff09;是 Elasticsearch 提供的一种机制&#xff0c;用于处理大量数据的查询。它允许你在多个请求之间保持“游标”&#xff0c;以便在后续请求中获取更多的结果。 以下是滚动查询的基本工作原理&#xff1a; 1 初始查询: 客户端发送一…...

机器学习算法基础--KNN算法分类

文章目录 1.KNN算法原理介绍2.KNN分类决策原则3.KNN度量距离介绍3.1.闵可夫斯基距离3.2.曼哈顿距离3.3.欧式距离 4.KNN分类算法实现5.KNN分类算法效果6.参考文章与致谢 1.KNN算法原理介绍 KNN&#xff08;K-Nearest Neighbor&#xff09;工作原理&#xff1a; 在一个存在标签的…...

深入探究 C++ 编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏&#xff1f; 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏&#xff1f; 2、进程句柄泄漏 2.1、何为进程句柄泄漏&#xff1f; 2.2、创建线程时的线程句柄泄漏 …...

BLE协议栈1-物理层PHY

从应届生开始做ble开发也差不读四个月的时间了&#xff0c;一直在在做上层的应用&#xff0c;对蓝牙协议栈没有过多的时间去了解&#xff0c;对整体的大方向概念一直是模糊的状态&#xff0c;在开发时也因此遇到了许多问题&#xff0c;趁有空去收集了一下资料来完成了本次专栏&…...

光伏储能直流系统MATLAB仿真(PV光伏阵列+Boost DCDC变换器+负载+双向DCDC变换器+锂离子电池系统)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

C++三大特性——继承(上篇)

文章目录 目录 一、继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 一、继承的概念及定义 1.1继承的概念 继承(inherita…...

docker系列(9) - docker-compose

文章目录 9. compose编排9.1 介绍9.2 安装9.3 compose常用命令9.4 实战Springboot部署9.4.1 准备组件配置文件9.4.1.1 redis的配置文件9.4.1.2 MySQL的配置文件9.4.1.3 SpringBoot打包文件 9.4.2 准备docker-compose.yml9.4.3 启动服务9.4.4 测试验证 9.5 实战ElasticsearchKib…...

Vue中如何进行日历展示与操作

在Vue中创建交互式日历应用 在Web开发中&#xff0c;创建一个交互式的日历应用是一项常见的任务。Vue.js作为一个流行的JavaScript框架&#xff0c;提供了许多便捷的工具和组件来简化日历的开发。本文将介绍如何使用Vue来创建一个简单但功能强大的日历应用&#xff0c;包括展示…...

SpringBoot 返回图片、Excel、音视频等流数据几种处理方式

方式一:直接针对响应对象(response)实现 @RestController @Slf4j @Api(tags = SwaggerConfig.TAG_IMAGE) @RequestMapping(SwaggerConfig.TAG_IMAGE) public class ImageController {@GetMapping(value = "/getImage")@ApiOperation("获取图片-以ImageIO流形…...

【Vue面试题一】、说说你对 Vue 的理解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;有使用过vue吗&#xff…...

vue3 axios

npm install axios import axios from axios // 创建axios实例 const request axios.create({baseURL: ,// 所有的请求地址前缀部分(没有后端请求不用写)timeout: 80000, // 请求超时时间(毫秒)withCredentials: true,// 异步请求携带cookie// headers: {// 设置后端需要的传…...

划片机:半导体生产的必备设备

划片机是半导体加工行业中的重要设备&#xff0c;主要用于将晶圆切割成晶片颗粒&#xff0c;为后道工序粘片做好准备。随着国内半导体生产能力的提高&#xff0c;划片机市场的需求也在逐渐增加。 在市场定位上&#xff0c;划片机可以应用于半导体芯片和其他微电子器件的制造过程…...

电路维修——双端队列BFS

达达是来自异世界的魔女&#xff0c;她在漫无目的地四处漂流的时候&#xff0c;遇到了善良的少女翰翰&#xff0c;从而被收留在地球上。 翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障&#xff0c;导致无法启动。电路板的整体结构是一个 R 行 C 列的网格&#…...

乌班图22.04 kubeadm简单搭建k8s集群

1. 我遇到的问题 任何部署类问题实际上对于萌新来说都不算简单&#xff0c;因为没有经验&#xff0c;这里我简单将部署的步骤和想法给大家讲述一下 2. 简单安装步骤 准备 3台标准安装的乌班图server22.04&#xff08;采用vm虚拟机安装&#xff0c;ip为192.168.50.3&#xff0…...

vue3富文本编辑器的二次封装开发-Tinymce

欢迎点击领取 -《前端面试题进阶指南》&#xff1a;前端登顶之巅-最全面的前端知识点梳理总结 *分享一个使用比较久的&#x1fa9c; 简介 1、安装&#xff1a;pnpm add tinymce / pnpm add tinymce/tinymce-vue > Vue3 tinymce tinymce/tinymce-vue 2、功能实现图片上传…...

typescript 类型声明文件

typescript 类型声明文件概述 在今天几乎所有的JavaScript应用都会引入许多第三方库来完成任务需求。这些第三方库不管是否是用TS编写的&#xff0c;最终都要编译成JS代码&#xff0c;才能发布给开发者使用。6我们知道是TS提供了类型&#xff0c;才有了代码提示和类型保护等机…...

Hadoop伪分布式环境搭建

什么是Hadoop伪分布式集群&#xff1f; Hadoop 伪分布式集群是一种在单个节点上模拟分布式环境的配置&#xff0c;用于学习、开发和测试 Hadoop 的功能和特性。它提供了一个简化的方式来体验和熟悉 Hadoop 的各个组件&#xff0c;而无需配置和管理一个真正的多节点集群。 在 Ha…...

javaee ssm框架项目添加分页控件

搭建ssm框架项目 参考上一篇博文 添加分页控件 引入依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schema…...

2023年中国非晶纳米晶竞争格局、产业链及行业产量分析[图]

非晶合金又称“液态金属、金属玻璃”&#xff0c;是一种新型软磁合金材料&#xff0c;主要包含铁、硅、硼等元素。其主要制品非晶合金薄带的制造工艺是采用急速冷却技术将合金熔液以每秒106℃的速度急速冷却&#xff0c;形成厚度约0.03mm的非晶合金薄带&#xff0c;物理状态表现…...

在业务开发中遇到的树形结构(部门、区域、职位),递归处理。

文章目录 概要对象结构示例完整示例小结 概要 本文主要记录在树形结构中会遇到的问题&#xff0c; 使用部门结构讲解&#xff0c;main方法进行演示。 1、获取部门树结构 2、根据部门id获取所有下级 3、根据部门id获取上级部门 4、根据部门id获取类似面包屑&#xff08;总公司…...

张量-算术操作函数

tf.add(x,y,name None)求和函数 示例代码如下: import tensorflow.compat.v1 as tf tf.disable_v2_behavior()x 1 y 2a tf.add(x,y)with tf.Session() as sess:print(sess.run(a)) tf.subtract(x,y,name None)减法函数 示例代码如下: import tensorflow.compat.v1 as …...

虚拟展厅有什么重要意义,了解虚拟展厅在宣传中的应用

引言&#xff1a; 随着科技的不断进步&#xff0c;虚拟展厅已经逐渐成为展览行业的重要一环。虚拟展厅是一种数字化平台&#xff0c;为观众提供了与传统展览完全不同的体验。 一&#xff0e;虚拟展厅的定义 虚拟展厅是一个通过互联网和虚拟现实技术创建的数字展示空间&#x…...

华为OD机试真题-补种未成活胡杨(Java/C++/Go/Python)

华为OD机试真题-补种未成活胡杨(Java/C++/Go/Python) 题目描述 近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。 一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树? 输入…...

Java卷上天,可以转行干什么?

小刚是某名企里的一位有5年经验的高级Java开发工程师&#xff0c;每天沉重的的工作让他疲惫不堪&#xff0c;让他萌生出想换工作的心理&#xff0c;但是转行其他工作他又不清楚该找什么样的工作 因为JAVA 这几年的更新实在是太太太……快了&#xff0c;JAVA 8 都还没用多久&am…...

Pyside6 安装和简单界面开发

Pyside6 安装和简单界面开发 Pyside6介绍Pysied6开发环境搭建Python安装Pysied6安装 Pyside6界面开发简单界面设计界面设计界面编译 编写界面初始化代码软件打包 Pyside6介绍 对于Python的GUI开发来说&#xff0c;Python自带的可视化编程模块的功能较弱&#xff0c;PySide是跨…...

python读取vivo手机截图,将满屏图片文件移动别的路径

问题之初 python读取vivo手机截图&#xff0c; 将满屏图片文件移动别的路径好多这样的图片&#xff0c;占用手机大量的内存&#xff0c;食之无味弃之可惜&#xff01;那么会复制粘贴&#x1f440;代码的我们我们今天就把这些图片筛选清理掉。 这段代码 原有逻辑的基础上&…...

【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞

要闻速览 1.以下信息安全国家标准10月1日起实施 2.GitLab发布紧急安全补丁修复高危漏洞 3.主流显卡全中招&#xff01;GPU.zip侧信道攻击可泄漏敏感数据 4.MOVEit漏洞导致美国900所院校学生信息发生大规模泄露 5.法国太空和国防供应商Exail遭黑客攻击&#xff0c;泄露大量敏感…...

2023年09月个人工作生活总结

本文为 2023 年 9 月工作生活总结。 研发编码 Alpine 容器 某工程部署于alpine镜像&#xff0c;当初看上是因为其体积小&#xff0c;其它微服务&#xff0c;在250MB左右&#xff0c;但那个工程只用50MB。最近发现时间戳转换不正确。对于同一时间字符串转时间戳函数&#xff0…...

花钱做网站/推广软文范文

移动端click事件延迟300ms问题因为历史原因,移动端点击事件会有300ms延迟,来判断用户是连续双击缩放还是点击跳转.即如果300ms内连续点击两次,则会理解为对页面进行缩放操作(当然前提是移动端页面设置为可缩放的):在一次点击之后 ...Hibernate学习笔记&lpar;一&rpar;&a…...

wordpress 打不开 怎么办/虞城seo代理地址

最近有一项需求需要把mysql中一个表中的数据同步到es中&#xff0c;分析后使用logstash的jdbc插件获取mysql中的数据&#xff0c;output到es中&#xff0c;采集的情况分两种&#xff1a;开始是全量的采集&#xff0c;之后是增量采集。已下式验证的过程&#xff1a;1.安装logsta…...

网站开发的网站/友链外链app

概念性规划方案温州落地项目&#xff1a; 温州电动汽车综合充换电站建设、温州年产15000吨用优质钛材料建设项目、温州塑料颗粒加工、温州养殖500头牛项目、温州新建丹东塔醋、无添加剂酱油及豆瓣酱生产、温州豆腐厂豆制品加工建设项目。 您不必担忧不在一个城市不好沟通&#…...

php笔记网站/今日军事新闻热点事件

一、常用合计方案 在有专业报表工具之前&#xff0c;常用的实现方案有&#xff1a; 1&#xff09; SQL “select sum(字段) from 表 group by 字段 order by 字段“可以实现简单的分组数据合计、条件合计&#xff0c;这种方式有一个很明显的缺点&#xff0c;就是随着合计需求…...

心悦做宠物的网站/seo有些什么关键词

14.1 组件开发基础 CDD 基础 CDD&#xff08;Component-Driven Development&#xff09; 自上而下从组件级别开始&#xff0c;到页面级别结束 先从相对完的的设计中抽象出来组件&#xff0c;先隔离开发组件然后再开发页面 CDD的好处 组件在最大程度被重用并行开发 对单个…...

百中搜网站建设/宁波seo网络推广多少钱

考研调剂公告各院校已经发布出来了&#xff0c;下面由出国留学网小编为你精心准备了“2020年成都信息工程大学统计学院考研调剂公告”&#xff0c;持续关注本站将可以持续获取更多的考试资讯!2020年成都信息工程大学统计学院考研调剂公告一、学院简况统计学院是学校办学历史悠久…...