专注

导航

2012年1月5日 #

ModBus RTU协议CRC校验方式最简实现

摘要: 1: /// <summary> 2: /// 计算CRC校验码(0:地位,1:高位) 3: /// </summary> 4: /// <param name="byteData">输入参数:CRC值</param> 5: /// <returns>返回值:byte[],2位,0:地位... 阅读全文

posted @ 2012-01-05 01:21 陈啊M 阅读(2104) 评论(0) 推荐(0) 编辑

2012年1月4日 #

序列化反序列化 (binary/xml) - 常用代码搜集,方便复用(转)

摘要: 二进制序列化 首先。你被序列化的类需要用[Serializable]特性修饰,例如: view plain [Serializable] public class AA { public int i = 5; } 那么你可以用如下方法序列化和反序列化: view plain /// <summary> /// 序列化为二进制字节数组 /// </summary> /// <param nam... 阅读全文

posted @ 2012-01-04 01:20 陈啊M 阅读(324) 评论(0) 推荐(0) 编辑

C# 串口操作系列(5)--通讯库雏形(转)

摘要: 串口是很简单的,编写基于串口的程序也很容易。新手们除了要面对一堆的生僻概念,以及跨线程访问的细节,还有一个需要跨越的难题,就是协议解析,上一篇已经说明了: 一个二进制格式的协议一般包含: 协议头 + 数据段长度 + 数据 + 校验 一个Ascii格式的文本协议,一般包含: 数据头 + 正文 + 数据结束标识 类似的命令可能很多,类似的代码也会重复写很多次。对于我,并不觉得这个有任何难度,但是,很多... 阅读全文

posted @ 2012-01-04 01:18 陈啊M 阅读(384) 评论(1) 推荐(0) 编辑

C# 串口操作系列(4) -- 协议篇,文本协议数据解析(转)

摘要: 上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾。即: 协议头 + 数据 + 校验 + 数据尾 。 文本方式的数据比较容易分析。如果数据缓存,可以考虑用StringBuilder。或是不缓存也可以。文本格式数据大多有换行结尾。稍微修改即可。例如分析常见的NMEA 0183格式的卫星坐标数... 阅读全文

posted @ 2012-01-04 01:11 陈啊M 阅读(393) 评论(0) 推荐(0) 编辑

C# 串口操作系列(3) -- 协议篇,二进制协议数据解析(转)

摘要: 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面。 我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44 05 01 02 03 ... 阅读全文

posted @ 2012-01-04 01:10 陈啊M 阅读(439) 评论(0) 推荐(0) 编辑

C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?(转)

摘要: 第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁。天哪,我可不是武断,算了。不要太绝对了。99.9%的人吧,都遇到过这个问题。我想只有一半的人真的解决了。另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了。 你看到我的文章,就放心吧,这问题有救了。我们先回顾一下上一篇中的代码: 1: void c... 阅读全文

posted @ 2012-01-04 01:06 陈啊M 阅读(280) 评论(0) 推荐(0) 编辑

C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子(转)

摘要: 一个基本的串口程序,既然是个程序了。我们就先从功能说起,包含 串口选择 波特率选择 打开 关闭 接受数据显示 发送数据输入 发送数据 数据量提示以及归零 好吧,有了这些功能,我们就先画出界面。例如: 这里,波特率就定死几种好了。直接界面上添加2400,4800,9600,19200,38400,57600,115200 comboPortName这里,为了我们的软件能通用所有电脑避免每次查询的效率... 阅读全文

posted @ 2012-01-04 01:01 陈啊M 阅读(407) 评论(0) 推荐(0) 编辑

2011年12月30日 #

C#位运算(转)

摘要: 在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表2.9所示。 运算符号 意义 运算对象类型 运算结果类型 对象数 实例 ~ 位逻辑非运算 整型,字符型 整型 1 ~a & 位逻辑与运算 2 a & b | 位逻辑或运算 ... 阅读全文

posted @ 2011-12-30 22:49 陈啊M 阅读(260) 评论(0) 推荐(0) 编辑

2011年12月20日 #

.NET中对串口(COM)读写操作方式汇总(转)

摘要: 摘要:最近总结了串口(COM)读写操作的三种方式: 第1种方式是采用微软在.NET2.0推出了一个串口控件,SerialPort类,但必须是.NET2.0才可以 第2种方式是用API写串口通信,虽然难度高,但可以方便实现自己想要的各种功能 第3种方式是通过采用Visual Studio 6.0中原来的MSComm控件这是最简单的,最方便的方法,但需要注册 以下详细分析了每种方式的使用方式........ 阅读全文

posted @ 2011-12-20 02:02 陈啊M 阅读(508) 评论(0) 推荐(0) 编辑

2011年12月7日 #

c# 操作Sqlite批量插入数据

摘要: 本身sqlite没有提供批量插入的机制,所以,我们需要通过事务处理,首先构件下面方法: 1: /// <summary> 2: /// 执行多条SQL语句,实现数据库事务。 3: /// </summary> 4: /// <param name="SQLStringList">多条SQL语句</param... 阅读全文

posted @ 2011-12-07 17:26 陈啊M 阅读(4157) 评论(0) 推荐(0) 编辑