- 博客(328)
- 资源 (33)
- 收藏
- 关注
原创 用 visio 2013反转图形或镜像图形
若需要进行图形镜像操作,可提前将图形复制出一份,将复制出来的图形进行垂直反转或水平反转。选择待反转图形,依次点击“开始”→“位置”→“旋转形状”,即可根据需求进行图形反转。软件版本:visio 2013。
2023-02-27 13:35:38 8954
转载 PID算法
PID控制应该算是应用非常广泛的控制算法了。小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制。这里我们从原理上来理解PID控制。PID(proportion integration differentiation)其实就是指比例,积分,微分控制。先把图片和公式摆出来,看不懂没关系。
2023-02-12 17:29:07 2950
转载 星形接法和三角形接法电压和电流关系
参考:闲谈星形接法和三角形接法电压和电流关系电机绕组连接方式是电机设计的基础,分为星形接法和三角形接法。关于这两种接法,最容易产生困惑或者记忆混乱的地方莫过于两种接法下的电压和电流关系。两种接法下的电压和电流关系结论如下,无需多言:星形接法在星形接法,线电压是相电压的√3倍,线电流等于相电流。三角形接法在三角形接法,线电压等于相电压,线电流是相电流的√3倍。上述结论其实并不复杂,但随着时间的流逝,还是有很多朋友会产生困惑和混乱。这里面最大的原因分析下来,就是忽略了最基础和最重要的概念定义。以星型接法为例
2022-12-03 20:05:08 29875 4
原创 SQL 中 ${} 和 #{}的区别
如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”.,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id.${}在动态解析的时候,会将我们传入的参数当做String字符串填充到我们的语句中,就会变成下面的语句。$将传入的数据直接显示生成在sql中,那么我们使用 ${}的时候。
2022-11-28 19:31:32 3502 1
原创 SQL With As 用法
虽然上面的SQL语句要比第一种方式更复杂,但却将子查询放在了表变量@t中,这样做将使SQL语句更容易维护,但又会带来另一个问题,就是性能的损失。由于表变量实际上使用了临时表,从而增加了额外的I/O开销,因此,表变量的方式并不太适合数据量大且频繁查询的情况。为此,在SQL Server 2005中提供了另外一种解决方案,这就是公用表表达式(CTE),使用CTE,可以使SQL语句的可维护性,同时,CTE要比表变量的效率高得多。虽然这条SQL语句并不复杂,但如果嵌套的层次过多,会使SQL语句非常难以阅读和维护。
2022-11-28 14:47:59 3305
转载 Python方括号、花括号和圆括号的用法总结
使用list()创建列表,是list类的实例化的标准方法,可以体会list类的构造函数如何适应不同类型的参数。诚然,在多数情况下,可以使用列表代替元组,但下面的例子却可以证明,列表无法代替元组。下面的代码中,a和b都是用花括号创造出来的对象,却一个是字典,一个是集合。编码实践中,虽然在某些情况下集合是无可替代的,但集合的使用频率是“四大金刚”中最低的,我们这里不展开讨论,只说说字典的使用技巧。原来,元组初始化时,如果只有单个参数,则必须在单个参数之后增加一个逗号(,),否则,初始化结果仅返回原参数。
2022-09-21 14:48:29 7822
原创 字符集和字符编码
字符集字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集就是为每一个字符分配一个唯一的ID。Unicode字符集及UTF-32/UTF-16/UTF-8字符编码。字符编码将字符对应的ID进行编码。ASCII字符集及ASCII字符编码。GBK字符集及GBK字符编码。...
2022-07-21 09:35:04 3080
原创 Markdown如何实现表格的合并单元格
Markdown不提供单元格合并语法。在我们实际运用中,表格排列并不一致,有单元格的合并。Markdown虽然没有合并单元格的语法,但是Markdown是兼容HTML的,因此,我们可以通过HTML的方式实现单元格合并。实现单元格合并的属性。...
2022-07-19 14:27:30 23572 1
原创 已知一棵二叉树的前序遍历以及中序遍历顺序,求这棵树的后序遍历
已知前序遍历序列和中序遍历序列,可以唯一确定一棵二叉树;已知后序遍历序列和中序遍历序列,可以唯一确定一棵二叉树;注意已知前序和后序遍历,是不能确定一棵二叉树的。httpshttpshttps。...
2022-07-19 14:11:37 7803
转载 python实现二叉树的创建、前序遍历、中序遍历以及层次遍历
注意输入的格式,如下图,D结点的孩子结点,空结点用#代替,直到最后一层就可以停止输入,以下面这棵树为例,则我们的输入为ABCDE#F##G#####第二步,访问,D、G、E、B这棵左子树,同理可得,可以先把B写在最后,然后在访问左子树和右子树,以此类推…第二步,分析左子树,同理可得,先把B写在中间,因为只有D是B的左子树,那么D肯定在B的左边,以此类推…第二步,访问B、D、E、G子树的根结点B,然后是D这棵左子树和E、G这棵右子树。第一步,访问根结点A,然后是B、D、E、G这棵左子树和C、F右子树。....
2022-07-19 14:01:39 5457 1
原创 Github中的缩写(PR, WIP, PTAL, TBR, TL, LGTM, SGTM, AFAIK, CC)含义
Github中的缩写(PR, WIP, PTAL, TBR, TL, LGTM, SGTM, AFAIK, CC)含义
2022-07-18 10:29:48 5910 3
转载 Git Commit message Angular规范
如果当前commit与被撤销的commit,在同一个发布(release)里面,那么它们都不会出现在Changelog里面。如果两者在不同的发布,那么当前commit,会出现在Changelog的。比如,下面的命令显示上次发布后的变动,每个commit占据一行。ChangeLog是发布新版本时,用来说明与上一个版本差异的文档,详见后文。Body部分是对本次commit的详细描述,可以分成多行。还有一种特殊情况,如果当前commit用于撤销以前的commit,则必须以。...
2022-07-18 10:24:57 2755
原创 正则表达式与扩展正则表达式(grep, sed, awk)
Linux中用来在文件中搜索字符串的命令,如grep, sed, awk等命令支持正则表达式与扩展正则表达式。
2022-07-12 14:45:04 2983
转载 Python的实例方法、类方法、静态方法
类中定义的方法具体可分为实例方法、类方法、静态方法。通常情况下,在类中定义的方法默认都是实例方法。前面章节中,我们已经定义了不只一个实例方法。不仅如此,类的构造方法理论上也属于实例方法,只不过它比较特殊。比如,下面的类中就用到了实例方法:实例方法最大的特点就是,它最少也要包含一个 self 参数,用于绑定调用此方法的实例对象(Python 会自动完成绑定)。实例方法通常会用类对象直接调用,例如:运行结果:当然,Python 也支持使用类名调用实例方法,但此方式需要手动给 self 参数传值。例如:运
2022-07-08 16:39:03 3229
原创 Python的类变量、实例变量
参考:Python类变量和实例变量(类属性和实例属性)在类体中,根据变量定义的位置不同,以及定义的方式不同,类属性又可细分为以下 3 种类型:类变量指的是在类中,但在各个类方法外定义的变量。举个例子:上面程序中,name 和 add 就属于类变量。类变量的特点是,所有类的实例化对象都同时共享类变量,也就是说,类变量在所有实例化对象中是作为公用资源存在的。类方法的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化对象调用。比如,在 CLanguage 类的外部,添加如下代码:程序运行结果为
2022-07-08 15:33:27 1804
原创 计算机语言的分类:编译型/解释型、动态类型/静态类型、强类型/弱类型
参考:计算机语言:编译型/解释型、动态语言/静态语言、强类型语言/弱类型语言编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译
2022-07-08 11:48:19 4179 1
转载 Python的变量与对象(不可变对象与可变对象)
参考:【Python】详解 可变/不可变对象 与 深/浅拷贝对象指的是内存中存储数据的实体,具有明确的类型,在 Python 中一切都是对象,包括函数。变量作为对象的引用/别名,实质保存着所指对象的内存地址。总之,在 Python 中,类型属于对象,变量本无类型,仅仅是一个对对象的引用。而变量指向对象的数据类型若发生变化,则变量的类型亦随之改变。而赋值语句改变的是变量对对象的引用,故一个变量可指向各种数据类型的对象。不可变对象:对象相应内存中的值 不可改变,常见的有 int、float、bool、com
2022-07-08 10:24:15 1912 1
原创 Git中.gitignore的使用
参考:[Git].gitignore文件的配置使用在使用Git的过程中,有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。简单来说一个场景:在你使用git add .的时候,遇到了把你不想提交的文件也添加到了缓存中去的情况,比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务器中,但是又为了偷懒每次添加缓存的时候都想用git add .而不是手动
2022-07-07 15:11:30 2391
原创 Python的类型注解
参考:Python类型注解,你需要知道的都在这里了Python 是动态语言,其显著特点是在声明变量时,你不需要显式声明它的类型。比如这个:你看,虽然代码里没有明确指定 的类型,但是程序运行时隐式推断出它是 类型,因此可以顺利执行 的动作。除此之外,已经确定类型的变量,可以随时更改其类型,比如:Python 这种动态特性的好处是它非常的自由,大部分时候你不用纠结类型声明、类型转化等麻烦事,可以用很少的代码完成各种骚操作。但是缺点也在这里:如果你代码某些变量的类型有错,编辑器、IDE等工具无法在早期
2022-07-07 13:45:40 4893
原创 Linux常用命令总结
稳定性高业界公认:Linux服务器比Windows服务器稳定性高;多年经验了解,Linux稳定性虽然比不上在IBM小型机上运行AIX,但是比Windows服务器确实高很多。初期投入成本低硬件投入成本低:由于Linux操作系统相比于Windows先天优越性,相同硬件条件下,Linux服务器能承受负荷普遍比Windows高20%以上。软件投入成本更低:Windows服务器端产品价格普遍比较高,加上客户端用户授权费用,是一笔不小开支。Linux由于开源操作系统,甚至可以不花费一分钱。低维护成本对于入门级系
2022-07-06 16:18:50 966
原创 利用Gitlab进行代码的协作开发
Gitlab上已经存在一个repository。假设有两人需要对此项目进行协作开发,为了保证main分支不被污染,需要创建一个dev分支。依次点击→。输入Branch name后,点击Create branch。此时可能有两种情况:在本地repository打开git bash,并输入,发现并没有Gitlab上新建的分支,这是因为本地仓库和远程仓库本质上时完全独立的,想在本地看见远程仓库的信息就应该fetch一下远程的信息输入命令,然后再输入,可以看到远程仓库新建的分支了。接下来需要拉取远程分
2022-07-05 10:00:07 1651
原创 Git config命令详解
config 配置有system(系统级)、global(全局级)和local(本地级)三个。系统级配置文件含有系统里每位用户及他们所拥有的仓库的配置值。其位置为git的安装目录下的,即如果git的安装目录为,则配置文件地址为。优先度最低,其配置值可被全局级配置和本地级配置的值覆盖。一般我们很少会使用系统级的配置。全局级配置文件包含当前系统用户的拥有的仓库配置值,每个系统用户的全局级配置相互隔离。全局级别的配置默认保存在当前系统用户的主目录下的 .gitconfig 文件内。Windows通常保存在,L
2022-07-04 11:30:33 3632
原创 Git远程仓库配置SSH(以github为例)
输入命令以及。输入命令,查看配置是否正确。输入命令。然后连续敲三次回车,如果没问题你会看到如下界面输入命令,查看生成的公钥。也可以直接打开文件进行查看。打开github,点击用户头像,再点击设置。点击SSH点击New SSH key将id_rsa.pub的内容复制至Key中,输入Title后(Title不输入也可以,不输入的话会根据用户输入的Key自动填写),点击Add SSH Key。添加成功。在git bash 中输入,然后输入yes。添加成功。gitlab也是如
2022-07-04 11:28:27 3534
原创 Git基础知识及基本操作
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull上图中:观察上图可知:2.2 git创建仓库的命令命令说明git init初始化仓库git clone拷贝一份远程仓库,也就是下载一个项目2.3 git查看workspace和staging area的文件的状态的命令:使用命令后,可以看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked
2022-07-04 11:25:44 320
原创 Selenium+Java获取元素的text内容
参考:java【selenium】如何取到元素上的文本提取出“国内版”。写出xpath语句定位到内容所属元素利用如下代码,即可取出元素的text内容。
2022-06-30 15:51:33 2512
原创 Selenium常用的断言方法
具体使用方法需要查看函数原型断言第一个参数跟第二个参数是否相等assertEqual(value1,value2,msg=“assert失败”) #断言相等assertNotEqual(value1,value2) #断言不相等#msg是可选参数,用于断言失败时打印的信息断言第一个参数是否包含在第二个参数中assertIn(value,value2) #断言包含assertNotIn(value1,value2) #断言不包含断言第一个参数和第二个参数是否为同一对象assertIs(valu
2022-06-28 17:30:18 1051
原创 Selenium+Java获取页面中指定元素的数目
有一文件上传列表,如下图所示。当某一文件上传成功后,该文件将会从上传列表中消失。需求是能够动态获取文件上传列表中文件的数量。首先在html中获取到文件列表的元素,如下图所示。tbody元素即文件上传列表。文件列表中每一个文件的元素为tr。因此,获取文件上传列表中文件的数量,即获取tr元素的数目。采用xpath定位方法,获取数目的代码如下所示:...
2022-06-28 15:44:22 2362
原创 Selenium+Java定位Web界面的toast元素
参考安静_selenium—web页面定位toasttoast属于一种轻量级的反馈,常常以小弹框的形式出现,一般出现1到3秒会自动消失,可以出现在屏幕上中下任意位置,首先来看下web页面上的toast是什么样子的。这种toast,往往就存在3秒中左右,3秒中,打开浏览器这些内容都没了,怎么定位呢?打开chrome进入F12页面进入到Sources栏切换Elements栏,正常定位来查看元素这样就能够定位到toast元素了。...
2022-06-28 11:14:52 493
转载 Selenium+Java显式等待常用函数之ExpectedConditions
参考:Java+Selenium显式等待常用函数之ExpectedConditions
2022-06-27 17:59:59 772
原创 Appium+Java如何判断元素是否出现并进行相应处理?
某款app具有画中画功能(浮窗功能),当用户第一次安装该app并且点击切换画中画按钮时,会弹出系统设置框,请求出现在其他应用上。因此第一次测试该app的画中画功能时,点击切换画中画按钮后,弹出系统设置框,需要点击元素进行授权,然后返回上一级,然后再次点击切换画中画按钮,进入画中画模式。若第一次授权成功,则此后测试该app的画中画功能时(即使清除了app的用户数据),点击切换画中画按钮后,不会弹出系统设置框,会直接进入画中画模式。需求是:...
2022-06-24 17:22:56 959
Modbus_TCP上位机通信(基于LabVIEW)v1.4版本
2021-07-19
Modbus_TCP上位机通信(基于LabVIEW)
2021-06-29
MODBUS TCP通信.zip
2021-06-23
Modbus TCP上位机软件
2021-06-23
无刷直流电机基础知识及电调设计
2021-01-09
deep_learning_from_scratch_斋藤康毅
2021-01-09
基于STM32的CAN转USB模块设计(包括原理图文件、PCB文件、datasheet等)
2020-11-25
can入门教程pdf版(带书签)
2020-11-18
C#动态可移动波形显示(使用chart控件,可用于串口小助手开发)
2020-11-15
zedgraph_dll(安装zedgraph控件用的文件)
2020-11-15
人脸识别集成包.zip
2020-05-17
数学建模贪心算法(贪婪算法)求解TSP问题(C语言程序源码亲测可行)
2020-05-06
基于ZigBee技术的智能灌溉系统研究与设计.zip
2020-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人