- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 一种设备的CRC16校验算法
CRC16校验算法,在数据通信校验中是常用的校验处理算法, /// /// Obid的数据封装CRC16校验 /// internal static class ObidCRC16Service { /// /// C# CRC16校验算法 -输出是包含原有数据 ///
2014-09-08 21:27:15 891
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
通用日志记录组件
/*
整个日志记录的调度全部统一放在公共组件中,使用者只需要构建两个派生类,实现简单灵活,当前只针对写入到文件的日志记录,后面逐步增加到数据库的结构化日志存储接口
* 一个派生类,用于指定其实现的日志记录类型,另一个派生类,用于设置日志记录配置信息
* 通用日志记录组件,采用统一的写入接口,在内部根据外部的派生类,实现自动的日志信息分拣
* 由于通用日志记录组件内部,会有几级的缓存调度处理,要结合全局消息中心进行配套启停使用详见Program.cs启动项,可根据配置信息,进行调度设置
* 日志写入接口自动实现线程数据同步,在不同的线程下写入日志记录,无需关注线程数据同步,并且日志记录写入为无阻塞处理,不会影响主业务线程的任何调度
* 多进程运行,根据进程唯一标记,自动对记录文件进行标记,防止标记文件共享冲突
*/
2014-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人