自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(16)
  • 问答 (1)
  • 收藏
  • 关注

原创 汉诺塔_最优通解(待证)_碟子移动步骤

汉诺塔三柱以上一般解,“Frame-Stewart Algorithm” 证明在四柱情况下最优,往上未证,当下来说应该没有更优解了。Java/Python 代码传送门三柱经典解三步递归移动 N-1 个碟子 起始柱–>缓冲柱移动 1 个碟子 起始柱–>目标柱移动 N-1 个碟子 缓冲柱–>目标柱在这三步里,起始柱,缓冲柱,和目标柱是相互转换的关系。"""@param N 需要移动的碟子数量@param src 起始柱@param buff 缓冲柱

2021-07-15 13:05:52 1057 1

原创 工控协议(三):CIP (基于EtherNet/IP) 学习笔记

CIP (Common Industrial Protocol, 通用工业协议) 是由 ODVA 提出并维护的协议。CIP 适配 EhterNet/IP, DeviceNet, CompoNet 以及 ControlNet 等网络。这里仅叙述了基于EtherNet/IP 的 CIP 协议重点。目录一:EtherNet/IP1. EtherNet/IP 通信类型二:CIP1. CIP 对象模型2. CIP 服务3. CIP 对象库3.1 身份对象 (Class ID: 0X01)3.2 参数对象 (Clas

2021-02-16 12:16:00 19615 9

翻译 移动硬盘/U盘 无法弹出,提示“设备被占用”, 一般解决方法 以及 MsMpEng.exe占用解决方法

最近遇到 win10 移动硬盘无法弹出的问题,一直提示被占用,进程也无法正常暂停,这里小结下解决方法。参考:如何解决移动硬盘和U盘正在被占用无法弹出在Windows中,U盘或者移动硬盘关不掉时,怎么知道是被哪个程序占用了呢?How to Disable Msmpeng.exe and Reduce High CPU Usage1. 关机关机是最省力的办法,但是如果是因为一些特殊原因导致的无法弹出,下次依旧可能会遇到这个问题,并且机器也不一定方便关机。2. 定位进程那走正规途径就要中止所有占用

2020-12-05 10:24:57 64274 1

原创 Unity 开发 Android 使用SSH.NET 报错 “object reference not set to an instance of an object“

Unity 版本: Unity 2019.4.10f1NuGet 版本: 2.0.1使用SSH.NET问题原因:SSH.NET 自身的问题,不适配Unity 的 Android 打包报错节点:调用SshClient的Connect函数后,返回错误 “Object reference not set to an instance”.client = new Renci.SshNet.SshClient(IP, Port, User, Password);client.Connect()注:在w

2020-10-06 05:14:06 446

原创 Unity 脚本间的参数传递 ---- SendMessage

Unity 脚本间的参数传递网上较为普遍的是用 SendMessage 来传递参数,但是都写的不太清楚。SendMessage 是GameObject自带的一个函数,能够将同类参数传给 GameObject下的同类组件。脚本作为一个组件,参数也能传递。因为是GameObject的函数,所以要先定义GameObject 的Instance,或者也可用GameObject.Find(“实例名称”) 来找到对应的实例。下图中的“DeviceStatus” 即是一个实例名称。假设要在一个已触发的脚本中将参

2020-10-02 11:05:50 4459 1

原创 工控协议(二):Modbus TCP/IP 学习笔记

注:本文内容是对以下官方文档的整理小结。Modbus TCP/IPModbus Application protocol specificationModbus TCP SecurityModbus TCP/IP 协议就是将一般的Modbus协议封装进 TCP 协议中进行传输,其应用层的协议格式与一般的Modbus是基本一致的。对比POWERLINK的一主多从,Modbus 更加灵活,允许多主多从的存在,因为使用TCP协议需要对请求进行逐一响应,也不存在同步异步的协调问题。但正因为其使用了TCP,响

2020-08-23 09:18:07 5522

原创 工控协议(一):Ethernet POWERLINK 学习笔记

注:本文内容基于 ETHERNET POWERLINK 的官方文档 EPSG DS 301 V1.3.0 进行整理小结。Ethernet POWERLINK 是一个运行在数据链路层上的协议,该协议本身的设计目的是为了满足工业控制中的实时控制需求,低延迟。Ethernet POWERLINK 在使用时不需要额外分配 IP 地址,因为它的交互基于数据链路层,只需要物理地址(MAC)即可实现设备间的交互。Ethernet POWERLINK 也提供了在数据传输层进行交互的方式来满足远程的一些需要,但是限制比较多

2020-08-14 14:26:20 4773

原创 Python 多线程 Thread (三):巧用Flag实现线程间交互,暂停,停止等控制

Python 多线程 Thread(一):如何构造新的线程Python 多线程 Thread(二):Thread 类的几种方法 Python 的 Threading 类本身没有暂停,停止的控制方法,要实现这些功能的话可以在run方法中添加一系列的 标志(Flag)检查来实现。需要注意的是,用这种方法实现的暂停或者停止并非即时生效的,它需要等该线程运行到检查命令时方能生效。如果要使其反应更迅速,你可以添加尽可能多的检查命令。举例:线程一:开始运行后将计算 1+2+3+…+100 并返回结果,线程二:

2020-08-04 04:58:35 1927 3

原创 通过树莓派了解钓鱼活动是怎么进行的,又该如何防范(三):无线网络强制门户认证及其在树莓派上的实现

前景提要:通过树莓派了解钓鱼活动是怎么进行的,又该如何防范(一):名词介绍以及环境搭建(树莓派设为无线入口)通过树莓派了解钓鱼活动是怎么进行的,又该如何防范(二):DNS扮演的角色及其在树莓派上的应用(服务器搭建,DNS配置)强制门户认证所谓强制门户认证(Captive Portal),就是用户连接无线网之后并非直接获得互联网的连接权限,而是需要通过该无线网站点提供者所要求的身份验证之后才能得到访问互联网的许可(该许可由无线网站点提供者给予)。你可以把无线站点想象成外卖平台,你要下单需要通过这个平

2020-06-14 03:43:16 843

原创 通过树莓派了解钓鱼活动是怎么进行的,又该如何防范(二):DNS扮演的角色及其在树莓派上的应用(服务器搭建,DNS配置)

本篇通过介绍DNS的工作原理来阐明DNS污染之后的钓鱼攻击是如何执行的。使用树莓派作为实验载体,需要读者有基本的html基础,linux基础。简单介绍了linux系统下DNS的配置以及服务器的配置。DNS 是什么,工作机制是什么?DNS 全称为 Domain Name System,译为网域名称系统。互联网最初识别计算机地址的方式只有IP地址,在使用过程中,随着接入的服务器越来越多,IP地址不能够方便人们使用,其表现形式不够直观,不便于用户记忆。所以推出了DNS解决方案,本质类似与一个字典,将IP地址与

2020-06-03 08:46:29 323

原创 通过树莓派了解钓鱼活动是怎么进行的,又该如何防范(一):名词介绍以及环境搭建(树莓派设为无线入口)

科技在发展,时代在进步,钓鱼也在随着科技的发展延伸出多种形式,河钓,海钓,网钓,本篇文章会以树莓派为例,介绍较为常见的钓鱼方式是如何实施的,以及现有的防范手段。钓鱼一般的不法分子会制作一个虚假网页站点,所谓虚假不是说这个站点不存在,而是说这个站点的布局是仿照其他正规的网站制作,而不知情用户在该网站输入的内容会被不法分子获得并且利用,通常情况下钓鱼网站会伪装成网购页面,中奖页面以期获得用户的信用卡等支付信息,也有用作政治目的的(普通老百姓接触不到)。建立一个钓鱼网站需要什么呢?其成本是非常之低的,一个

2020-06-02 12:30:06 1027

原创 Python 多线程 Thread(二):Thread 类的几种方法

threading 的 Thread 类内置了如下几种方法及属性属性/函数描述start()一个Thread对象只能调用一次start(),重复调用会引发RuntimeError的错误,其本质是在一个单独线程中调用run()函数。run()要运行的部分join(timeout=None)等待线程终止返回None,如果设置了timeout,当超时后,返回None。若在线程启动之前调用,会引发RuntimeError的错误。name单纯的字符串,默认名称由函数设置

2020-05-31 13:04:57 1401

原创 Python 多线程 Thread(一):如何构造新的线程

在运行代码的过程中,cpu都是逐行逐条执行的,但在实际生产使用过程当中,会需要遇到双线程或多线程同时运作的情况,其本质是调用一个额外的寄存器来处理另一线程,python的threading 库可以满足这种需要。版本–Python 3.7构建 Thread 对象定义一个 Thread 类有两种方式,一是在构造函数中直接调用一个要执行的函数,二是覆盖创建的类中的run()方法。不管哪种方法定义的Thread类,都要通过内置的start()方法来启动线程。Thread也内置了 is_alive()方法用来判

2020-05-31 12:03:42 542

原创 Terminal ANSI Escape sequences 终端 ANSI 转义序列(终端指令)

前言最近试图用Python 实现一个 SSH Terminal,数据的发送不难,问题出在对象的返回值上,在执行某些命令的时候会返回一些 类似“x1b[22;34H\x1b[1K \x1b” 的数据。略微做了点研究,这些数据是Terminal的一种控制指令,代表了诸如颜色,提示音,清屏,光标移动 等等含义。这里对找到的资料做了一个小结。控制字符及转义字符通常会直接执行而不显示在终端屏幕上,但如果要自己写一个类似终端的控制,则需要对这些转义字符进行妥善处理。丢弃或者按其本意创建相应函数。ANSI其原名

2020-05-17 13:09:58 3319

原创 删除TKINTER TXT 文本框中最后一个或几个元素

网上关于 txt.delete(index1,index2)的用法说明有很多,但基本都只提了index的格式是“line.column”, 那这里的一个问题就是你怎么确定自己要删除的部分从哪里开始到哪里结束。line 从1开始,column从0开始,column可以为end,line不行。## 清空全框txt.delete("1.0",END)## 清空某一行line="5"txt.delete(line+".0",END)## 删除最后一个值txt.delete(END,END)## 删除

2020-05-17 03:30:32 1865 2

原创 通过Python 打开各系统(MAC, LINUX, WINDOWS)下的终端 (Terminal)

Python 打开 MAC, LINUX, WINDOWS Terminalos.system() 是python自带的并适用于各平台的一个函数,其主要作用就是执行终端命令。这里介绍了一下如何通过这个函数打开各个平台的终端,网上大多是关于如何执行终端命令,对终端的打开提及较少,这里做一个简单的总结。(有人可能会想为什么需要通过代码打开终端这种多此一举的行为,而不是直接打开,嘛,有些人的需求比较特殊。)Windows:打开一个终端:os.system('start cmd')打开终端的同时执行指

2020-05-16 12:17:21 6254 4

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除