使用Visual Basic开发手机短信收发程序
需积分: 5 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编程的人来说,这是一份非常有价值的参考资料。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-08-11 上传
2009-05-29 上传
2009-12-09 上传
2021-08-12 上传
2022-05-31 上传
2021-08-11 上传
逍遥墨君
- 粉丝: 26
- 资源: 631
最新资源
- turtle-logo:用于Turtle徽标编程语言的MakeCode扩展
- screepsmod-mongo:用MongoDB和Redis替换LokiJS
- Personal-Website:我的个人作品集展示了我的经验和项目
- elirehema:自述文件
- EightInSeven:Minecraft 1.8 1.7.10 的可见性行走算法
- illustrator-scripts-for-mobile:Illustrator脚本的集合,这些脚本可将图层或画板导出到不同密度的PNG(iOS Retina Display,Android设备等)
- Andron
- 安卓电视机大屏显示ui设计
- Assertions:作证断言集
- 正常运行时间:st stitcombe的正常运行时间监控器和状态页面,由@upptime提供支持
- mern:Mern edu应用
- 行业文档-设计装置-一种降低混合机物料残留的方法.zip
- nvim:这是我的nvim点文件。 它已经被配置为在您的系统中自动安装vim-plug
- 疯狂java讲义源码下载-The-Way-I-Learn-Android:我的Android学习之路,主要记录我的android的学习过程,时
- html_rocketseat
- Python库 | FuXi-1.0_rc.dev-py2.5.egg