(2) 接收短信的串口通信程序
短信接收的主要原理与短信发送的相似,具体如图3.4所示。
图3.4 短信接收原理图
短信接收中设备打开的动作与发送中基本相同不在介绍,下面主要介绍接收到短信时的动作流程:
设备成功打开后设置“Status = "系统已处于短信接收状态"”,当收到新短信时,经过转换获得buffer的长度Len(buffer),判断“Len(buffer) >= 15”语句,若为真,设置“Status = "收到新短信"”,弹出“收到新的短信”提示,否则不动作;
成功设置“Status = "收到新短信"”,点击读取按钮后,向串口发送“AT+CMGR=<index>”,如果返回的信息中包含“CMGR&OK”,设置“Status = "短信接收"”,提取返回的信息中对方短信中心号码、对方手机号、发送时间和发送内容,经过各个函数转换后赋值给响应的文本框控件来显示,完成后设置“Status = "系统已处于短信接收状态"”,否则在达到Timmer1的设置值后进入Timmer1的条件判断,弹出“短信读取失败,请重读取”提示。
3.4 VB数据库程序设计
本设计中VB程序通过ADO(ActiveX数据对象,ActiveX Data Objects)与ACCESS数据库相连接,实现了用户信息的显示、添加、查询、删除和修改。
3.4.1 ADO数据控件
ADO数据控件可与外部建立的mdb格式的ACCESS数据库连接,在设置的文本框里显示相应表格中的各个参数。ADO数据控件常用的属性包括EOFAction,BOFAction和Recordset属性。BOFAction设置和返回到达首记录前的操作,EOFAction设置或返回到达末记录后数据控件采取的操作,Recordset属性生成ADO数据控件实际可操作记录集对象。在ADO数据控件中,记录实际上是通过Recordset对象进行操作的。Recordset数据集对象常用的属性如表3.3所示[14]。
表3.3 Recordset数据集对象常用的属性
属性 说明
AbsolutePosition 返回当前记录指针值
RecordCount 对Recordset对象中的记录计数
Find 在Recordset对象中查找与找到条件相匹配的记录,并使之为当前记录。
MoveFirst 移到第一条记录
MoveLast 移到最后一条记录
MoveNext 移到下一条记录
MovePrevious 移到上一条记录
AddNew 添加一条数据记录
Fields 访问记录中的某个字段
续表3.3
Delete 删除目前的数据集
Update 更新数据库中的目前数据集的数据
Cancel Update 取消未调用Update方法前对记录所做的所有修改
3.4.2 通信录管理
通信录主要实现对联系人的浏览、添加、修改和删除,同时可以将通信录中的联系人复制到短信发送界面。
首先我们建立一个mdb格式的数据库,命名为addbook,在数据库中建立表1存储通信录中联系人的信息,在表中设置姓名和号码两个字段,便于数据的管理和浏览。
数据库建立好后在ADODC属性中设置addbook.mdb所在位置,将RecordSource设置为表1,测试VB与数据库的连接,成功后在text控件的属性中设置DataField为数据库对应的字段,这样text控件就可以显示联系人的姓名和号码。通过ADODC控件自身可以浏览数据库中的内容,点击控件上的按钮可以翻阅通信录第一条、最后一条、上一条和下一条,能够方便联系人的查找和修改。在通讯录中可以直接选取联系人的姓名和手机号码,复制到到发送界面进行发送短信。也可以通过发送界面进入通信录,进行联系人的选择,并且把把选中联系人的个人姓名和手机号码信息复制到发送窗口中去,方便发送短信时输入联系人的姓名和手机号码。在通信录中也可以直接跳转到发送界面或主菜单。 SIM300模块GSM数据采集管理系统设计(10):http://www.751com.cn/tongxin/lunwen_3182.html