自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (8)
  • 收藏
  • 关注

原创 .net下的面向工控领域的远程方法调用(RMI)中间件,通信层实现

在协议栈实现的基础上,如何将封包后字节流发送到远端设备,或从远端设备接收封包的字节流,则需要通信层辅助实现,通信层负责连接构建、监听、会话管理等,是在远程方法调用,代码编写的最底一层,其中连接的管理、数据调度的分离等,一直是底层通信服务端开发人员在不断解决的问题,要做到更多的性能优化,比如异步IO、重叠IO、IO完成端口等,每一种方式无不是在尽可能提高通信的效率,增大并发的连接数,会话的稳定等。

2016-08-27 10:03:50 1176

原创 .net下的面向工控领域的远程方法调用(RMI)中间件,客户端协议栈应答端实现

远程方法调用,在服务器端执行完毕后,其反馈结果也必然是,按照字节流的方式返回,服务器端按照通信协议,做封包处理,而客户端的应答处理部分,从通信连接会话上,接收到待解析的字节流数据,负责解析,转化成客户端可执行的结构体数据。解包过程时,需要从外到内逐级向下,上级解包状态决定了下级解包时,调用的消息处理器。下面是同步调用过程的客户端协议拆包过程:1      通信协议包格式

2016-08-25 20:02:38 1641

原创 .net下的面向工控领域的远程方法调用(RMI)中间件,客户端协议栈请求端实现

为了实现客户端与服务器端的透明传输通信,必须在客户端方法调用时,自动对调用方法对应的参数、值、返回类型等进行流化处理,在服务器端能根据流化后的字节流,自动实现反向解析。在对通信协议封装的过程中,因此引入了客户端协议栈,客户端协议栈,分两部分,发送部分和接收部分,其中发送部分为消息封包过程,需要进行消息封包拦截处理,而接收部分,为消息解包过程,需要进行进行消息解包处理。其中封包过程,

2016-08-24 12:19:10 760

原创 .net下的面向工控领域的远程方法调用(RMI)中间件,通信协议设计

最近正在完善一套面向远程方法调用的中间件,中间件设计初衷主要用于工控领域的分布式控制,因为中间件在前期已做了部分,但在框架化的设计上有问题,因此重新对底层协议进行修订。修订此协议的目的是,配合Trace.RMI.Client.dll和Trace.RMI.Server.dll,两个调用组件的底层通信协议使用的,此协议中,如果需要客户端注册服务器端的回调应用,则必须在客户端启用长连接通信协议。

2016-08-12 21:59:03 497

Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL,源代码实现

编写API的目的,Zebra官方提供的Unicode转化组件FNTHEX32.DLL,是一个非托管组件,托管环境下还需要再封装。 该组件直到现在还未找到对应的64位程序兼容组件,为了解决32位和64位的兼容问题,最后编写开发此API, 此API完全用.net开发,无需考虑兼容性问题,实现与FNTHEX32.DLL相同的效果。 此API改善了FNTHEX32.DLL中的字体问题,支持windows下所有字体。 程序处理思路: 先将文本用GDI+做绘图, 在内存中绘制出文本对应的图形, 然后将图形进行像素点取点处理, 取出每一个像素点,进行灰度处理, 按照0-255的灰度值,进行黑白判断, 此处取了一个中间一点的值,180,作为黑白分解点, 取出的黑白点,按照01组合,每八个像素点组合成一个字节,不满0填充,0代表白色像素点,1代表黑色像素点 将字节转化成对应的16进制字符,完成无压缩数据获取 在无压缩数据的基础上,按照ZPL指令中进行压缩,可以大量缩减字节长度,ZPL压缩参见ZPL协议

2022-11-22

Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL

编写API的目的,Zebra官方提供的Unicode转化组件FNTHEX32.DLL,是一个非托管组件,托管环境下还需要再封装。 该组件直到现在还未找到对应的64位程序兼容组件,为了解决32位和64位的兼容问题,最后编写开发此API, 此API完全用.net开发,无需考虑兼容性问题,实现与FNTHEX32.DLL相同的效果。 此API改善了FNTHEX32.DLL中的字体问题,支持windows下所有字体。 程序处理思路: 先将文本用GDI+做绘图, 在内存中绘制出文本对应的图形, 然后将图形进行像素点取点处理, 取出每一个像素点,进行灰度处理, 按照0-255的灰度值,进行黑白判断, 此处取了一个中间一点的值,180,作为黑白分解点, 取出的黑白点,按照01组合,每八个像素点组合成一个字节,不满0填充,0代表白色像素点,1代表黑色像素点 将字节转化成对应的16进制字符,完成无压缩数据获取 在无压缩数据的基础上,按照ZPL指令中进行压缩,可以大量缩减字节长度,ZPL压缩参见ZPL协议

2017-10-31

.net TCP 下的RMI测试Demo

.net TCP 下的RMI测试Demo

2016-09-25

基于.net TCP双向监听RMI组件Demo

基于.net TCP双向监听RMI组件Demo

2016-09-25

Winform通用异步界面调用

Winform通用异步界面调用

2016-09-11

Winform界面异步调用

Winform界面异步调用

2016-09-11

对IncJet喷码机的网口通信协议进行了驱动层的封装

对IncJet喷码机的网口通信协议进行了驱动层的封装

2016-08-27

IncJet喷码机TM1,网口协议驱动程序

对IncJet喷码机的网口通信协议进行了驱动层的封装

2016-08-19

通用日志记录组件

/* 整个日志记录的调度全部统一放在公共组件中,使用者只需要构建两个派生类,实现简单灵活,当前只针对写入到文件的日志记录,后面逐步增加到数据库的结构化日志存储接口 * 一个派生类,用于指定其实现的日志记录类型,另一个派生类,用于设置日志记录配置信息 * 通用日志记录组件,采用统一的写入接口,在内部根据外部的派生类,实现自动的日志信息分拣 * 由于通用日志记录组件内部,会有几级的缓存调度处理,要结合全局消息中心进行配套启停使用详见Program.cs启动项,可根据配置信息,进行调度设置 * 日志写入接口自动实现线程数据同步,在不同的线程下写入日志记录,无需关注线程数据同步,并且日志记录写入为无阻塞处理,不会影响主业务线程的任何调度 * 多进程运行,根据进程唯一标记,自动对记录文件进行标记,防止标记文件共享冲突 */

2014-12-17

空空如也

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

TA关注的人

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