论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
MSComm控件在中文Windows下的通信问题与处理方法(1)

摘 要VB 5.0/6.0的S通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,但在实际通信软件设计过程中,S控件并非像想像中那样完美和容易控制,特别是在中文inds下通信时更会出现 问题 。本文就S控件在实际 应用 中可能出现的问题以及编程技巧进行探讨。

关键词 s控件 串口通信 处理

1.S控件的基础 理论
一般说来, 计算 机都有一个或多个串行端口,它们依次为1、2、...。这些串口还提供了外部设备与P进行数据传输和通信的通道,这些串口在PU和外设之间充当解释器的角色。当字符数据从PU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给PU。再进一步说,在操作系统方面,inds用通信驱动程序(.DRV)调用API函数发送和接收数据。当用通信控件或声明调用API函数时,它们由.DRV解释并传递给设备驱动程序。作为一个VB程序员,要编写通信程序,只需知道通信控件提供给inds通信API函数的接口即可,换句话说,只需设定和监视通信控件的属性和事件即可。
2.利用S控件进行数据的接收和发送
搞清楚以上基本属性和事件后就可以开始编写通信程序了:在VB 5.0/6.0中新建一个工程文件,添加irsft ntrl 5.0组件,在窗体Fr1中加入and命令按钮并取名为dTest,S控件取名为S1,写入以下代码:
Private Sub dTest_lik()
S1.Prt = 1 '设定1口
If S1.Prtpen = False The n
S1.Settings = "9600,N,8,1" '9600波特率,无校验,8位数据位,1位停止位
S1.Prtpen = True '打开串口
End If
S1.utBufferunt = 0 '清空发送缓冲区
S1.InBufferunt = 0 '清空接收缓冲区
'发送字符数据,注意必须用回车符(vbr)结束
S1.utput="This is a gd bk!" ≈ vbr
'拨打电话号码或发送AT命令
S1.utput="ATDT 0294563622" ≈ vbr
'发送字符数组数据,注意ByteArray必须事先定义赋值
Di ByteArray as byte() '定义动态数组
ReDi ByteArray(1) '重定义数组大小
ByteArray(0)=0
ByteArray(1)=1
S1.utput = ByteArray '发送字符数组数据
End Sub
Private Sub S1_n()
Selet ase S1.Event
ase EvReEive '接收字符数据
Di Buffer As Variant
S1.InputLen = 0
'当Inputde 属性值为0(文本模式)时,变量中含String型数据。
'当Inputde属性值为1(二进制模式)时,变量中含Byte型数组数据。
S1.Inputde=InputdeBinary
Buffer=S1.Input '接收二进制数据
S1.Inputde=InputdeText
Buffer = S1.Input
ase else
End Selet
End Sub
3.中文inds下的通信问题与解决 方法
3.1 接收的数据少于发送的数据
如果通过S控件一次性传送较多的二进制数据,那么,很可能收到的数据不足。例如在设置为2400bps传输率的情况下,一次性可以传输2048个字符数据,那么在大多数情况下一次只能收到1200个字符左右,这是因为新版的S32.X中存在一个 影响 传输二进制数据的Bug。
32位inds API函数使用了几个用TIEUTS结构表示的限时变量,riteTtalTieutnstant即是其中的一个,它被inds内部设定为5000(即5秒),这个常量决定了在通信驱动程序停止传输之前花费在发送缓冲区中数据的时间的长短。5秒钟意味着通信速度为1200bps情况下仅能发送600个字符,2400bps情况下仅能发送1200个左右的字符。事实上,在一个缓冲区内一次性发送更多的数据是非常可能的。VB 5.0/6.0版本的S控件有一个新增的重要的属性称为ID,ID指的是当串口被打开时,被API所调用的串口句柄(或标志),这也意味着能利用API接口函数去修改这个常量。每次串口关闭后,inds会自动将之恢复为5000,所以,每次打开串口后需要重新设定。以下是API声明代码:

未完...点击下方链接下载完整文档

MSComm控件在中文Windows下的通信问题与处理方法(1)

摘 要VB 5.0/6.0的S通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,但在实际通信软件设计过程中,S控件并非像想像中那样完美和容易控制,特别是在中文inds下通信时更会出现 问题 。本文就S控件在实际 应用 中可能出现的问题以及编程技巧进行
  • 上一篇:发展我国电子商务都要以推进B to B业务(1)
  • 下一篇:网站营销如何成功(1)
  • 研究生阶段计算机网络理论课程教
    浅谈Intranet在现代企业中的应用
    浅谈行为引导教学方法在《计算机
    有关计算机软件数据接口的应用研
    浅谈对程序开发中异常的理解和认
    刍议防火墙的合理使用(1)
    电子政务人员培训的问题与建议(1
    渐开线圆柱齿轮几何参数计算的计
    青年教师在医学微生物学留学生教
    光纤光缆和通信电缆技术发展与思
    大芯数OPGW在浙江电网的应用
    面向对象数据库理论设想
    基于GP算法的知识发现系统
    基于人工智能的银行信贷风险决策
    企业电子商务系统的规划与设计研
    MSComm控件在中文Windows下的
    酒杯上的碟
    MSComm控件在中文Windows下的
    PHP调用自制控件实现操作环境
    利用VC中的通讯控件开发串形通
    在VB中如何使用 Winsock 控件
    VC++中静态控件的特殊用法
    中文图形化数据库动态操纵的实
    中文智能搜索引擎技术研究
    中文全文信息检索系统中索引项
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除