自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (26)
  • 收藏
  • 关注

原创 冗余系统设计前提

并非所有设备都可以设置冗余,冗余系统的设计相比非冗余系统具有更严格的限制。符合以下条件的设备才是可行的:1、没有随机出现的未知数量的变量实例2、数据存储结构是固定的如果一台设备运行过程中会随机出现未知数量的某种变量的实例,或数据存储结构是自由的,就意味着无法对这些数据进行有效的同步,此时的冗余设备是不稳定的。且冗余设备的恢复无法实现。具体可以实现冗余的设备有:1、不保存变量的设备:RTU、单稳态继电器等都属于此类;2、组合逻辑模块:使用传统梯形图编程的PLC、按照组合逻辑方式开发

2020-11-16 09:16:52 37

原创 工业通信网络结构

工业通信网络结构工业通信网络包含所谓的工业现场总线、局域网、公网等概念。这些概念在物理环境下并不是界线分明的,是一种主观上的分类。在物理环境下,目前工业网络结构都是设备与双绞线之间的通信。可以互相通信的设备与双绞线的集合称为网络。当网络中含有工业生产、加工、安防设备时,此网络可以称为工业通信网络。工业通信网络与其它网络命名不是互斥关系,同一个网络可以有多种定义。网络结构是对设备通信逻辑的设计理念,目前已有的网络结构有多主结构(如:CANOpen)、一主多从结构(如:Modbus)、一从多主结构(如:

2020-11-10 12:04:23 35

原创 互联网发展终端和桌面的未来

对于像我们这一代的年经人而言,大数据、云技术貌似是未来科技发展的主流方向。然而,了解过计算机发展的历史后,这些所谓的“高科技”其实是计算机行业中最为古老的东西。事实上目前人类掌握的所有技术都是古老的技术,现代与过去的区别在于外观、名词、规模,共同点在于原理、结构、建设方式。分布式和集中式如何定义的?其实分布式和集中式是同一事物的两个方面。一般用于区分依赖互联网的网络应用和自由的单机应用。当我们看到一个应用的用户群的形态时,我们发现网络应用的用户分布于世界各地,单机应用的用户只能在一个位置。于是,基于此种

2020-10-18 11:43:40 79

原创 对一些关于编码格式方面的老生长谈做一个重新的思考

一个函数中源代码不超过30行这个建议的原始意义在于使一个函数能够在显示器上完全显示。而多数的显示器大约就只能显示30行源码。遵循这一建议后,我们将会发现一个问题,虽然单个函数的可读性提高了,但是代价是为了分散源码而不得不产生大量的一次性的函数。这些一次性的函数不光使程序整体变得凌乱,在IDE中还会占用掉大纲空间。总体上看,提高单个函数的可读性而使工程更混乱并不可取。最初提出此建议的人,在当时的历史背景下,他所看到的工程是结构简单、功能单一的程序,甚至于一个进程只是为了进行一个数学运算。然而软件技术发

2020-10-14 10:32:57 32

原创 工控机JVM启动参数堆大小的设置建议

由于工控机上的内存一般都不大,多为2G或4G,为了延长寿命,通常会把虚拟内存关掉,而操作系统会用掉一半的内存,那么能够给应用程序使用的内存就很小了。其实只运行一个JVM的情况下,JVM会适应操作系统而自动调整堆大小,所以正常2GB以上的内存即使安装64位Win10也没有问题。但是如果还需要使用多个其他的辅助程序的情况下,JVM浪费内存的毛病就可能会导致系统不正常。工控机经常会安装一些辅助程序,比如SQL Server社区版、内网穿透客户端、VPN客户端,这些应用都需要消耗一些内存,JVM随机浪费内存的情

2020-09-16 09:45:03 43

原创 浅谈公共框架、定制框架和无框架

正规的软件工程总是遵循某些框架,以便于防止员工更换导致项目无人接手。几乎所有的框架都无法从根本上解决代码变乱的问题。其原因在于自顶向下的设计模式无法适应无限变更的工程。但总是一种让它越来越乱的方法能让代码继续维护下去。当软件遵循公共框架的时候,反编译的代码就具有一定的技术价值,就产生了技术风险。一些小工程和不正规的团队的工程或特殊工程没有按公共框架来做,这些代码即便开源也不会有人问津。因为即使看得懂,也无法简单地利用。此外,还有无框架工程。为了各种目的,公司不允许工程师深入了解一个订单的需求,工

2020-08-19 10:29:26 87

原创 Python与JAVA仿三菱PLC的性能比较

测试背景是一款自动化软件平台上的逻辑模块性能对比。能够实现复杂逻辑的目前有结构化文本(指令表)和Python(Jython)两个。三菱指令的解释器是原创的,因为没有相关的Java支持。Python程序的解释器是Jython2.7.2。由于功能等级不同,三菱指令的编译时间较快,对程序的修改是无缝接入的。Jython的compile函数调用时间约5秒,但可以使用Python的高级功能。实际运行时不再编译,所以这个时间没有测。编译完成后运行几分钟后,对逻辑区的运行时间进行测量,排除内部IO区的干扰(例

2020-08-18 16:29:52 154

原创 带有点的IPv4输入框和带冒号的时:分:秒输入框的制作方法

固定格式文本框在Windows控制面板中的网络配置和系统时间设置中有出现过。但是MFC、JavaFX、SWT、HTML中都没有这种控件。假设这是一个系统控件,为什么又不让应用层使用呢?显然假设不合理,那么也就是说这种固定格式文本框并不是一个系统API提供的功能。固定格式文本框的本质是一个不可编辑的可见文本框和若干个透明背景的小文本框。文本框的背景颜色可以设置成透明,再把透明背景的文本框放到一个普通背景的但不可编辑的大文本框上,看起来就好像直接操作的是那个大文本框一样。当小文本框中输入了某个分隔符或字

2020-08-10 10:24:26 56

原创 延时函数名称sleep和delay的区别

延时函数的两种常用名称是sleep和delay。一般在上位机多见sleep,单片机常用delay。那么sleep和delay的意义有何区别?sleep意为睡眠,即线程挂起,由定时器重新唤醒线程。sleep作用期间,该线程不占用CPU资源。delay意为延迟,即线程等待,由线程自身进行循环查询,在设定时间之后退出循环。delay作用期间,该线程占用CPU资源。在上位机,delay常可以和sleep组合使用,即循环查询中调用sleep,降低CPU占用率。sleep是由系统内核、固件库或特殊功能寄存器

2020-08-03 10:41:01 537

原创 生产过程的几种模型

所谓生产过程,就是指一个产品从无到有的过程。产品是一个企业用以盈利的价值载体,产品的生产,目的在于产生额外的交换价值,而不在于产生新的使用价值。对于零件加工工厂,产品是指通过对原料进行切削和变形得到的零件;对于电子加工厂,产品是指利用电子元件和PCB板料、焊料制作而成的电路板;对于装配工厂,产品是指用零件、元件、电路板、耗材等组装而成的机构或机械;对于系统软件工厂,产品是用各种低级指令和固件库程序制作的操作系统软件;对于SDK工厂,产品是用操作系统API组装而成的基本模式和算法;对于平台工厂,产品是用S

2020-07-30 14:44:44 483

原创 Java11及更高版本的JavaFX配置

自Java 9开始,JDK增加了模块系统,把JavaFX分离了出来。不过即使分离出来,JavaFX也还是属于JDK的一个插件。这种插件有两种用法,一是在JDK外部安装,通过java命令导入,二是嵌入JDK中,把JDK扩展成自带JavaFX的版本。外部安装的方法需要使用以下格式启动JARjava -Dfile.encoding="UTF-8" --module-path "D:\lab\java\Library\lib\jar\openjfx-13.0.1_windows-x64_bin-sdk\j

2020-06-11 11:00:21 1804

原创 尽量不要更改运行中的py文件

Python有一个特点,就是程序文件是文本文件。它又和bat不同,bat的更改会实时影响脚本的运行,而py文件更改不会影响已经运行的Python进程。如果要刷新py文件的更改,就必须要重新加载这个py文件。作为子进程使用时,python可以方便地更改程序,而不需要编译,只需要在上级进程重启一下就行了。Python比较适合实现需要快速修改又有复杂逻辑的业务代码。使用Python时需要注意,如果修...

2020-05-06 11:26:06 299

原创 不要使用命令行新建explorer进程的方式打开文件夹或文件

打开windows后,系统默认启动一个explorer进程。然后还可以使用命令行启动新的explorer。命令行启动explorer一般用于打开网页或文件夹,也用于以默认程序打开文件。但是新建explorer打开文件夹或文件时,这个进程不会自动退出,也不能在父进程强制关闭。多次操作后,一些低配的电脑就会卡死。explorer用于打开网页时,测试用的浏览器为360浏览器时,退出浏览器后半分钟,e...

2020-04-27 11:29:29 298

原创 用Java实现简单的上位机三菱PLC

上位机已经有丰富的编程语言,所以不再需要完整的PLC功能。提供梯形图的指令是用于快速配置的。package pers.laserpen.util.automation.plcEmulator;import java.util.*;import java.util.Map.Entry;import java.util.concurrent.ConcurrentHashMap;impo...

2020-04-20 15:38:08 888

原创 数据拼接三要素

什么是数据拼接~  任何在机器间传递多组相互独立报文且不能保证每一组报文各自同时传达的通信方式都需要数据拼接。  所谓“一组报文”是指具有独立含义(或空含义)的命令、文件、数据、信号等二进制数字。一组报文可以看作是一个二进制数字,数值大小相同的报文具有相同的含义,但具有相同含义的报文不一定有相等的数值大小。  不能保证每一组报文各自同时传达的通信方式,是指无法从物理层保证所传输的数字相互独...

2020-04-06 10:44:58 161

原创 WIN32串口通信重叠方式打开的JNI代码

/* DO NOT EDIT THIS FILE - it is machine generated */#include "JNIInclude/jni.h"/* Header for class pers_laserpen_util_communication_serialPort_NativeSerialPortUtils_JNI */#ifndef _Included_pers_...

2020-04-05 16:17:37 52

原创 二维平面覆盖算法(SolidWorks中PhotoView 360 的图块渲染顺序)

这个需求就是要在一个正方形矩阵中,写入连续的自然数,且矩阵中任意两个差为1的自然数位置要相邻。一切都是从一个[ 0 ]开始的。然后选择一个增长方向。可以向右或向下。我以向右为例,第一次增长后得到如下矩阵: 0 1 3 2 这个矩阵很简单,可以直接手工填写。但我们需要让尽可能多的自然数以连续的方式填充到正方形矩阵中。也就是达到这个效果:0 1 ...

2020-03-16 15:10:52 137

原创 Java修饰符的顺序

Java修饰符分为几个层次:1、外权限:public、protected、【空】、private2、外表现:synchronized、【空】3、内实现:abstract、native、【空】4、静态:static、【空】5、访问约束:final、volatile、【空】6、数值约束:strictfp、【空】但是按eclipse的图标显示情况,似乎并没有按层次来排序。以下...

2020-03-05 15:04:05 216

原创 西门子V20变频器Modbus通信的配置和报文

这几天找了很久西门子V20的Modbus通讯资料,基本都说不清楚。所以发此文以可操作的形式介绍一下西门子V20变频器的MODBUS通讯。假设我们现在有一台不知道什么状态的V20,首先应该进行恢复出厂设置。恢复出厂设置短按M键,进入参数设置。找到P0003,设置成0;这一步不是必须的,只是为了更快的找到需要的参数。 找到P0010,设置成30; 找到P0970,设置成21;此...

2020-02-21 11:15:34 4759

原创 弱引用的实现

所谓弱引用是指所持引用不能防止其引用的对象被释放的一种指针。实现弱引用需要额外设计一个指针包装者:struct Box { void *object=nullptr; size_t refCount=0,weakCount=0;}这个Box和object对象一样是需要new出来的。把object的指针放入Box中,再把Box指针放入一个初始的强引用容器中...

2020-01-17 14:38:53 224

原创 Java Object intern算法

Java中内置有一个String.intern方法,对于重复使用的内容相同而内存地址不同的String对象,调用intern方法可以节省内存空间。如果将String作为HashMap的键来使用,intern可以提高性能。那么今天我来向大家介绍一个针对Object的intern。Java没有提供这个方法,所以我实现了它。package pers.laserpen.util.java;i...

2020-01-16 20:53:56 99

原创 Java声音设备与二进制的转换

对网上一些代码进行整理,把多余的东西全都挖掉了,只剩下声音与二进制的转换代码。这是广大网友帮助的结果,我也不能私藏,现将代码公开如下:首先是需要一个静态工具类,它是网友们提供的代码的纯化,每一个函数代表一个独立的步骤,有多种分支,未必全都要用上:package pers.laserpen.util.multimedia;import java.awt.Toolkit;import ...

2019-12-25 16:33:02 256

原创 PLC结构化文本设计模式和算法

前言.  目前PLC应用学科并没有设计模式方面的教程,导致学员解题都得从零开始设计。梯形图无法发展出PLC的真正功能,所以我们需要以结构化文本来实现设计模式。本文以普及结构化文本为目的,将教大家结构化文本的入门和PLC编程设计模式。  本文将会讲解高度抽象的设计模式,设计模式与案例无关,并不以案例讲题。反正学校按这种方式教了那么久也没人听得懂。我将主要以理论为主,避免与具体案例绑定,以防止读...

2019-12-19 23:26:04 1215 3

原创 标准C作为子进程时的刷新问题

使用C和C++的输出流向调用的进程返回字符串时,C++代码在调用std::endl后会输出,而printf则一直到子进程退出才有输出。查看std::endl后,发现起作用的是std::cout.flush();在起作用。为了使C语言输出流也能正常向调用者返回字符串,需要找到C中的flush函数。C语言的flush函数为fflush,在stdio.h下,用法为fflush(stdout)。在...

2019-12-10 22:05:51 88

原创 精英教育和素质教育

精英教育和素质教育是两个标识符,并非字面的意义。精英教育是有素质的精英,素质教育教的是精英的素质。只是为了区分指代而采用不一样的文字组合,就像人的名字其实和人的身体没有任何关联。精英教育的最终目标是让学生成为某个标定的复制品,类似于查表法。素质教育的最终目标是让学生自理,类似于遗传算法。在社会发展的不同时期,两者的重要性不同。比如解放初期,我国的技术实力还非常原始,以西方发达国家为标定进行精英...

2019-12-06 09:35:30 265

原创 自底向上的开发

在这个急功近利的时代,自顶向下的开发模式能够帮助我们快速完成项目,争取眼前利益,于是几乎所有懂点程序的人就把自顶向下奉为圣经。然而自顶向下给我们带来了一些麻烦。由于价值观的转变,为了保证顶层结构而牺牲底层实现,导致了大量的一次性代码。每个项目都是新的,于是就有了大量的加班。如果真的想写好代码,就不能从顶层开始设计。重写一个架构要比重写一套底层容易得多,我宁愿架构错了也不希望有底层的Bug。写过...

2019-11-30 09:18:35 165

原创 IGBT反并联二极管的功能

最近看到网友们对IGBT反并联二极管存在着很大的误解,特写此文告诉大家真相。此图是三相双向逆变电路,图中我们可以看到反并联二极管的用法。当输入直流电压高于负载反向电动势时,它是一个逆变电路,将直流电变成峰值等于(或小于)直流电压的交流电(波形由驱动信号决定,常用驱动信号是SPWM正弦脉宽调制,即正弦波交流电)。当输入直流电压低于负载反向电动势时,它是一个三相整流桥,此时来自负载的反...

2019-11-29 12:04:06 3061

原创 让Octave支持中文

Octave是免费的matlab语言解释器,适合用作子程序,进行复杂的数学计算。但Octave和Matlab本身不支持Unicode字符作为标识符。如果要用Unicode字符作为Matlab程序的标识符,需要对其进行转义。Matlab程序中可用的字符还停留在早期的C语言水平,是目前支持的字符最少的编程语言。我们需要在53个标准字符中选择一个转义字符。我选择下划线作为转义字符,因为在驼峰命名法中...

2019-11-20 14:51:26 1316 4

原创 变频器定位控制笔记

变频器定位用于大功率电机的粗略定位控制,可用于电梯,自动货架起重机的升降控制。由于伺服电机的功率有限,只能用变频器进行定位。短行程的变频器定位可以使用变频器自带的模拟量比较功能,某些型号的变频器有提供两路模拟量信号输入,其中一路接电机位置传感器,另一路接定位信号,变频器会自动根据电压差控制电机正反转,达到粗略定位的目的。长行程变频器定位需要使用控制器和编码器。可以使用PLC作为控制器,需要...

2019-11-14 11:12:35 836

原创 向量法计算平面与直线的交点

-  已知有平面上三个点(ABC)坐标,直线上两个点(DE)坐标,求平面ABC与直线DE的交点坐标。  解: /** * 平面与直线的交点 * * @param plantA * @param plantB * @param plantC * @param lineD * @param lineE * @return */ public st...

2019-11-13 16:24:03 1316 4

原创 线程交接

·  所谓“线程交接”,就是指同一个任务由于某种原因,需要安排在不同的线程中运行而产生的一种流程管理操作。  mermaid   graph LR   A(开始)--  ```mermaidgraph LRA[长方形] – 链接 --> B((圆))A --> C(圆角长方形)B --> D{菱形}C --> D...

2019-10-31 17:26:16 75

原创 为什么Java的性能通常比C++好,也能做大型架构,但仍然无法取代C++

  这是因为C++对于动态库的连接更方便。现在的大型工程已经很少有完全自己开发的了,一般都是选择使用各种软件包来简化任务。很多软件包特别是商业软件包是以动态库发布的,有少数是静态库的,也有部分是开源的。软件包应该选择什么样的编程语言开发?如果使用托管的语言,那么生成的软件包将很难兼容所有的编程语言。只有C接口是兼容其他编程语言的,所以多数通用的软件包都是提供C接口。调用C接口最简单的方法就是直接在...

2019-10-28 09:16:08 482

原创 向量法计算体积的思路(没有代码了)

向量法计算体积的关键是把立体分解成锥体。立体必须是由一系列有限平面多边形封闭而成的,可以使用多边形,但一定要是平面多边形。必须密封,如果不密封就会导致体积误差。可取任意点为基准点(事实上二维空间计算平面多边形的面积也可以取任意点为基准点),立体每一表面上的平面多边形可与基准点组成一个锥体。锥体的底面积可取多边形边线上一点(也可以取同平面上任意点,但取边线点比较方便),与边线上每一线段分...

2019-10-25 11:26:04 407 3

原创 向量法计算多边形面积

  计算多边形面积的方法为将多边形分解成多个三角形,然后把这些三角形的面积相加。三角形面积为两边向量叉积除以2。  这是Java代码,目前是第3版,已经尽可能优化了,相比初版有25%的性能提升。 /** * 平面多边形面积算法3,用原点为基点(不需要从图形边线上取点)<br/> * 多计算一条线段,但减少了每一步的两次减法(起于原点的向量等于节点的坐标),使误差减小...

2019-10-22 10:07:21 719

原创 三菱PLC编程口通信上位机端报文和java示范代码

读操作:  发送 02 30 XX XX XX XX YY YY 03 CS CS  XX是寄存器地址转16进制字符串,定长4个ASCII字符,YY是读取的字节数转16进制字符串,定长2个ASCII字符,CS是对从30(含)到03(含)的每一个字节求和(字节本身的数字0~255,而非它所代表的文字含意'0'~'F')然后除以256的余数转十六进制的字符串,定长2个ASCII字符。字符串是以...

2019-10-21 09:10:20 1417

原创 三菱FX3U结构化文本编程·AB相编码器

AB相编码器原理是使用2位格雷码的变化表示编码器正转一或反转。标准的正转格雷码为{0, 1, 3, 2}不断循环,反转则是{0, 2, 3, 1}。正转时每一次从1到3计数器加1,反转时从2到3计数器减1。三菱FX3U也支持3个格雷码的检测,0可以不要,这个是非正常特性,不建议使用。命令为LD M8000OUT C251 K0用ST写就是OUT_C_32(TRUE,CC251,...

2019-10-21 08:48:47 1260

原创 讨论JAVA和QT之争

这是两种以跨平台为特色的开发方式。Qt更多被认为是一种框架,但是Qt中有新增一些C++所没有的语法,所以也可以认为是一种编程语言。Java被认为是一种编程语言,但是很多人并不知道JAVA的编程语言其实是Java SE,而他们所知的Java EE其实不是编程语言,反而是一种框架。Qt和Java到底怎么选?没有任何明确需求的前提下,我认为尽可能使用Java,因为Java能够解决Qt不能解决的问题,...

2019-10-19 11:32:24 4982 2

原创 记录有工业价值的Windows NT版本对应的Java版本号

我是从Windows XP开始遇到版本问题的,而且早期的jdk也很难找全,所以只从Window XP开始记录。这个博客只是用于记录配套相应的有工业价值的Windows系统的最大能够运行的JDK版本号:有工业价值的版本1:Windows XP -> JDK 8U112有工业价值的版本2:Windows 7 -> 暂未过时...

2019-10-12 14:30:50 102

原创 JavaFX中的ChoiceBox和ComboBox的区别

ChoiceBox ComboBox 不支持键盘直接打字 可以像TextField一样打字 放入TableView中时无边框,底色透明,只能看到文字和三角形按钮 放入TableView中时有边框,底色为标准Button颜色(不可编辑时)或TextField颜色(可编辑时) 弹出下拉菜单时,本体不保留上次的选项 弹出下拉菜单时,本体保留上次的选项,并且菜单的选中位...

2019-09-24 10:02:41 1382

原创 PWM算法

    PWM用于直流斩波,可以用于直流电升压或降压,常见的PWM用于降压。PWM利用占空比来调节单位时间内能量输出的密度,在宏观上体现为输出电压与输入电压不同。    狭义上的PWM只有一种算法,通过线性函数与常量的比较来判定这个位是输出高电平还是低电平。输出的比特流类似于“1110000000”这是一个占空比为3/10的PWM比特流,它以10个位为一个PWM周期,其中高电平占3个位,所以占空比...

2018-05-17 10:13:45 4751

精密坐标纸(doc,docx,pdf,edd四个文件,内容相同)

这是用亿图作的1mm×1mm坐标纸,四个文件(.doc;.docx;.pdf;.edd(亿图打开))是一样的内容。 大小是(80分度×80分度)×(1mm×1mm)。

2010-10-23

串口工具3合一

串口调试助手:只要开一个实例,它的两个窗格会自动关联到相联系的两个串口。 串口调试器(2002和2007):要开两个实例,一个实例的两个窗格指向同一个串口。

2011-11-10

Unicode和ANSI对照表

就是Unicode和ANSI码的对照文件。 四个文本,两个程序。 文本Unicode是Unicode表 Unicode2ANSI是Unicode文本另存为ANSI unicodeandANSI.txt是对照表的Unicode版本 unicodeandANSI2ANSI.txt是对照表的ANSI版本 有些Unicode字符在ANSI中是没有的,它们的ANSI码是“63”(问号)或者“9”(不可见字符)。 两个程序有兴趣的人自行研究了,很简单的反正。只是两个程序及要处理的文档要放在同一个目录下。

2012-05-18

开目鼠标滚轮操作脚本

  已经过时的开目CAD3.8版本无法使用鼠标中键和鼠标滚轮。本资源是用按键精灵制作的可执行程序。   双击打开程序。   滚轮向前:放大   滚轮向后:缩小   鼠标中键单击:拖动1秒钟(因为暂时没有找到合适的方法,只能做成每单击一次,进入拖动模式1秒钟)

2015-01-23

Altium Designer Summer 09破解器

破解说明:(摘抄) 1.运行AD9KeyGen,点击“打开模板”,加载ad9.ini,如想修改注册名,只需修改: TransactorName=horose horose用你自己的名字替换,其它参数在单机版的情况下无需修改; 2.点击“生成协议”,保存生成的alf文件到你的安装目录下; 3.运行ads09crack,对安装目录下的dxp.exe文件补丁,注意运行破解时软件没有运行; 4.启动DXP,运行菜单DXP->My Account,点击Add Standalone License file,加载前面生成的license文件。 注意: 1.仅适用于Build 9.3.1.19182 2.破解已去除标题上的Not signed in 3.局域网内用同一license不再提示冲突 4.仅供学习研究使用,勿用于非法用途。 horose 2010.2.15

2010-11-12

OPCUA2018年10月开发包3.1.6

从官网下载的OPCUA2018年10月最新版。 内含java开发所需要的资源及教程 lib:OPCUA的jar samples:例程 tutorial:教程(英文,官方提供) 另外还有 lib-android:用于安卓的sdk codegen:不明用法,内有commandline和maven-integration两个文件夹,估计是用于web开发的。此处还有一份教程,也是英文的。

2018-10-28

JAVA精确定时器

JAVA精确定时器,利用系统时间,使长期工作的误差稳定。 功能: ·可定时启动任务或直接启动任务 ·重复启动任务(时间间隔可在任务线程中改变,范围大于100ms,否则精度降低) 引用列表: ·import psn.razerpen.thread.AccuracyTimer; ·import psn.razerpen.thread.AccuracyTimerMission; ·import psn.razerpen.time.TimeStruct; 使用方法: //1·继承AccuracyTimerMission接口,创建一个类。 class MyTimer implements AccuracyTimerMission { //2·指定一个周期 int nDelay=1000; //3·重写run方法(如不需要使用新线程执行任务,也可留空) /** * 任务线程,本函数继承自Runnable */ @Override public void run() { System.out.println(new TimeStruct()); } //4·重写RunInCurrentThread(long nCurrentMilliSecond)方法。该方法接收当前时间,并返回下一次执行的时间。如果返回值不大于nCurrentMilliSecond则中止计时器。该方法必须重写。 /** * 接收当前时间的毫秒值,并返回下一次执行的毫秒值。如果返回的下一个时间早于当前时间,则退出 */ @Override public long RunInCurrentThread(long nCurrentMilliSecond) { return nCurrentMilliSecond+=nDelay; } } //5·创建主线程代码 public class TestTimer { public static void main(String[] args) throws InterruptedException { //6·创建一个AccuracyTimer对象,并指定一个任务。 AccuracyTimer at=new AccuracyTimer(new MyTimer()); //7·(可选)如果不需要在新线程中启动任务,则写 // at.SetNewThreadEnabled(false); //否则不写或者写 // at.SetNewThreadEnabled(true); //8·(可选)设定第一次启动的时间点SetNextMissionTime/SetNextMissionMilliSecond或延迟时间SetNextMissionMilliSecondFromNow //设置为当前这一分钟的第59秒后启动(不写此行则表示直接启动) at.SetNextMissionTime(Integer.MIN_VALUE, -1, -1, -1, -1, 59, 0); //9·启动定时器 at.Start(); //10·主线程继续 for(int i=0;i<60;++i){ Thread.sleep(1000); } //11·结束定时器 at.End(); } } 详见sample.razerpen.thread包中TestTimer及各代码文件中注释

2015-10-14

最小的UNICODE文件

生成编码文件的控制台程序。 运行后,编码保存在"D:\unicode.txt" 【精确度低-许多外国字都不能显示】 网速不给力,且只需要中文和英文部分的可以用这个。 汉字主要部分是从4E00开始的。

2011-12-31

编译JNI的gcc指令代打和测试例程

使用gcc和g++编译jni指令太长,很麻烦。所以做了一个编译工具JNIBuilder.jar。 因为是用于jni的,所以默认使用者的电脑上已经安装好Java和MinGW,并且可用。 并提供一个测试例程。功能是jni函数调用java函数弹出一个字符串,显示“在那遥远的地方,UNICODE编码转换工具。”弹窗背景色是随机的。 例程C++代码是src文件夹下名字最长的那个cpp文件。java主程序是sample.razerpen.jni.TestJNI。 JNIBuilder的使用方法是,从上到下依次点击三个按钮,选择源文件,目标文件,然后编译。自动识别C文件和cpp文件,调用gcc或g++编译。新手工具,不支持多个源文件。

2015-12-03

游戏策划英文教程

游戏开发的英文教程。本书是策划教程,不是编程教程。

2011-09-10

JAVA单、双行科学计算器和高精度计算器源码

--基于JAVA的单、双行科学计算器和高精度计算器的核心源码,见src文件夹。附有示例,见src_math文件夹。不仅可以用于开发JAVA的单、双行科学计算器,还可以简化高精度算法的代码。 --同时,本计算器核心具有很强的扩展性,只需要简单地建立一个匿名内部类对象,就可以新建一个运算符。如果需要使用单行计算器的功能,还需要保留运算符对象的引用。详见示例。 --科学计算器和高精度计算器的使用方法是一样的,只不过源码中提供的现有运算符数量不同。高精度计算器的运算符复杂一些,没有全部实现。如果使用者有需要,请自行扩展。

2016-05-10

PowerDefragmenter

快速免费的磁盘维护工具,dos界面,有图形外壳

2010-09-14

Turbe c for windows

用于turbe c标准C语言编程的应用软件。

2010-10-20

Java文件操作类

pan.razerpen.file中提供一个多对象单文件存储类FileMap和一个单对象单文件存储类FilePage。 提供方便快捷的基本类型和对象的文件存取方式。详细用法见sample.razerpen.file

2015-09-02

文字加密套装(简单的文字加密)

你想在众目睽睽之下写日记吗? 你是否想向心上人表白而难于开口。 不妨加密一下吧。 加密程序:点那个“✔  ”新建一个文件。设置密码(只能在开始的时候设一次)。然后写啊写啊写。关闭和换行的时候,编辑框里的文字会自动保存的。 读取程序:还是点那个“✔  ”打开一个文件。写入密码。鼠标左键下翻页,右键上翻页。中间轮子也是可以用的。

2012-02-28

封闭式Java Socket代码

  封闭式Java Socket代码,提供TCP UDP 阻塞和非阻塞的方法,无需知道具体实现方式,只需要Main.java(Server)Main2.java(Client)Main(UDP)三个例程,简单建立联接。SocketIO接口提供精简化的方法,一体化输入输出,TCP UDP 阻塞 非阻塞统一接口。   目前只能发String,发byte流的试验失败,nio的试验失败,希望高手解决。   UDP使用固定缓冲,多出的部分丢包处理。适用于工业控制。通用性的UDPSocketIO类希望有高手实现。   该试验针对透明协议WIFI转串口设备。

2015-03-21

Win CE5.0模拟器SDK

Win CE5.0模拟器的SDK刚下的,那家伙居然分两份上传,所以我又重新上传了一份。

2013-01-19

Visual C++2010英文教程

英文的Visual C++2010教程。比中文的易懂多了。学过Tuber C的很容易就看懂的。而且也没什么生词。

2011-10-06

VS2010用Win32开发新手模板

  本人根据教程编写的Win32项目模板,把winproc函数分解成多个函数,使用消息映射的方法来处理消息(具体操作请模仿我的代码)。   把WM_PAINT中使用的HDC句柄封装到CHDC类中,可以用这个类来完成画线,设置半透明等操作。   头文件SStory.h中有一个模板类,可以当成栈或者数组来用。   好像没有很多注释,不过打开类的定义应该就能看懂。   WinMain函数写在头文件里了。在源文件里的BuildProc()函数和BuileEvent()函数是这个模板的关键。

2013-03-31

获取质数表.zip

以8字节小端在前方式存储一系列的质数表。程序可暂停,重新启动后仍然从文件尾部开始计算新的质数。需要java8运行。质数表应以共享内存方式打开,从0位置开始,映射的指针转型为long long *类型。

2019-11-06

便携式文件夹加密器_5.5.zip

用于加密重要文件的软件(免费版),是正版的免费部分,能够满足一般用户的基本需求。如果要更高的功能,请自己购买收费部分。

2010-10-20

非阻塞的Socket类20150331

使用接口SocketIO简化Socket编程。一步建立Client,两步建立Server,一步打开UDP,全部非阻塞操作。

2015-03-31

JNI指令代打2.0

使用gcc和g++编译jni指令太长,很麻烦。所以做了一个编译工具JNIBuilder.jar。 因为是用于jni的,所以默认使用者的电脑上已经安装好Java和MinGW,并且可用。 并提供一个测试例程。功能是jni函数调用java函数弹出一个字符串,显示“在那遥远的地方,UNICODE编码转换工具。”弹窗背景色是随机的。 例程C++代码是src文件夹下名字最长的那个cpp文件。java主程序是sample.razerpen.jni.TestJNI。 JNIBuilder的使用方法是,从上到下依次点击三个按钮,选择源文件,目标文件,然后编译。自动识别C文件和cpp文件,调用gcc或g++编译。可以同时选择多个源文件,C文件和CPP文件可以混合在一起编译。 与上一版的改进是增加了错误窗口,和多文件编译支持。 需要把该工具放在源文件的母文件夹或相同文件夹。目标文件要在该工具的相同文件夹或者子文件夹。

2015-12-03

快速的傻瓜型UNICODE查询

即时输出的双向转换器,内容变化时,直接输出。 四个框分别对应 “字符” “十进制” “十六进制” “八进制” 四个编辑框都是输入。 同时,四个编辑框也都是输出。 还不会用?往四个框里随便打几个数字就明白了。

2012-01-02

Unicode快速查

32位的Unicode。 上一次发的那个用了动态库,还要安装。结果比静态的还大。 这回做成静态的,再发一次。 另外,有看到我上一次那个要安装的Unicode查询器的话,可以把它踩下去。

2012-02-28

Unicode Win7x64用

用于Win7x64的程序,静态库中使用MFC。 不知道64位有什么好处,反正做了一个。用64位的系统不用64位的软件是有点别扭。

2012-02-28

空空如也

空空如也

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

TA关注的人 TA的粉丝

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