使用Visual Basic开发手机短信收发程序

需积分: 5 23 下载量 19 浏览量 更新于2024-12-14 收藏 25KB DOC 举报
"嵌入式AT指令开发资料-用Visual Basic设计手机短信收发程序" 在本文档中,我们探讨了如何使用Visual Basic (VB) 开发一个手机短信收发程序,这涉及到对中文字符的Unicode编码处理以及手机号码的PDU格式转换。通过理解这些关键技术,开发者可以创建一个能够与手机进行GSM通信的应用。 1. 中文字符转换为Unicode码 在发送中文短信时,由于短信是以PDU(Protocol Data Unit)模式传输的,每个中文字符需要被转换为Unicode码。VB中的`ChrW()` 函数在这里起到了关键作用,它能将一个整数转换为对应的宽字符(Unicode)。以下是一个将中文字符串转换为Unicode编码的函数示例: ```vb Public Function chg(rmsg As String) As String Dim tep As String Dim temp As String Dim i As Integer Dim b As Integer tep = rmsg i = Len(tep) b = i / 4 If i = b * 4 Then b = b - 1 tep = Left(tep, b * 4) Else tep = Left(tep, b * 4) End If chg = "" For i = 1 To b temp = "&H" & Mid(tep, (i - 1) * 4 + 1, 4) chg = chg & ChrW(CInt(Val(temp))) Next i End Function ``` 2. 手机号码的PDU串转换 发送短信时,需要将手机号码转换为PDU格式。以下是一个函数,它接受一个电话号码字符串作为输入,检查其长度(11位或13位),并将其转换为PDU格式: ```vb Public Function telc(num As String) As String Dim tl As Integer Dim ltem, rtem, ttem As String Dim ti As Integer ttem = "" tl = Len(num) If tl <> 11 And tl <> 13 Then MsgBox "wrong number." & tl Exit Function End If If tl = 11 Then tl = tl + 2 num = "86" & num End If For ti = 1 To tl Step 2 ltem = Mid(num, ti, 1) rtem = Mid(num, ti + 1, 1) If ti = tl Then rtem = "F" End If ttem = ttem & rtem & ltem Next ti telc = ttem End Function ``` 这个函数考虑了11位(不包含国家码)和13位(包含国家码)两种手机号码格式,并确保添加86作为中国国家码,如果需要的话。 3. 利用Mscomm控件发送短信 发送短信的过程主要依赖于VB中的Mscomm控件,这是一个用于串行通信的组件。通过设置Mscomm控件的相关属性和调用其方法,如设置端口、波特率、数据位、停止位、校验位等,以及发送AT指令,可以实现与GSM模块的通信,进而发送和接收短信。 通过上述函数和控件的使用,开发者可以在VB环境中创建一个用户友好的界面,允许用户输入短信内容和目标电话号码,然后将这些信息转换为GSM模块可以理解的格式,最终完成短信的发送。 这个资料提供了一个实用的方法,教导开发者如何利用Visual Basic来构建一个能够处理中文短信和正确格式化电话号码的短信收发程序。对于那些希望深入理解GSM通信和VB编程的人来说,这是一份非常有价值的参考资料。