论文部分内容阅读
1 保定水文水资源勘测局 河北保定0710002、3、河北省沧州水文水资源勘测局,河北沧州 061000
开发背景
随着水文事业的不断发展,为社会服务需要大量的水文信息作支撑,在采集、传输、存储、处理等环节,对水文数据的准确性、时效性要求越来越高。另一方面,随着通信及计算机技术的不断发展,采用手机短信息与计算机通信进行信息管理已经深入到各行各业。针对这一现状,开发手机短信息与计算机管理相适应的《水文信息传输存储系统》是非常必要而又迫切的。
设计目标、依据
系统设计的总体目标是:通过计算机自动接收手机短信息,实现水文信息的自动传输、存储、处理、转发。
系统设计依据水文行业各项规范、标准及有关规定,符合要求。
开发环境
主程序利用微软公司可视化编程工具Visual Basic 6.0编译;后台数据库采用功能强大、方便灵活、实用的数据库管理系统Microsoft Access 2003。
程序设计(以旱情信息为例)
主要功能——
旱情信息部分:
旱情站点信息数据的批量导入(Excel格式的原始数据导入Access数据库)。
旱情站联系方式的批量导入(Excel格式的原始数据导入Access数据库)。
短信息报文的自动接收、校核、入库。
自动回复、转发已收短信息报文的校核结果(备选)。
短信息报文人工校核、入库。
Excel文件格式的旱情成果表生成。
水情部分
短信息报文的自动接收、校核、入库。
自动回复、转发已收短信息报文的校核结果(备选)。
自动绘制上下游流量、累积量对比过程线图
区域水量平衡分析
综合功能
程序具备响应远程命令的功能,可以动态执行收到的文本格式的短信息命令,通过文本格式的远程命令,我们可以完成如下操作:
远程查询信息
远程处理原始数据,并返回参考结果
远程执行文本代码
(二)设计思路及流程
设计思路:系统对自动接收的手机短信息进行自动化处理。自动化主要体现在短信息的实时更新、自动校核、自动存储入库及动态解析文本命令。
设计流程:
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)) <= 0.5) And X <> Val(Round(Abs(X), mm) * Sgn(X)) Then
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
结语
本系统初步实现了水文信息(以旱情信息为例)在手机短信息平台上的自动传输、校核、入库、转发等功能。并且通过脚本语言实现了程序功能的可扩展性。
开发背景
随着水文事业的不断发展,为社会服务需要大量的水文信息作支撑,在采集、传输、存储、处理等环节,对水文数据的准确性、时效性要求越来越高。另一方面,随着通信及计算机技术的不断发展,采用手机短信息与计算机通信进行信息管理已经深入到各行各业。针对这一现状,开发手机短信息与计算机管理相适应的《水文信息传输存储系统》是非常必要而又迫切的。
设计目标、依据
系统设计的总体目标是:通过计算机自动接收手机短信息,实现水文信息的自动传输、存储、处理、转发。
系统设计依据水文行业各项规范、标准及有关规定,符合要求。
开发环境
主程序利用微软公司可视化编程工具Visual Basic 6.0编译;后台数据库采用功能强大、方便灵活、实用的数据库管理系统Microsoft Access 2003。
程序设计(以旱情信息为例)
主要功能——
旱情信息部分:
旱情站点信息数据的批量导入(Excel格式的原始数据导入Access数据库)。
旱情站联系方式的批量导入(Excel格式的原始数据导入Access数据库)。
短信息报文的自动接收、校核、入库。
自动回复、转发已收短信息报文的校核结果(备选)。
短信息报文人工校核、入库。
Excel文件格式的旱情成果表生成。
水情部分
短信息报文的自动接收、校核、入库。
自动回复、转发已收短信息报文的校核结果(备选)。
自动绘制上下游流量、累积量对比过程线图
区域水量平衡分析
综合功能
程序具备响应远程命令的功能,可以动态执行收到的文本格式的短信息命令,通过文本格式的远程命令,我们可以完成如下操作:
远程查询信息
远程处理原始数据,并返回参考结果
远程执行文本代码
(二)设计思路及流程
设计思路:系统对自动接收的手机短信息进行自动化处理。自动化主要体现在短信息的实时更新、自动校核、自动存储入库及动态解析文本命令。
设计流程:
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)) <= 0.5) And X <> Val(Round(Abs(X), mm) * Sgn(X)) Then
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
结语
本系统初步实现了水文信息(以旱情信息为例)在手机短信息平台上的自动传输、校核、入库、转发等功能。并且通过脚本语言实现了程序功能的可扩展性。