求助!通信的高手们百度云

VC &&&&最新内容
VC &&&&相关内容后使用快捷导航没有帐号?
查看: 1793|回复: 4
经验110 分贝0 家园币260 在线时间:118 小时最后登录:帖子:精华:0注册时间:UID:684102
军衔等级:
下士, 积分 110, 距离下一级还需 90 积分
注册时间:
通信设计费里设计费:工程费×内插值×专业调整系数×工程复杂程度调整系数×阶段比例×附加调整系数+其他设计收费×(1+浮动调整系数) =.045×60%=30705.70元。那个0.045是怎么来的,为什么会定0.045.
经验251 分贝0 家园币782 在线时间:1431 小时最后登录:帖子:精华:0注册时间:UID:21849
军衔等级:
中士, 积分 251, 距离下一级还需 49 积分
注册时间:
4.5%是一阶段设计取费系数。
经验110 分贝0 家园币260 在线时间:118 小时最后登录:帖子:精华:0注册时间:UID:684102
军衔等级:
下士, 积分 110, 距离下一级还需 90 积分
注册时间:
回复 2# 的帖子
我想知道为什么定0.045?
经验15753 分贝0 家园币43065 在线时间:237 小时最后登录:帖子:精华:1注册时间:UID:229078
军衔等级:
上将, 积分 15753, 距离下一级还需 4247 积分
注册时间:
4.5%是一阶段设计取费系数。按你当地的取费标准(工程规模)
经验1613 分贝0 家园币1855 在线时间:93 小时最后登录:帖子:精华:0注册时间:UID:160279
军衔等级:
中尉, 积分 1613, 距离下一级还需 187 积分
注册时间:
看收费2002版,里面有详细记录
Copyright &
All Rights Reserved雷速体育发帖软件开发QQ乐学 会学 多求 善思千里之行 始于足下
欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 6359 人关注过本帖
标题:求助~!!!如何用VB6.0实现串口通信。要求十六进制发送,十六进制接收~!! ...
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:5&&&
求助~!!!如何用VB6.0实现串口通信。要求十六进制发送,十六进制接收~!!谢谢高手们~!!!
'**********************************
'字符表示的十六进制数转化为相应的整数
'错误则返回&&-1
'**********************************
Function ConvertHexChr(str As String) As Integer
&&& Dim test As Integer
&&& test = Asc(str)
&&& If test &= Asc(&0&) And test &= Asc(&9&) Then
&&&&&&&&test = test - Asc(&0&)
&&& ElseIf test &= Asc(&a&) And test &= Asc(&f&) Then
&&&&&&&&test = test - Asc(&a&) + 10
&&& ElseIf test &= Asc(&A&) And test &= Asc(&F&) Then
&&&&&&&&test = test - Asc(&A&) + 10
&&&&&&&&test = -1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'出错信息
&&& End If
&&& ConvertHexChr = test
End Function
'**********************************
'字符串表示的十六进制数据转化为相应的字节串
'返回转化后的字节数
'**********************************
Function strHexToByteArray(strText As String, bytByte() As Byte) As Integer
&&& Dim HexData As Integer&&&&&&&&& '十六进制(二进制)数据字节对应值
&&& Dim hstr As String * 1&&&&&&&&& '高位字符
&&& Dim lstr As String * 1&&&&&&&&& '低位字符
&&& Dim HighHexData As Integer&&&&&&'高位数值
&&& Dim LowHexData As Integer&&&&&& '低位数值
&&& Dim HexDataLen As Integer&&&&&& '字节数
&&& Dim StringLen As Integer&&&&&&&&'字符串长度
&&& Dim Account As Integer&&&&&&&&& '计数
&&& strTestn = &&&&&&&&&&&&&&&&&&&& '设初值
&&& HexDataLen = 0
&&& strHexToByteArray = 0
&&& StringLen = Len(strText)
&&& Account = StringLen \ 2
&&& ReDim bytByte(Account)
&&& For n = 1 To StringLen
&&&&&&&&Do&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& '清除空格
&&&&&&&&&&&&hstr = Mid(strText, n, 1)
&&&&&&&&&&&&n = n + 1
&&&&&&&&&&&&If (n - 1) & StringLen Then
&&&&&&&&&&&&&&& HexDataLen = HexDataLen - 1
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& Exit For
&&&&&&&&&&&&End If
&&&&&&&&Loop While hstr = & &
&&&&&&&&Do
&&&&&&&&&&&&lstr = Mid(strText, n, 1)
&&&&&&&&&&&&n = n + 1
&&&&&&&&&&&&If (n - 1) & StringLen Then
&&&&&&&&&&&&&&& HexDataLen = HexDataLen - 1
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& Exit For
&&&&&&&&&&&&End If
&&&&&&&&Loop While lstr = & &
&&&&&&&&n = n - 1
&&&&&&&&If n & StringLen Then
&&&&&&&&&&&&HexDataLen = HexDataLen - 1
&&&&&&&&&&&&Exit For
&&&&&&&&End If
&&&&&&&&HighHexData = ConvertHexChr(hstr)
&&&&&&&&LowHexData = ConvertHexChr(lstr)
&&&&&&&&If HighHexData = -1 Or LowHexData = -1 Then&&&&&'遇到非法字符中断转化
&&&&&&&&&&&&HexDataLen = HexDataLen - 1
&&&&&&&&&&&&
&&&&&&&&&&&&Exit For
&&&&&&&&Else
&&&&&&&&&&&&
&&&&&&&&&&&&HexData = HighHexData * 16 + LowHexData
&&&&&&&&&&&&bytByte(HexDataLen) = HexData
&&&&&&&&&&&&HexDataLen = HexDataLen + 1
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&End If
&&&&&&&&&&&&&&&&&&&&&&&&
&&& Next n
&&& If HexDataLen & 0 Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'修正最后一次循环改变的数值
&&&&&&&&HexDataLen = HexDataLen - 1
&&&&&&&&ReDim Preserve bytByte(HexDataLen)
&&&&&&&&ReDim Preserve bytByte(0)
&&& End If
&&& If StringLen = 0 Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& '如果是空串,则不会进入循环体
&&&&&&&&strHexToByteArray = 0
&&&&&&&&strHexToByteArray = HexDataLen + 1
&&& End If
End Function
以十六进制编码方式进行发送时候,发送的应该是二进制数据流,从textsend文本框中得到的只是String,应该将其转换为Byte Arrey。作为十六进制数,其中应该只包括0~9这10个数字以及A~F,或者a~f这6个字母,为了增强可读性,我们允许其中插入空格,其他的字符则应该视为非法字符。我们约定,从头开始,每两个有效的字符作为一个字节的内容,如果有效字符的总数是奇数,则忽略最后一个单独的字符,若遇到非法字符,则对其后面的字符均不作处理。
上面的函数是实现这两个功能的。
本人想设置2个按钮,其中一个发送,一个接受,都采取十六进制编码方式,但是不知道如何将以上的函数运用进去,求高人指点~!!!本人新手,全班积分送上。
实现的功能非常简单,就希望能够发送和接受十六进制编码方式的字符串,谢谢~!!!!!!!
搜索更多相关主题的帖子:
等 级:新手上路
有没有高手回答啊,在线等待。。。。。。。。。。。。。。。
等 级:版主
威 望:206
帖 子:4187
专家分:25737
&&得分:20&
1\数据均使用 Byte Arrey 或 Byte
2\你转换程序里,不能限制只转换1位.因为 一个字节 转换为 16 进制时,是 2位 .如 &H1F 这种的.
程序代码:Function ConvertHexChr(str As String) As Byte
Dim t As String
If Len(str) &= <font color=# Then&&&&&& '<font color=#位或2位
&&& t = &&H& & str
&&& If IsNumeric(t) Then
&&&&&&&&ConvertHexChr = CByte(t)
&&&&&&&&ConvertHexChr = <font color=#&&&&&&&&& 'byte 类型取值范围为 0-255 ,不能为-1
&&& End If
&&& ConvertHexChr = <font color=#&&&&&&&&&&&&&&'byte 类型取值范围为 0-255 ,不能为-1
End Function
Function strHexToByteArray(strText As String, bytByte() As Byte) As Integer
'二位16进制转化为 BYTE 数组
Dim j As String
Dim i As Long
Dim o As Long
j = Replace(strText, & &, &&)&&&&&& '去掉空格
i = Len(j)
If i And <font color=# = <font color=# Then&&&&&&&&&'奇数
&&& j = Left(j, i - <font color=#) & &<font color=#& & Mid(j, i, <font color=#)&&&&&'少一位,最后一个数补一位
&&& i = i + <font color=#
strHexToByteArray = i / <font color=#
ReDim bytByte(strHexToByteArray)
For o = <font color=# To strHexToByteArray
&&& bytByte(o) = ConvertHexChr(Mid(j, o * <font color=# - <font color=#, <font color=#))
End Function
授人于鱼,不如授人于渔
早已停用QQ了
等 级:新手上路
额,我不是问这段程序是不是对,我是问如何将这段程序运用到编程中,因为我想要实现比如“E1 02 00 00 00 01 00 00 00 02 00 00 00 00 00 EA”这样的十六进制字符串的串口通信
等 级:版主
威 望:206
帖 子:4187
专家分:25737
把这个字串转为 byte 数组后,再发送.
我没看你的转换程序.......
没用过 串口 程序来了.
你自己看一下例子吧.
----------------------------------------------------------
'这个例子中,是读到指定的字符就结束,否则就循环
Private Sub Form_Load ()
&&&' 保存输入子串的缓冲区
&&&Dim Instring As String
&&&' 使用 COM1。
&&&MSComm1.CommPort = 1
&&&' 9600 波特,无奇偶校验,8 位数据,一个停止位。
&&&MSComm1.Settings = &9600,N,8,1&
&&&' 当输入占用时,
&&&' 告诉控件读入整个缓冲区。
&&&MSComm1.InputLen = 0
&&&' 打开端口。
&&&MSComm1.PortOpen = True
&&&' 将 attention 命令送到调制解调器。
&&&MSComm1.Output = &ATV1Q0& & Chr$(13) ' 确保
&&&' 调制解调器以&OK&响应。
&&&' 等待数据返回到串行端口。
&&&&&&DoEvents
&&&Buffer$ = Buffer$ & MSComm1.Input
&&&Loop Until InStr(Buffer$, &OK& & vbCRLF)
&&&' 从串行端口读 &OK& 响应。
&&&' 关闭串行端口。
&&&MSComm1.PortOpen = False
---------------------------------------------------------
'这个例子中,当 com 口有事件发生时去操作
OnComm 事件示例
下例说明如何处理通讯错误和事件。可以在相关的 Case 语句之后插入代码来处理特定的错误或事件。
Private Sub MSComm_OnComm ()
&&&Select Case MSComm1.CommEvent
&&&' Handle each event or error by placing
&&&' code below each case statement
&&&&&&Case comEventBreak&&&' 收到 Break。
&&&&&& Case comEventCDTO&&&' CD (RLSD) 超时。
&&&&&&Case comEventCTSTO&&&' CTS Timeout。
&&&&&&Case comEventDSRTO&&&' DSR Timeout。
&&&&&&Case comEventFrame&&&' Framing Error
&&&&&&Case comEventOverrun&&&'数据丢失。
&&&&&&Case comEventRxOver'接收缓冲区溢出。
&&&&&&Case comEventRxParity' Parity 错误。
&&&&&&Case comEventTxFull&&&'传输缓冲区已满。
&&&&&&Case comEventDCB&&&'获取 DCB] 时意外错误
&&&&&&Case comEvCD&&&' CD 线状态变化。
&&&&&&Case comEvCTS&&&' CTS 线状态变化。
&&&&&&Case comEvDSR&&&' DSR 线状态变化。
&&&&&&Case comEvRing&&&' Ring Indicator 变化。
&&&&&&Case comEvReceive&&&' 收到 RThreshold # of
&&&&&&Case comEvSend&&&' 传输缓冲区有 Sthreshold 个字符&&&&&&&&&&&&&&&&&&&&&'
&&&&&&&&&&&&&&&&&&&&&'
&&&&&&Case comEvEof&&&' 输入数据流中发现 EOF 字符
&&&&&&&&&&&&&&&&&&&&&'
&&&End Select
授人于鱼,不如授人于渔
早已停用QQ了
等 级:新手上路
版权所有,并保留所有权利。
Powered by , Processed in 0.065342 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights ReservedVB &&&&最新内容
VB &&&&相关内容[求助]ms2连接无线网卡共享宽带上网遇到的问题!高手们进来指教一下!谢谢!!!!
var sogou_ad_id=731549;
var sogou_ad_height=160;
var sogou_ad_width=690;}

我要回帖

更多关于 高手们 电影 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信