gradle安装包国内下载以及maven仓库配置以及其他注意点

目录 安装包国内下载 依赖 jar 下载加速 编译注意点 jdk 与 gradle、kotlin、groovy的版本对应关系 安装包国内下载 日常接触的项目里使用 gradle 构建的不多,但是很多开源的用了这个,项目需要下载对应的 gradle 安装包,对于下载默认访问的地址是 services.gradle.org,这个域名解析到了美国,鉴于国内网络问题,访问境外网络慢。 国内是否有开放 gradle 的安装包镜像呢?经过一番网上搜索以及在开源镜像站查找,找到了目前只有腾讯云做了这个。 https://mirrors.cloud.tencent.com/ 亲自试了一下,下载速度确实快。 以 gradle 8.4.0 为例,官网访问地址如下 https://services.gradle.org/distributions/gradle-8.4-all.zip 此地址需要重定向到 github https://github.com/gradle/gradle-distributions/releases/download/v8.4.0/gradle-8.4-all.zip 但是腾讯云的就不用 https://mirrors.cloud.tencent.com/gradle/gradle-8.4-all.zip 依赖 jar 下载加速 为了加快 jar 的下载速度,需要修改 gradle 目录下的 build.gradle,在其中加入以下内容 allprojects { repositories { mavenLocal() maven { url 'https://maven.aliyun.com/repository/public/' } mavenCentral() maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } } } 至于 maven 加速地址,使用哪个无所谓,只要引入的 jar 对应的 groupId、artifactId、version 都能找到就可以。 除了阿里云,目前还有腾讯云、华为云以及一些开源镜像站点都有开源的 maven 中央仓库,但是国内的这几个云厂商名气大一些,可以优先使用这些。 编译注意点 在 gradle/wrapper/gradle-wrapper.

通过对象轮换实现 LRU 缓存结构

文章目录 通过两个对象轮换,按照是否访问实现内容长久保存rollup 的缓存实现 export default function (max) { //max 缓存容量 var num, curr, prev; var limit = max || 1; function keep(key, value) { if (++num > limit) { prev = curr; // 超过容量时当前对象变成缓存 reset(1); ++num; } curr[key] = value; } // 1 是否清空缓存 function reset(isPartial) { num = 0; curr = Object.create(null); isPartial || (prev=Object.create(null)); } reset(); return { clear: reset, has: function (key) { return curr[key] !== void 0 || prev[key] !

nvm: node版本管理工具

有时候需要新旧项目一起开发,但是旧的项目用的node版本比较低,也不好直接升级,所以我们可以使用nvm 来进行node版本管理 1. 准备工作 先删除掉原来的nodejs 下载nvm: 官网地址:Releases · coreybutler/nvm-windows · GitHub 百度网盘 请输入提取码 2. 安装 1) 点击nvm-setup.exe 进行安装,安装的时候 注意下面这一步的时候 ,是选择要使用的node版本的安装地址,会被自动添加到系统环境变量 安装完毕之后 cmd 中 测试是否安装成功, nvm -v 2) 如果是安装在C盘,管理员权限运行 3) 编辑解压目录下的`settings.txt`文件(不存在则新建) root 配置为当前 nvm.exe 所在目录(路径) path 配置为 node 快捷方式所在的目录(路径)(一般选择和nvm文件同级) arch 配置为当前操作系统的位数(32/64) proxy(代理) 不用配置` window下node版本切换:先创建一个快捷方式,切换不同版本时,把快捷方式指向不同版本的文件夹; node/npm 镜像映射: node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.taobao.org/mirrors/npm/ 3. 报错 nvm install xxx (安装node): access is denied 权限问题 因为安装在C盘 ,需要使用管理员权限运行cmd 重现执行该命令 nvm use xxx (切换版本) 报 : exit status 1 乱码错误

C#使用HtmlAgilityPack解析HTML结构

using System; using HtmlAgilityPack; class Program { static void Main() { string html = "<td>Value1</td><td>Value2</td><td>Value3</td>"; // 使用 HtmlAgilityPack 解析 HTML HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); // 获取所有 <td> 元素 HtmlNodeCollection tdNodes = doc.DocumentNode.SelectNodes("//td"); //获取带有 align="left" 属性的 <td> 元素,可以使用 XPath 表达式来选择具有指定属性的元素。 // 获取所有带有 align="left" 属性的 <td> 元素 HtmlNodeCollection tdNodes = doc.DocumentNode.SelectNodes("//td[@align='left']"); // 获取所有带有 align="left" 属性且包含非空文本的 <td> 元素 HtmlNodeCollection tdNodes = //doc.DocumentNode.SelectNodes("//td[@align='left' and normalize-space(text())]"); // 获取指定表格下带有 align="left" 属性且包含非空文本的 <td> 元素

用户验证FTP实验

匿名用户验证: 例:(前提配置,防火墙关闭,yum安装,同模式vmware11) 现有一台计算机huyanggw(视作服务端),IP地址为192.168.50.1,安装了vsftpd服务,并启动 另一台计算机hy02(视为客户端),IP地址为192.168.50.50,安装了ftp服务 1:使用hy02计算机操作:ftp 1920.168.50.1 可进入 Name=ftp passwd:enter(回车) exit退出 2:验证是否允许匿名用户上传文件 anon_upload_enable=[YES|NO] 操作:cd /etc/vsftpd---ll---vim vsftpd.conf 启动服务:systemctl start vsftpd 可以发现默认配置为关闭状态,打开,删除# 进入到/var/ftp,查看 为pub赋予其他人权限chmod 777 pub 匿名用户客户端建立文件aaa.txt ftp 192.168.50.1 ftp 回车 cd pub ->put aaa.txt->ls查看aaa.txt已经在目录下 3:验证是否允许匿名用户创建目录 anon_mkdir_write_enable=[YES|NO] 操作:设置anon_mkdir_write_enable=YES wq保存退出,重启服务systemctl restart vsftpd 客户端进入ftp,可以建立a300文件夹 4:验证是否开放匿名用户的其他写入权限(删除、改名) anon_other_write_enable=[YES|NO] 操作: anon_other_write_enable=YES wq保存退出,重启服务systemctl start vsftpd 客户端进入ftp,将1.txt删除 delete 1.txt 或者 del1.txt 本地用户验证: 例:(前提配置,防火墙关闭,yum安装,同模式vmware11) 现有一台计算机huyanggw(视作服务端),建立普通用户a1,a2,a3,IP地址为192.168.50.1,安装了vsftpd服务,并启动 另一台计算机hy02(视为客户端),IP地址为192.168.50.50,安装了ftp服务 可选配置项: local_enable=[YES|NO] 是否允许本地用户登录FTP local_umask=022 本地用户上传文件的umask值 local_root=/var/ftp 本地用户的FTP根目录 chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,确保安全 allow_writeable_chroot=YES 是否允许写入 chroot_list_enable=YES|NO 是否启用chroot_list_file 在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表chroot_list_file=/etc/vsftpd/chroot_list

linux ftp 服务器

Linux搭建FTP服务器 - 知乎 (zhihu.com) Linux 部署ftp服务_linux搭建ftp服务器-CSDN博客 Linux下搭建FTP服务器的方法 | 《Linux就该这么学》 (linuxprobe.com) Linux系统ftp服务设置_linux ftp配置-CSDN博客 用户验证FTP实验_vsftp 验证-CSDN博客 一、概念简介 vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件,本次实验介绍如何在Linux上安装并配置vsftpd。 FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式: 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。 FTP支持以下三种认证模式: 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器,这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。虚拟用户模式:FTP服务器的专有用户,虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。 二、实验过程 步骤一:安装vsftpd 1、运行以下命令安装vsftpd。 yum install -y vsftpd 2、运行以下命名查看是否安装成功。 rpm -qa | grep vsftpd 3、运行以下命令查看FTP服务是否开机自启动。 systemctl list-unit-files | grep vsftpd 4、运行以下命令设置FTP服务开机自启动。 systemctl enable vsftpd.service 5、运行以下命令查看FTP服务监听的端口。 netstat -antup | grep ftp 如下图所示,表示FTP服务已启动,监听的端口号为21,此时,vsftpd默认已开启本地用户模式,还需要继续进行配置才能正常使用FTP服务。 6、运行以下命名查看FTP服务运行状态。 service vsftpd status ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是: ftpusers 该文件用来指定那些用户不能访问ftp服务器。如果要root 登陆,这里面把root用户#注销 user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp vsftpd.conf vsftpd的主配置文件 步骤二:配置vsftpd 为保证数据安全,本文主要介绍被动模式下,使用本地用户访问FTP服务器的配置方法。

HTTP 414错误:请求URI过长,如何避免

在Web开发中,HTTP状态码是用于表示Web服务器响应的各种状态。其中,HTTP 414错误表示请求URI过长,这意味着客户端发送的请求URL超过了服务器所能处理的长度限制。 当请求的URI过长时,服务器可能无法正确处理请求,从而导致HTTP 414错误。这种情况通常发生在客户端发送了非常长的URL或查询参数时,或者在请求中包含了大量的Cookie信息。 要避免HTTP 414错误,可以考虑以下几点: 简化URL:尽量缩短请求的URL,避免在URL中包含过多的参数和信息。可以使用URL重写和参数合并等技术来简化URL。限制Cookie的使用:如果请求中包含了大量的Cookie信息,可以考虑限制其使用。可以将一些不必要的信息从Cookie中移除,或者将一些信息存储在客户端的本地存储中,以减少Cookie的数量和大小。使用POST方法:如果请求中包含大量的数据,可以考虑使用POST方法来发送请求。与GET方法不同,POST方法会将数据包含在请求体中,而不是URL中,从而可以避免URL过长的问题。使用分页技术:如果请求的数据量非常大,可以考虑使用分页技术来分批次获取数据。通过将数据分成较小的部分,可以降低每次请求的数据量,从而减少HTTP 414错误的发生。使用缓存:缓存可以减少重复的请求和数据传输,从而降低请求的数据量和URL的长度。可以使用浏览器缓存、代理缓存等技术来提高缓存的效率和效果。 总之,HTTP 414错误表示请求URI过长,这可能导致服务器无法正确处理请求。为了避免这种情况的发生,可以采取简化URL、限制Cookie的使用、使用POST方法、使用分页技术以及使用缓存等多种方法来优化和改进Web应用程序。希望这些解决方案能够帮助你更好地应对HTTP 414错误并提高Web应用程序的性能和稳定性。

Feign 请求动态URL

FeignClient 中不要写url, 使用 @RequestLine修饰方法 调用地方必须引入 FeignClientConfiguration, 必须有Decoder, Encoder 调用类必须以构建函数(Constructor) 的方式注入 FeignClient 类 传入URL作为参数; 代码如下: FeignClient类: @FeignClient(name = "xxxxClient") public interface XxxFeignClient { @RequestLine("POST") ResponseDto notifySomething(URI baseUri, ApproveNotifyDto notifyDto); @RequestLine("GET") ResponseDto getSomething(URI baseUri, XxxDto xxxDto); } ClientCaller类 @Slf4j @Component @Import(FeignClientsConfiguration.class) public class CallerService { private XxxFeignClient xxxFeignClient; @Autowired public CallerService(Decoder decoder, Encoder encoder) { xxxFeignClient = Feign.builder() //.client(client) .encoder(encoder) .decoder(decoder) .target(Target.EmptyTarget.create(XxxFeignClient.class)); } public ResponseDto notifySomething(String url, XxxxDto dto) throws URISyntaxException { return xxxFeignClient.

VRRP协议与原理

文章目录 VRRP协议与原理一、VRRP 协议二、单网关和多网管的缺陷1、单网关缺陷2、多网管的缺陷 三、VRRP基本概述四、VRRP工作原理1、VRRP主备份备份工作工程2、VRRP 主备路由器切换过程3、VRRP 负载分担工作过程 五、VRRP配置命令1、vrrp配置命令2、配置VRRP步骤: VRRP协议与原理 一、VRRP 协议 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,所以通过部署多个网关的方式来解决单点故障问题VRRP协议既可以实现网关的备份,又能解决多个网关之间互相冲突的问题 二、单网关和多网管的缺陷 1、单网关缺陷 当网关路由器Router A出现故障时,本网段内以该设备为网关的主机都不能与 Internet进行通信 2、多网管的缺陷 通过部署多网关的方式实现网关的备份但多网关可能会出现一些问题:网关间IP地址冲突;主机会频繁的切换网络出口 三、VRRP基本概述 VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份协议版本:VRRP v2(常用)和VRRP v3VRRP v2 适用于 IPV4网络,VRRP v3适用于 IP v4和IP v6两种网络VRRP协议报文 ​ 只有一种报文:Advertisement 报文;其目的 IP地址是224.0.0.18,目的Mac地址是01-00-5e-00-12,协议号是112 四、VRRP工作原理 1、VRRP主备份备份工作工程 选举出主 Master状态维持,Master 设备周期性地放松 VRRP 通告报文给组内其他设备,以通知自己处于正常工作状态 2、VRRP 主备路由器切换过程 当Master发生故障,则主备切换的过程Backup Master_Down_interval 时间内未收到 Master 发送的状态通告报文,则立即成为 Master。如果原 Master故障恢复,则主备回切的过程 ​ 当 Router A发现收到Router B的VRRP报文中的优先级比自己低,Router A立即抢占成为 Master 3、VRRP 负载分担工作过程 Master上:Router 传统的主备方式流量的经由单个 Master 转发,Master 负担过量 Backup上:通过配置不同的备份组,使Router B成为新备份组的Master,这样就可以分担网络中流量了 五、VRRP配置命令 1、vrrp配置命令 AR1 int g0/0/0: 进入接口模式 ip add ip地址 子网掩码: 配置ip地址 vrrp vrid 1 virtual-ip 192.

三层交换机原理与配置

文章目录 三层交换机原理与配置一、三层交换技术概述二、传统的 MLS三、基于CEF 的MLS1、转发信息库(FIB)2、邻接关系表3、工作原理: 四、三层交换机的配置1、三层交换机配置命令2、三层交换机配置步骤 三层交换机原理与配置 一、三层交换技术概述 三层交换机通过硬件来交换和路由选择数据包使用三层交换技术实现VLAN 间通信三层交换=二层交换+三层转发 二、传统的 MLS 三层转发过程中需要重新封装2层 三层交换机上,第三层引擎处理数据流的第一个包 交换ASIC从3层引擎中获悉2层重写信息,在硬件中创建一个MLS条目 负责重写和转发数据流中的后续数据。 简单地说,主机第一次ARP请求广播后,将数据发给三层交换机,交换机从3层引擎中获悉2层重写信息将其记录到底层硬盘里,并转发出去,当下一次再具有相同地址信息的数据流再次通过时,即根据此表直接在二层(数据链路层)完成转发,即“一次路由,多次交换”,有效提高了数据包转发的效率。*三层转发过程中要重新封装2层。 三、基于CEF 的MLS CEF 概念:基于拓扑转发的模型 1、转发信息库(FIB) 2、邻接关系表 3、工作原理: ①、主机A给主机B发送单播数据包 ②、交换机查找FIB表,找到下一跳地址 ③、查找下一跳地址对应的邻接关系的2层封装信息 ④、转发 四、三层交换机的配置 1、三层交换机配置命令 SW1: vlan batch 10 20 30: 建立vlan10 20 30 int g0/0/1: 进入接口模式 port link-type trunk: 选择端口类型(连接交换机) port trunk allow-pass vlan all:允许所有vlan通过 int vlanif 10: 建立虚拟接口 ip add IP地址 子网掩码: 配置ip地址 SW2: vlan batch 10 20 30: 建立vlan10 20 30 int e0/0/1: 进入接口模式 port link-type access: 选择端口类型(连接主机) port default vlan 10: 将端口加入到vlan10中 int e0/0/4: 进入接口模式 port link-type trunk: 选择端口类型(连接交换机) port trunk allow-pass vlan all:允许所有vlan通过 2、三层交换机配置步骤 创建配置,PC机配置ip地址 配置交换机SW2 配置交换机SW1 PC1与PC2、PC1与SW1都可以ping通,配置成功 三层交换机可以做静态路由,添加路由器和主机,进行配置 对SW1和SW2增加配置 PC5和PC1、PC2都可以ping通,配置完成

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 基本方向: 1.web安全方面(指网站服务器安全方面,进行渗透测试,检测漏洞以及安全性) 2.逆向破解方面(对软件进行破解,脱壳) 以下内容是针对web安全方面的网络安全技术讲解: 如果你对网络安全方面没有任何的了解,如何成为一名网络安全这个问题对你来说很迷茫的话.接下来我将从以下几个方面帮你讲解: 1.学习路线 这个方向更符合于大部分人对“黑客”的认知,他们能够黑手机、黑电脑、黑网站、黑服务器、黑内网,万物皆可黑(当然是要有授权的,不然进橘子我可不管),这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容: 2.编程语言选择 如果想成为一名网络安全工程师,肯定需要一门精通的高级语言.这里推荐使用python语言入门.当然这只是我个人的意见。 Python介绍 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。 与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。 Python的官方解释器是CPython,该解释器用C语言编写,是一个由社群驱动的自由软件,目前由Python软件基金会管理。 Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。 网安&黑客学习资料包 基于最新的kali讲解,循序渐进地对黑客攻防剖析。适合不同层次的粉丝。我希望能为大家提供切实的帮助,讲解通俗易懂,风趣幽默,风格清新活泼,学起来轻松自如,酣畅淋漓! 需要的话可以点击**CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享** 移动端逆向学习 需要的话可以点击**CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享** 学习资料工具包 压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。 需要的话可以点击**CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享** 面试题资料 独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待! 需要的话可以点击**CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享** 同时每个成长路线对应的板块都有配套的视频提供: 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取 CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 视频配套资料&国内外网安书籍、文档&工具 当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取 CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

Shopify/sarama代码库迁移事件

Shopify/sarama代码库迁移事件 今天在代码实例里执行了一下go mod tidy,结果却报错了。 yantao@ubuntu20:~/go/src/golang-examples$ go mod tidy go: finding module for package github.com/Shopify/sarama go: found github.com/Shopify/sarama in github.com/Shopify/sarama v1.42.1 go: golang-examples/sarama_kafka/client imports github.com/Shopify/sarama: github.com/Shopify/sarama@v1.42.1: parsing go.mod: module declares its path as: github.com/IBM/sarama but was required as: github.com/Shopify/sarama AI的回答 这段输出是 go mod tidy 命令在执行过程中遇到的一个错误。该错误表明,你的项目依赖了名为 github.com/Shopify/sarama 的库,但是在解析这个库的 go.mod 文件时,发现其中声明的路径为 github.com/IBM/sarama。 这可能是由于以下原因导致的: 依赖关系冲突:你可能同时依赖了两个不同的库,它们都使用了相同的 import 路径(例如 github.com/Shopify/sarama)。这种情况下,你需要检查你的依赖树,确保只引入了一个正确的版本。 库的重命名:有可能 github.com/Shopify/sarama 库已经被作者重命名为 github.com/IBM/sarama。如果是这种情况,你需要更新你的代码以使用新的 import 路径。 要解决这个问题,请尝试以下步骤: 查看你的代码,确定哪些地方使用了 github.com/Shopify/sarama 这个包,并确保你没有误导入其他同名的包。 如果你在多个地方使用了 github.com/Shopify/sarama,请确认这些引用是否指向同一个版本或分支。 如果问题仍然存在,你可以考虑手动修改你的 go.mod 和 go.

网页图标素材免费下载网站

这里是几个可以免费下载网页图标素材的的网站。这些个网站里的图表和素材,应该是都可以免费下载的。(至少我下载了几个素材是没有花钱的) Flaticon iconArchive freepik 4. iconmonstr 5. Icons and Photos For Everything 如果想下载图片,需要先完成注册,或用谷歌账号登录 6. Open-source iconography for designers and developers iconshock 指定像素与格式的图片可以免费下载 icons8 svgrepo

Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试

原文连接:Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试 – 个人资料收集 (rtplc.com) <div class="post_info_wrapper "> <p class="has-drop-cap">运动控制功能是codesys及EtherCAT通讯的重要功能,接下来对测试EtherCAT的运动控制部分,由于对这一部分功能不熟悉,所以测试程序采用ST语言,采用 case语句,方便测试各个函数的运行功能和状态。</p> <h2>工具准备:</h2> <ul><li>树莓派4B,已经按照前述方法设置好。</li><li><a href="http://www.szruitech.com/Detail%20Page%20ECR60.html" target="_blank" rel="noreferrer noopener">ECR60 步进驱动器</a>一个</li><li><a href="http://www.szruitech.com/Detail%20Page%2057.html" target="_blank" rel="noreferrer noopener">57A2步进电机</a>一个</li><li>CAT6网线一条</li><li>电源:DC24V</li></ul> <h2>Step1 树莓派准备</h2> <p>树莓派通电,有显示器的化,可以看到wifi是否连接成功,记录下此时的ip地址,由于后续Codesys连接。</p> <h2>Step2 电机及驱动器接线</h2> <ul><li>将24V电源连接至驱动器的V+、V-端子</li><li>将步进电机的A+、A-、B+、B-连接至驱动器电机接线端子,锐特的57A2电机绕组颜色定义为:红、蓝、绿、黑</li><li>网线连接:CAT6网线一端连接树莓派的网口,另外一端连接ECR60的ECAT IN端口。</li><li>完成上述步骤后,可以开通24V电源</li></ul> <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="542" src="http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-1024x542.jpg" alt="" class="wp-image-491" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-1024x542.jpg 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-300x159.jpg 300w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-768x407.jpg 768w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-1536x814.jpg 1536w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-2048x1085.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px"></figure> <p>此时可见ECR60的PWR的绿色指示灯亮起,表示驱动器供电正常;ECAT IN网口的黄色LED灯亮起,表示网线连接正常。</p> <h2>Step3 Codesys项目设置</h2> <p>打开Codesys开发环境,新建一个标准项目,并选择目标板为“Codesys Control for Raspberry PI MC SL”</p> <figure class="

Qt下载地址

下载地址 (1)windoes 平台 Qt 的下载与安装: Qt 5.15之前的版本可以离线安装,直接下载离线安装包即可: 下载地址:https://download.qt.io/archive/qt/ Qt从5.15开始,不再支持离线安装,那我们就需要下载 Qt 在线安装器,安装Qt: Qt 在线安装器下载地址:https://download.qt.io/official_releases/online_installers/

Codesys平台实现电子凸轮功能二:电子凸轮程序编写

本文链接:https://blog.csdn.net/weixin_54353890/article/details/132489667 程序块编写 双击程序块PLC_PRG,进入程序块界面。 上方可定义局部变量(仅适用于该程序块)和对功能块声明。 下方为程序,其中VAR到END_VAR之间的区域为该程序块的局部变量,如果要在外部使用要使用全局变量 在程序区,右键单击输入助手 可在类别中直接调用,同时在Application-->添加对象-->POU-->函数/功能块 编写好会自动添加到类别当中。 点击文本搜索,搜索框上输入关键字,可快速找到想要的功能块。 1)首先要为主从轴提供电源,使能轴,输入助手文本搜索MC_Power,双击该功能块自动添加到程序中。 此时,程序中的MC_Power会有红色波浪线,报错。除了必要的输入未定义外,还要在上方的局部变量框上进行声明(VAR和END_VAR之间),同时对其取别名(可以理解为MC_Power为类型,别名为该类型的变量)。同一个功能块多次调用取多个别名时,用逗号隔开即可,如下: MC_Power_1作为主轴使能,MC_Power_2作为从轴使能,将再将输入(:=为输入,=>输出)补上波浪线就会消失,如下。 2)控制主轴动起来,MC_Jog正反转点动功能块。同理,输入助手搜索双击,再声明,命名为MC_Jog_1。 输入主轴,正转(需要给一个上升沿信号,定义一个BOOL变量给定),速度为10(可自行定义一个变量来更改),加速度为100,减速度为100,其它无则如下: 3)凸轮表选择 右键输入助手,文本搜索MC_CamTableSelect,声明,定义别名。 输入:主轴、从轴,Cam表名称,触发信号(定义BOOL变量给定),有周期性,根据上面的主从轴坐标系确定,选择相对坐标(这个点相对上一个点的坐标,例如a(200,0)--->b(100,0) b点相对坐标(-100,0),绝对坐标(100,0)) SlaveAbsolute=FLASE相对坐标,则MC_CamIn_1.StartMode=relative 4)凸轮表耦合 右键输入助手,文本搜索MC_CamIn,声明,定义别名,定义上升沿触发信号BOOL类型变量v_b_camin(自定义)。 输入:主从轴,触发信号,主从轴位置不偏移,不缩放,相对坐标,CamTableID为凸轮表选择输出ID。则 5)凸轮表解耦 右键输入助手,文本搜索MC_CamOut,声明,另起名,定义触发信号BOOL类型变量(v_b_camout),上升沿有效。让从轴解耦。 6)从轴解耦后仍在运行,用MC_Stop可使其停止 从输入助手中拉出,声明,另命名,配置为从轴,触发信号BOOL变量,减速度大小。 7)挺杆ID状态值获取 右键输入助手文本搜索SMC_GetTappetValue,声明,另命名。对挺杆进行映射(MC_CamIn.Tappets),初始化MC_CamIn.Tappets的输出值为bInitValue的设定值。 所用到的声明及BOOL变量 编译一次。 4)跟踪 编译不报错,建立跟踪。Application-->添加对象-->跟踪... 跟踪名称默认即可,也可自定义,后打开 添加跟踪变量 跟踪主轴位置,输入AXIS_MASTER.fset,选择fsetPosition双击添加成功 继续添加新的跟踪变量,从轴位置 继续添加变量,第三个跟踪变量:跟踪挺杆状态。 点击三个小点 依次点击小加号展开 点击SMC_GetTappetValue_1的小加号展开,双击bTappet添加成功。 右侧点击Trace,跟踪任务选择。默认是不选的需要手动,不然编译报错。 回到跟踪页面,设置成多通道 虚拟主从轴设置 双击虚拟主轴、从轴,设置成模态,值360 6)仿真测试 在线-->点击仿真,进入仿真模式。 再编译一次 登录下载 点击登录到,弹窗选择是 回到跟踪图形界面,右键点击下载跟踪。 下载跟踪之后切换到程序块 启动仿真 先点动,给出上升沿TRUE信号 双击右边的FALSE自动取反且作为准备值(BOOL类型自动取反,变量值双击修改) 写入准备值:调试-->写入值 或者空白处鼠标右键-->写入全部值 写入后 选择凸轮表 写入 这边在哪边耦合都一样,在相对模式下都是在耦合开始那个点作为主轴的零点,从轴从零点开始动作 Cam表设置,有偏差 耦合 写入 观察跟踪图,主轴和从轴位置是否和Cam上的大致相同 解耦从轴会以原速度运行,MC_stop可以使其停止。 必要时可以进行冷复位,再试 或者略微修改程序,重新编译,选择登陆并下载 

Git 命令

https://oschina.gitee.io/learn-git-branching/ https://git-scm.com/book/zh https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C pull 根据不同的配置,可等于 fetch + merge 或 fetch + rebase。具体了解可继续读下去。 要理解它们的区别,首先我们需要明白的git的架构,它是分布式的版本管理系统。我画了张图,不仅仅涉及到git fetch和git pull,对整体理解也会很有帮助。如下: 上图展示了git的整体架构,以及和各部分相关的主要命令。先说明下其中涉及的各部分。 工作区(working directory),简言之就是你工作的区域。对于git而言,就是的本地工作目录。工作区的内容会包含提交到暂存区和版本库(当前提交点)的内容,同时也包含自己的修改内容。 暂存区(stage area, 又称为索引区index),是git中一个非常重要的概念。是我们把修改提交版本库前的一个过渡阶段。查看GIT自带帮助手册的时候,通常以index来表示暂存区。在工作目录下有一个.git的目录,里面有个index文件,存储着关于暂存区的内容。git add命令将工作区内容添加到暂存区。 本地仓库(local repository),版本控制系统的仓库,存在于本地。当执行git commit命令后,会将暂存区内容提交到仓库之中。在工作区下面有.git的目录,这个目录下的内容不属于工作区,里面便是仓库的数据信息,暂存区相关内容也在其中。这里也可以使用merge或rebase将远程仓库副本合并到本地仓库。图中的只有merge,注意这里也可以使用rebase。 远程版本库(remote repository),与本地仓库概念基本一致,不同之处在于一个存在远程,可用于远程协作,一个却是存在于本地。通过push/pull可实现本地与远程的交互; 远程仓库副本,可以理解为存在于本地的远程仓库缓存。如需更新,可通过git fetch/pull命令获取远程仓库内容。使用fech获取时,并未合并到本地仓库,此时可使用git merge实现远程仓库副本与本地仓库的合并。git pull 根据配置的不同,可为git fetch + git merge 或 git fetch + git rebase。rebase和merge的区别可以自己去网上找些资料了解下。 Commands git help xx_command git xx_command --help git --version 查看git版本 git config --global user.name "xxx_name" 全局级别的签名设置,全局的放在本用 git config --global user.email "xxx@gmail.com" 户的家目录下的.gitconfig文件中 git config user.name "xxx_name" 项目级别的签名设置,放在工作仓库的.git/config里面 git config user.

图片链接在浏览器是预览还是下载

Content-Disposition 属性是作为对浏览器对下载文件的一个标识字段 Content-Disposition属性有两种类型:inline 和 attachment inline : 将文件内容直接显示在页面 attachment:弹出对话框让用户下载 如果Content-Disposition没有设置,则默认是inline效果

CSS笔记

文章目录 1. 图片1.1 body下放图片 2. 文字2.1 文字格式2.2 Fonts 字体属性2.2.1 字体系列 - font family2.2.2 字体大小 - font size2.2.3 字体粗细 - font-weight2.2.4 字体风格 - font-style2.2.5 字体复合属性 3. 盒子某些属性3.1 圆角边框3.2 盒子阴影3.3 文字阴影 4. table表单 1. 图片 1.1 body下放图片 body下放图片 <style type="text/css"> body { background-image: url('img/1.jpg'); } 不平铺且放大,即一张图铺满整个body body { background-image: url('img/1.jpg'); /* 不平铺 */ background-repeat: no-repeat; /* 100%是放大到整个页面的意思。 */ background-size: 100%; } 横向平铺 body { background-image: url('img/1.jpg'); background-repeat:repeat-x; } 纵向平铺 body { background-image: url('img/1.