利用手机短信息实现水文信息管理

时间:2022-07-30 06:25:31

利用手机短信息实现水文信息管理

一、 开发背景

随着水文事业的不断发展,为社会服务需要大量的水文信息作支撑,在采集、传输、存储、处理等环节,对水文数据的准确性、时效性要求越来越高。另一方面,随着通信及计算机技术的不断发展,采用手机短信息与计算机通信进行信息管理已经深入到各行各业。针对这一现状,开发手机短信息与计算机管理相适应的《水文信息传输存储系统》是非常必要而又迫切的。

二、 设计目标、依据

系统设计的总体目标是:通过计算机自动接收手机短信息,实现水文信息的自动传输、存储、处理、转发。

系统设计依据水文行业各项规范、标准及有关规定,符合要求。

三、 开发环境

主程序利用微软公司可视化编程工具Visual Basic 6.0编译;后台数据库采用功能强大、方便灵活、实用的数据库管理系统Microsoft Access 2003。

四、 程序设计(以旱情信息为例)

(一) 主要功能――

1. 旱情信息部分:

 旱情站点信息数据的批量导入(Excel格式的原始数据导入Access数据库)。

 旱情站联系方式的批量导入(Excel格式的原始数据导入Access数据库)。

 短信息报文的自动接收、校核、入库。

 自动回复、转发已收短信息报文的校核结果(备选)。

 短信息报文人工校核、入库。

 Excel文件格式的旱情成果表生成。

2. 水情部分

 短信息报文的自动接收、校核、入库。

 自动回复、转发已收短信息报文的校核结果(备选)。

 自动绘制上下游流量、累积量对比过程线图

 区域水量平衡分析

3. 综合功能

程序具备响应远程命令的功能,可以动态执行收到的文本格式的短信息命令,通过文本格式的远程命令,我们可以完成如下操作:

 远程查询信息

 远程处理原始数据,并返回参考结果

 远程执行文本代码

(二)设计思路及流程

设计思路:系统对自动接收的手机短信息进行自动化处理。自动化主要体现在短信息的实时更新、自动校核、自动存储入库及动态解析文本命令。

设计流程:

1、系统启动后,每隔一段时间(1秒、5秒、30秒或用户自定义)读取一次手机卡,将手机卡中已收到的短信息读入内存,入库前对接收到的短信息主要进行两方面的检验:(1)短信类型(常规信息、命令信息、其他信息) (2)报文短信格式是否完全符合规范。

2、分别对不同类型的信息进行处理:

(1)常规信息:对合格的报文短信存储到数据库的报文列表表格中,并在系统主界面进行提示:信息符合要求;对于不合格的报文短信同样存储,在主界面提示:信息有误。

(2)命令信息:命令信息分简单命令和深度命令,简单命令为普通关键字;深度命令为符合vb语法的文本命令

(3)其他信息:对非报文短信直接存储到数据库的原始信息表中,备份。

(三)系统主要功能界面

(四)核心功能设计

1、四舍六入函数。水文测验精度要去高于其他行业,需要进行四舍六入,自定义函数入下:

Function round5(X As Double, mm As Integer) As Double

'“四舍六入五单双”自定义函数

' 函数形式 Round5(x,mm),返回值Round5为 Double 型

' X为操作数值,mm为保留小数位数

' mm为 Integer 型,mm = 0 表示取整数

Dim Temp1, Temp2 As String

Temp1 = 1

If mm < 0 Then

Temp1 = 10 ^ Abs(mm)

X = X / Temp1

mm = 0

End If

If ((Int((Abs(X) - Int(Abs(X))) * 10 ^ mm) Mod 2) = 0 And (Abs(X) * 10 ^ mm - Int(Abs(X) * 10 ^ mm))

round5 = Val((Round(Abs(X) - 10 ^ (-mm) / 5, mm)))

Else

round5 = Val(Round(Abs(X), mm))

End If

round5 = Val(round5 * Sgn(X) * Temp1)

End Function

2、文本代码解析。系统采用了vbs脚本功能,对文本格式命令进行动态解析,实现程序的可扩展性,核心代码如下:

Function CodeControl(txts) As String

'实现:发送简单控制命令(例如:数据查询、信息发送等,预留功能)

'参数:

'txts ――接收到的以CO开头的命令短信数据

Dim oVbs As Object, strCodes As String, strSubName As String

Set oVbs = CreateObject("msscriptcontrol.scriptcontrol")

On Error Resume Next

txts = Trim(txts)

strCodes = Replace(txts, "@", ":")

strSubName = Split(Split(txts, "(")(0), " ")(1)

With oVbs

.language = "vbscript"

.addcode strCodes

CodeControl = .Run(strSubName)

End With

Set oVbs = Nothing

If Err.Number 0 Then

CodeControl = "错误命令,请仔细核实"

End If

End Function

五、 结语

本系统初步实现了水文信息(以旱情信息为例)在手机短信息平台上的自动传输、校核、入库、转发等功能。并且通过脚本语言实现了程序功能的可扩展性。

注:文章内所有公式及图表请用PDF形式查看。

上一篇:阐述电力系统电网调度自动化 下一篇:论述智能建筑中电气施工技术