Delphi实现远程串口的数据采集
日期:2007年7月23日 作者: 查看:[大字体 中字体 小字体]-
(11) OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节;
(12) OutBufferCount:返回发送缓冲区内等待发送的字节数,可通过设置该属性为0来清空缓冲区;
(13) OutPut:向发送缓冲区传送一串字符。
如果在通信过程中发生错误或事件,就会触发OnComm事件,并由CommEvent属性代码反映错误类型,在通信程序的设计中可根据该属性值来执行不同的操作。CommEvent属性值及其含义如下:
(1) ComEvSend:值为1,发送缓冲区的内容少于SThreshold指定的值;
(2) ComEvReceive:值为2,接收缓冲区内字符数达到RThreshold指定的值;
(3) ComEvFrame:值为1004,硬件检测到帧错误;
(4) ComEvRxOver:值为1008,接收缓冲区溢出;
(5) ComEvTxFull:值为1010,发送缓冲区溢出;
(6) ComEvRxParity:值为1009,奇偶校验错误;
(7) ComEvEOF:值为7,接收数据中出现文件尾(ASCII码为26)字符。
所以,MSComm控件主要提供下列两种处理通信的方式:
(1) 事件驱动通信方式。当串口发送或接收到数据时,可以利用MSComm控件OnComm事件捕获并处理这些通信事件。OnComm事件还可以检查和处理通信错误。
(2) 查询方式。在关键程序之后可以通过检查CommEvent属性来查询事件和错误。3 系统功能设计
本远程数据采集子系统就是利用MSComm控件,通过Moderm同远端的下位机进行通信,发送命令,获得下位机采集的实时数据,通信流程如下:
当PC机检测到下位机摘机的信号,将控制命令写入MSComm的发送缓冲区,控制命令为定长的数据报,格式如下:
其中,当命令代码不是向下位机要数据的命令的时候,起始时间和终止时间均为0。下位机上传的数据报也为定长数据报,格式如下:
数据报标志表明正在传输是数据,为0xFFFF,数据报序号说明当前传输的是第几个数据报,当序号校验码出错时,PC机停止接收数据,并向下位机发重传命令,此时控制命令的起始时间字段填入需要重传的数据报的序号。最后一个数据报将结束标志置为0xFFFF,检测线程检测到该标志时,认为数据接收完毕,向主线程发消息,通知主线程做进一步的处理。
数据传输模式采用二进制数据流形式即MSComm的InputMode属性设置为ComInputModeBinary,收到数据之后使用如下程序进行转换:
vDataBuffer: oleVariant;
DataBuffer: variant;
vDataBuffer := MSComm1.Input;
DataBuffer := VarArrayCreate([0,2048], varByte);
DataBuffer := vDataBuffer;
主线程向下位机发要数据命令的同时,生成检测线程,每收到1032个字节,检测线程对收到的数据报的结束标志和数据报序号进行检验,发现数据报序号错误立即向主线程发错误消息,主线程停止从缓冲中取数据,向下位机发重传数据报的命令。检测线程发现数据报接收完毕,向主线程发消息,主线程结束检测线程,回收资源。 - 上一页 [1] [2] [3] [4] 下一页
-
- Delphi实现远程串口的数据采集 相关文章:
- ·非主流ps教程实用的技巧大全
- ·Fireworks教程 液体金属表面特效制作
- ·Fireworks教程:立体质感水晶的制作过程
- ·Windows Vista停止报告程序问题的技巧方法
- ·非主流ps教程:制作红绿色调效果
- ·Photoshop液化滤镜校正歪斜的人物头像教程
- ·CSS教程:CSS中的定位(position)
- ·Flash制作交互动画教程 星座查询器
- ·Photoshop教程 绘制可爱半透明圣诞帽
- ·Linux下限制Root用户进行远程登陆
- Delphi实现远程串口的数据采集 相关软件
- ·《QQ游戏2007》beta1安装程序
- ·怪叔叔WII游戏教程之六-勇者斗恶龙
- ·《风色幻想6》完整流程攻略
- ·PSP自动更换壁纸插件及教程
- ·PS教程
- ·传奇女子的冒险经历及心路历程《罪恶天使》
- ·潘多拉神奇电池记忆棒制作必要程序
- ·名人讲述自己的读书历程:《与名人一起读书》
- ·卧底警察心路历程和传奇见闻:《卧底》
- ·PS文字特效教程(全7辑)6-7
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:用Delphi制作动态菜单
精品推荐
热点TOP10
- ·Delphi下的ADO使用方法!
- ·在Delphi中实现数据分析模块的动态报表
- ·在Delphi中控制扫描仪
- ·用拼音首字符来实现检索功能
- ·让Delphi的DBGrid支持鼠标轮
- ·自 动 隐 藏 的 声 象 按 钮
- ·OpenGL简介
- ·用Delphi制作动态有声标签
- ·从 实 例 看 Delphi 4 中 的 动 态
- ·Delphi中为DBGrid控件添加色彩
- ·常用的BCB & Delphi 函数
- ·产生不重复随机数的简便算法
- ·陈经韬2002原创资料
- ·Delphi2005试用版安装指南
- ·Delphi中ListBox控件的六种特效
- ·第三方控件使用方法
- ·关于SMTP和POP3使用及关于客户-服务端的自动连线问题
- ·关于MP3中的ID3V2格式探讨及我写的ID3V2读取源码
- ·监视打印机部分线程内容
- ·获取其他进程中ListView的文本
