To Gujianda() :学术问题就是这样,没有哪个人什么都懂,CSDN之所以的发展就是因为如此,因此,讨论问题嘛,没必要伤和气,这是我的观点,我极力回答我能回答的问题,尽管不多,但希望能给他人以帮助,有时候问题可能回答的不对,但没有关系,我也需要提高。另外,我本身不是程序员,接触VB也不过就几个月,这不是我的专业和工作。
Private Sub CmdSetSIMid_Click() '设置短信中心号码,短信中心号码为8字节BCD码 '68 0E 00 00 00 00 68 0a E3 10 simid(8) cs 16 这里发送的数据是由协议规定的 0A是实际数据长度 实际数据长度为地址码 E3 10 加上8位BCD码 (simid(8)) cs为校验码,请看程序 最后是结束数据 Dim SimId As String Dim buf(19) As Byte Dim m, n As Long Dim i, j As Long, cs SimId = Trim(txtSIM.Text)
n = 16 - Len(SimId) If Len(SimId) < 17 Then For m = 1 To n SimId = SimId & "A" '(这里是因为协议规定,如果不满8字节长度,就用A来填满) Next m Else Exit Sub End If buf(0) = &H68 buf(1) = &HE buf(2) = &H0 buf(3) = &H0 buf(4) = &H0 buf(5) = &H0 buf(6) = &H68 buf(7) = &HA buf(8) = &HE3 buf(9) = &H10
For j = 0 To 9 cs = 0 cs = cs + buf(j) Next j
For i = 1 To 8 buf(i + 9) = CLng("&H" & Mid(SimId, i * 2 - 1, 2)) cs = cs + buf(i + 9) Next i cs = cs And &HFF buf(18) = cs buf(19) = &H16 If MSComm1.PortOpen = False Then MsgBox "串口还未打开,请先打开串口!", vbOKOnly, "错误" Else MSComm1.InputMode = comInputModeBinary MSComm1.Output = buf() End If End Sub
新世纪成熟ERP系统技术转让,源代码,开发文档设计文档齐全
适合机械制造、化工、食品加工、服装等等行业
功能包括
财务总帐 采购系统
应收系统 库存系统
应付系统 存货核算
固定资产 销售系统
成本核算 包装物料管理
财务分析 运输系统
电子报表 生产计划
人事管理 质量管理
工资管理 设备管理
考核管理 系统管理
基础数据
等等
有意者请和我联系 qq:99520538 msn:[email protected]
1,对不起,我语气太狂了,而你却很文雅。
2,像这种问题,基本上是想用VB接收仪表一类的数据报文,所以应该都是用压缩BCD码的。
3,看贴主的问题,大致可看出,他尚未接触过报文通信,故简单的提示没多大帮助。
'68 0E 00 00 00 00 68 0a E3 10 simid(8) cs 16 这里发送的数据是由协议规定的 0A是实际数据长度 实际数据长度为地址码 E3 10 加上8位BCD码 (simid(8)) cs为校验码,请看程序 最后是结束数据 Dim SimId As String
Dim buf(19) As Byte
Dim m, n As Long
Dim i, j As Long, cs
SimId = Trim(txtSIM.Text)
n = 16 - Len(SimId)
If Len(SimId) < 17 Then
For m = 1 To n
SimId = SimId & "A" '(这里是因为协议规定,如果不满8字节长度,就用A来填满)
Next m
Else
Exit Sub
End If
buf(0) = &H68
buf(1) = &HE
buf(2) = &H0
buf(3) = &H0
buf(4) = &H0
buf(5) = &H0
buf(6) = &H68
buf(7) = &HA
buf(8) = &HE3
buf(9) = &H10
For j = 0 To 9
cs = 0
cs = cs + buf(j)
Next j
For i = 1 To 8
buf(i + 9) = CLng("&H" & Mid(SimId, i * 2 - 1, 2))
cs = cs + buf(i + 9)
Next i
cs = cs And &HFF
buf(18) = cs
buf(19) = &H16
If MSComm1.PortOpen = False Then
MsgBox "串口还未打开,请先打开串口!", vbOKOnly, "错误"
Else
MSComm1.InputMode = comInputModeBinary
MSComm1.Output = buf()
End If
End Sub