上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 33 下一页
摘要: 上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾。即: 协议头 + 数据 + 校验 + 数据尾 。文本方式的数据比较容易分析。如果数据缓存,可以考虑用StringBuilder。或是不缓存也可以。文本格式数据大多有换行结尾。稍微修改即可。例如分析常见的NMEA 0183格式的卫星坐标数据GGA。$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77 $ 开始GPGGA 命令字* 结尾77 校 阅读全文
posted @ 2011-04-11 13:00 Sue_娜 阅读(1648) 评论(0) 推荐(0) 编辑
摘要: 串口是很简单的,编写基于串口的程序也很容易。新手们除了要面对一堆的生僻概念,以及跨线程访问的细节,还有一个需要跨越的难题,就是协议解析,上一篇已经说明了:一个二进制格式的协议一般包含: 协议头 + 数据段长度 + 数据 + 校验一个Ascii格式的文本协议,一般包含: 数据头 + 正文 + 数据结束标识类似的命令可能很多,类似的代码也会重复写很多次。对于我,并不觉得这个有任何难度,但是,很多时候,需要写点类似东西的时候呢,我往往不想写,不是别的,要搭建一个这样的框架,这绝对是个体力活,而且还需要耐心和细心。从我上一次带项目,我就开始考虑编写通用的一个通讯库,支持很多功能,不过和公司内容结合紧密 阅读全文
posted @ 2011-04-11 13:00 Sue_娜 阅读(944) 评论(0) 推荐(1) 编辑
摘要: 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面。 我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44 05 01 02 03 04 05 EA 这里我假设的一条数据,协议如下: 数据头: AA 44 数据长度: 05 数据正文: 01 02 03 04 05 校验: EA 一般数据的校验,都会采用常用的方式,CRC16,CRC. 阅读全文
posted @ 2011-04-11 12:57 Sue_娜 阅读(8775) 评论(1) 推荐(1) 编辑
摘要: 我假设读者已经了解了c#的语法,本文是针对刚打算解除串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础。我们的开发环境假定为vs2005(虽然我在用vs2010,但避免有些网友用2005,不支持lambda,避免不兼容,就用2005来做例子)一个基本的串口程序,既然是个程序了。我们就先从功能说起,包含串口选择波特率选择打开关闭接受数据显示发送数据输入发送数据数据量提示以及归零好吧,有了这些功能,我们就先画出界面。例如:这里,波特率就定死几种好了。直接界面上添加2400,4800,9600,19200,38400,57600,115200comboPortName这里,为了我们的 阅读全文
posted @ 2011-04-11 12:56 Sue_娜 阅读(9135) 评论(1) 推荐(1) 编辑
摘要: 第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁。天哪,我可不是武断,算了。不要太绝对了。99.9%的人吧,都遇到过这个问题。我想只有一半的人真的解决了。另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了。 你看到我的文章,就放心吧,这问题有救了。我们先回顾一下上一篇中的代码 view plaincopy to clipboardprint?void comm_DataReceived(object sender, SerialDataReceivedEventArgs e) { //先记录下来,避免某 阅读全文
posted @ 2011-04-11 12:56 Sue_娜 阅读(3998) 评论(0) 推荐(1) 编辑
摘要: 尝试方法一:windows开始菜单,运行里面输入gpedit.msc打开组策略,在"计算机配置"→管理模板→windows组件→windowsinstaller,右边第一项就是禁用windowsinstaller。把它改成"未配置"或者"已禁用"就可以了。尝试方法二:开始,运行regedit,打开注册表,找到HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C这个注册表项目,删除即可。如果出现多项4080110900063D11C8EF1005403 阅读全文
posted @ 2011-03-16 09:05 Sue_娜 阅读(2193) 评论(0) 推荐(0) 编辑
摘要: 由于所安装的sqlserver 2000 版本比较低,应打sqlserver 的sp3 补丁 阅读全文
posted @ 2011-03-15 16:52 Sue_娜 阅读(248) 评论(0) 推荐(0) 编辑
摘要: XP HOME安装IIS 事前准备 1、Windows XP HomeEdit 中文版 CD(拷在硬盘也可以) 2、Windows 2000 Advanced Server CD(最好也是中文版) 3、默认你的XP安装路径是安装在C:\WINDOWS下 开始动手 (如果你怕改错,先把C:\WINDOWS\INF\SYSOC.INF做一份备份) 用记事本打开C:\WINDOWS\INF\SYSOC.INF,在[COMPONENTS]下找到一行: iis=iis.dll,OcEntry,iis.inf,hide,7 然后把它改成 iis=iis2.dll,OcEntry,iis2.inf,,7 保 阅读全文
posted @ 2011-03-08 11:00 Sue_娜 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 1、比较时间大小的实验 string st1="12:13"; string st2="14:14"; DateTime dt1=Convert.ToDateTime(st1); DateTime dt2=Convert.ToDateTime(st2); DateTime dt3=DateTime.Now; if(DateTime.Compare(d... 阅读全文
posted @ 2010-12-11 10:35 Sue_娜 阅读(25049) 评论(0) 推荐(0) 编辑
摘要: 1、由于链接其它页面或循环链接造成框架结构页面的一个帧里嵌套了另一个含有框架结构的页面,影响了页面效果和实际阅读面积,或者自己精心设计的框架页面被别人链接而嵌入别人的框架结构中,作为他人页面的一部分.那么如何防止页面被嵌套在其他框架结构里呢? 只要在页面头部head内加入下面的代码即可. script language="javascript" !-- if (self!=top){ top.location=self.location; } /-- /script self指语句本身所处的帧(在有框架的情况下)或当前窗口,top指包含框架的最上层窗口.此语句的 阅读全文
posted @ 2010-12-09 15:45 Sue_娜 阅读(941) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 33 下一页