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

摘 要VB 5.0/6.0的S通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,但在实际通信软件设计过程中,S控件并非像想像中那样完美和容易控制,特别是在中文inds下通信时更会出现问题。本文就S控件在实际应用中可能出现的问题以及编程技巧进行探讨。 5000,所以,每次打开串口后需要重新设定。以下是API声明代码:
Type TIEUTS
ReadIntervalTieut As Lng
ReadTtalTieutultiplier As Lng
ReadTtalTieutnstant As Lng
riteTtalTieutultiplier As Lng
riteTtalTieutnstant As Lng
End Type
Delare Funtin SetTieuts Lib "Kernel32" (ByVal hFile As Lng , _
lpTieuts As TIEUTS) As Lng
Delare Funtin GetTieuts Lib "Kernel32" (ByVal hFile As Lng , _
lpTieuts As TIEUTS) As Lng
Di tieuts As TIEUTS
Di Ret As Lng
If 1.Prtpen = False Then
1.Prtpen = True
End If
'打开串口后重新设定串口句柄
Ret=GetTieuts(1.ID,tieuts)
'Set se default tieuts
tieuts.ReadIntervalTieut = 1
tieuts.ReadTtalTieutultiplier = 1
tieuts.ReadTtalTieutnstant = 1
tieuts.riteTtalTieutultiplier = 1
tieuts.riteTtalTieutnstant=(1.utBufferSize \ Val(1.Settings))*10000+1000
Ret=SetTieuts(1.ID,tieuts)
3.2 如何发送大于128的字符数据
在通信程序中,以单字符方式逐个发送数据时,每一个数据范围为0-255(即十六进制的00-FF)。在单字符版本的英文inds或DS版的BASI程序中,只需要将相应的数据转换成相应的字符发送到通信端口即可。但在中文inds下却行不通,假设在中文inds下运行以下程序:
Di i as Integer
Fr i = 0 T 255
S1.utput = hr(i)
Next i
希望在接收端得到预期的0-255之间的数据,结果却是:前129个数据接收正确,为0-128,后面127个数据为126个0和一个255。造成这种结果的原因在于中文inds使用的是双字节字符集(DBS)系统。DBS系统使用0-128之间的数字表示ASII字符,大于128的数字仅作为前导字符,它只是显示是一个非拉丁语系的字符,而并不代表实际意义。上述程序在调用HR()函数时用到了DBS字符集,因此产生了此类错误。那么,如何发送大于128的数据呢?答案是使用字节数组,将以上程序改为:
Di yData(255) As Byte
Fr i = 0 T 255
yData(i) = i
Next i
S1.utput = yData
D
DEvents
Lp Until S1.utBufferunt = 0
'接收过程
Private Sub S1_n()
Selet ase S1.Event
ase EvReEive
Di Buffer As Variant
S1.Inputde = InputdeBinary
S1.InputLen = 0
Buffer = S1.Input
Fr i=LBund(Buffer) T UBund(Buffer)
Text1.Text= Buffer(i);
Next i
ase Else
End Selet
End Sub
3.3 如何发送中文字符串
VB 5.0/6.0中可以直接把中文字符等同于英文字符发送,如:S1.utput="现在发送中文数据!",但这种方法发送的中文数据不能太长,发送缓冲区和接收缓冲区的大小需设定为中文字符的两倍以上,而且发送与接收系统所处的操作系统版本最好要一致,否则会出现接收或发送缓冲区溢出之类的错误。这种方法可用于一般要求不太高的场合。除了上述方法外,还可以采用间接方式发送中文字符串。

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

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

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

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