基于SqlDependency对象的路灯测控系统设计*

2015-04-15 07:29蔡俊涛赖顺桥肖熠琳广州市光机电技术研究院广东广州50663中山大学数学与计算科学学院广东广州50275
机电工程技术 2015年8期
关键词:功能模块测控路灯

蔡俊涛,赖顺桥,肖熠琳(.广州市光机电技术研究院,广东广州 50663;2.中山大学数学与计算科学学院,广东广州 50275)

基于SqlDependency对象的路灯测控系统设计*

蔡俊涛1,2,赖顺桥1,肖熠琳1
(1.广州市光机电技术研究院,广东广州510663;2.中山大学数学与计算科学学院,广东广州510275)

摘要:以路灯测控系统为例,针对系统对用户操作过程和各类测试数据需要随时记录的应用特点,采用基于SqlDependency对象,以数据的变化驱动功能模块的架构模式,大大提高了接口可读性,降低了功能模块之间的耦合性,有利于开发过程中团队的协同作业,以及后期的改进升级。

关键词:SqlDependency;路灯测控系统;低耦合;数据驱动

*国家863计划项目(编号:2013AA03A106);广州市重大科技专项(编号:2013Y2-00142)

0 引言

SqlDependency对象表示应用程序和SQL Serv⁃er实例间的查询通知依赖关系。应用程序可以创建一个SqlDependency对象并进行注册以通过On⁃ChangeEventHandler事件处理程序接收通知[1],其主要作用是监测数据库中的数据发生变化。利用SqlDependency对象的监测功能,以数据库作为数据驱动的接口,可以构建出模块耦合性低、功能扩展性好、接口可读性高的应用系统。本文以路灯测控系统为例,简要地阐述了基于SqlDepen⁃dency对象的测控系统的开发模式。

1 系统需求特点

目前,大部分LED路灯缺少必要的智能控制,或者虽然有定时控制但是却不能自动检测路灯的工作状况,也不能方便地对路灯进行远程测控[2]。对城市管理而言,亟需一套可统一管理的智能化路灯测控系统。笔者承担了一项类似的开发任务,其需求具有以下显著特点:

(1)系统管理的对象地域性广,采用分布式架构,涉及多个服务器和各种客户端应用;

(2)系统除了需要保存各种检测数据、状态数据外,每一次的操作都需要在数据库中留下历史记录;

(3)系统要求功能扩展性好,而且有可能在系统完成初期还需要根据实际使用情况修改功能模块。

可以看出,系统相对一般的应用系统架构较庞大,对数据库操作频繁,对功能模块的耦合性十分敏感。因此,本系统以SQL Server数据库为交互点,利用SqlDependency对象的监测功能进行整合开发。

2 系统总体架构

系统架构如图1所示,主要包含三个部分:现场路段、中心、客户端。

(1)现场路段:指路灯安装现场,包括了灯、测控器以及基站。测控器安装在灯上,实现对灯的开关、调光、检测等功能,并通过Zigbee或电力线载波等通信方式,与基站连接。基站则通过公共的无线数据通道(4G、GPRS等)与“中心”的网络进行通信。

图1 系统架构

(2)中心:以数据库为核心,实现系统的各种应用。通过接口服务,实现客户与终端之间的指令和数据交互;通过呈现服务(主要为Web服务),实现客户端的界面交互和结果呈现;通过分析服务,实现对检测数据的深度分析;通过管理服务,实现用户、路灯、路段等各方面信息的管理,以及对历史日志的查询。

(3)客户端:通过中心提供的Web服务,实现对系统的应用操作。

3 SqlDependency对象在系统中的应用

系统以数据库为核心,利用SqlDependency对象,可以实现客户端与现场终端之间的交互以及各个服务之间数据的同步(如图2)。包括在接口服务中实现指令的发送;在分析服务中实现数据自动累计;在呈现服务中实现缓存更新、故障主动预警;在管理服务中实现设置同步。

图2 运用SqlDependency对象

下面以客户端发送指令为例,使用SqlDepen⁃dency对象,将数据表变成交互的接口。首先,在数据库中制定一个用于操作记录的数据表[Control_In⁃fo](如图3),此表既是用户操作的历史记录表,也是触发中心服务程序发送指令的接口表,然后在接口程序中建立一个SqlDe⁃pendency对象,监测[Con⁃trol_Info]表的数据变化。客户端需要发送指令时,直接在[Control_Info]表中登记一条记录,SqlDepen⁃dency对象就会自动触发指令发送程序,对记录进行解析并按接口协议完成指令发送。

图4为SqlDependency对象在指令发送方面的程序流程。

实现SqlDependency对象应用的主要代码如下:

图3 [Control_Info]表

4 应用SqlDependency对象注意点

(1)需要SQL Server 2005以上版本的数据库支持;

(2)必须开启数据库的ServiceBroker服务,可以使用以下语句开启:ALTER DATABASE <数据库名称> SET ENABLE_BROKER;

(3)触发发生后,监测即失效,如果要循环监测,需要重新设置SqlDependency对象,如上面实例中在dependency_OnChange函数里调用setde⁃pendency函数进行重新设置。

5 结语

本文所描述的路灯测控系统,以数据库为核心,以数据表为交互接口,通过对SqlDependency对象的充分应用,以数据的变化驱动功能模块,大大提高了接口可读性,降低了功能模块之间的耦合性,有利于开发过程中团队的协同作业,以及后期系统的改进、升级和功能模块的添加。对于需要对操作过程和各类数据随时记录的系统,特别适合这种应用模式。

图4 指令发送流程图

参考文献:

[1]MSDN.SqlDependency类[EB/OL],https://msdn.mi⁃crosoft.com/zh-cn/library/system.data.sqlclient.sqldepen⁃dency.aspx.

[2]陈晓艳,高伟,秦欢,等.基于GPRS与ZigBee的LED路灯智能监控系统设计[J].电子测量技术,2013,36(10):62-65.

(编辑:向飞)

Design of Street Lamp Monitoring and Controlling System Based on SqlDependency Object

CAI Jun-tao1,2,LAI Shun-qiao1,XIAO Yi-lin1
(1.Guangzhou Research Institute of O-M-E Technology,Guangzhou510063,China;2.Sun Yat-sen University School of Mathematics & Computational Science,Guangzhou510275,China)

Abstract:Taking street lamp monitoring and controlling system as an example,for the characteristics of the application that require record the user's operation process and all kinds of test data at any time,use an architectural model,based on SqlDependency object and with the change of the data to drive function module,that greatly improve the interface readability and reduce the coupling between modules.It is conducive to the development of team collaboration,and easy to upgrade later.

Key words:SqlDependency;street lamp monitoring and controlling system;low coupling;data driven

作者简介:第一蔡俊涛,男,1978年生,广东潮州人,大学本科,工程师。研究领域:测控技术、软件工程。已发表论文5篇。

收稿日期:2015-07-10

DOI:10.3969/j.issn.1009-9492.2015.08.021

中图分类号:TP274

文献标识码:A

文章编号:1009-9492 (2015 ) 08-0074-03

猜你喜欢
功能模块测控路灯
《测控电路》实践教学改革探讨
路灯
为什么高速公路上不用路灯照明
基于现代测控技术及其应用分析
基于ASP.NET标准的采购管理系统研究
向着新航程进发——远望7号测控船首航记录
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
功能模块的设计与应用研究
基于USB2.0协议的通用测控通信接口设计