您所在的位置: 首页>>开发>>移动>>

WinCE.Net平台下电力巡检仪数据同步研究与实现(2)

http://developer.51cto.com  2007-04-02 14:53  邓志超/康海锋/林和平/张艳芬  计算机与信息技术  我要评论(0)
  • 摘要:研究并实现了使用远程数据访问(Remote Data Access)RDA对象,实现Pocket PC上的SQL Server CE数据库与远程PC服务器上的SQL Server 2000数据库数据同步与交换,最后以电力巡检系统为例,从系统平台的选择、搭建、网络协议,远程数据访问及系统实现等几个方面给出了系统的整体架构。
  • 标签:Pocket PC  数据同步  远程数据访问  TCP  IP  协议

(2)数据同步[2]方法:数据下载(同步到本机)与上传(同步到服务器)

笔者利用RDA的Push和Pull方法.分别实现了将掌上电脑上的SQL Server CE数据库的数据上传到PC服务器上的SQL Server 2000数据库中.及将PC上SQL Server 2000数据库中数据下载到掌上电脑的SQL Server CE数据库中。将SQL Sever 2000数据库中PowerDB的表中数据下载到SQL Server CE数据库中同名的表中:

下面我们介绍一下这两种方法:

rdaPush();//数据上传方法
private void rdaPush ()
{
SqlCeRemoteDataAccess rda = null;
rda = new SqlCeRemoteDataAccess();
rda.InternetLogin = login;

rda.InternetPassword = pwd;
rda.InternetUrl = URL;
rda.LocalConnectionString  = @localConnectionString;
rda.Push("ctlRoom",rdaOleDbConnectString,RdaBatchOption.BatchingOn);
rda.Push("ctlRoomRecord",rdaOleDbConnectString,RdaBatchOption.BatchingOn);
rda.Push("scoutRecord",rdaOleDbConnectString,RdaBatchOption.BatchingOn);
MessageBox.Show("数据上传成功");
rda.Dispose();}
rdaPull();//数据下载方法
private void rdaPull()
{
if (File.Exists (dbName+".sdf"))
File.Delete (dbName+".sdf");
SqlCeEngine engine = new SqlCeEngine (localDbString);                         
engine.CreateDatabase ();                             

SqlCeRemoteDataAccess rda = null;
rda = new SqlCeRemoteDataAccess();
rda.InternetLogin    = login;
rda.InternetPassword = pwd;
rda.InternetUrl  = URL;
rda.LocalConnectionString = @localConnectionString;
rda.Pull(      "tableName",                                            
"Select * from tableName ", rdaOleDbConnectString,
RdaTrackOption.TrackingOffWithIndexes ,
"ErrorTable");
string day=string.Empty; //条件同步
GetDate(ref day);//获取当前日期格式
//基本信息,需要上传服务器
rda.Pull(" tableName ",                                              
"Select * from tableName",             

rdaOleDbConnectString,
RdaTrackOption.TrackingOnWithIndexes);MessageBox.Show("数据下载成功!");
rda.Dispose();}

(3)用标准的SQL语句修改远程PC服务器数据库中的数据

除了用Pull,Push方法下载和上传数据外,RDA 的Submit SQL方法还支持用标准的语句,如:Insert into、Update、delete等语句对远程的PC服务器端SQL Sever 2000数据库数据进行增加、更新等操作,甚至还可以使用存贮过程对数据库进行操作,在这里笔者不做以详细介绍了。

4、巡检系统软件实现

嵌入式系统与一般PC在开发硬件环境上的最大差异在于它分为两个平台:开发平台和目标平台,程序在主机端开发、编译,在目标平台的另一个CUP平台上执行,这就造成了嵌入式系统的交叉编译、下载程序到目标平台内存、远程调试的特殊现象。远程调试实际包含两部分软件,前端运行在主机并提供人机界面;后端运行在目标机上,它负责通过某种链路来和前端通信。后端被称作调试监控器(debug monitor),它提供了对目标处理器的底层控制。

4.1、系统的选择与组成

应用系统主要由两部分组成见图1。客户端:目标机采用嵌入式Windows CE操作系统为平台,相应的开发语言为C#;‚实现功能:在本文中执行C/S中的服务器进程。ƒ服务器端:主机采用Windows Server 2003,开发工具为面向对象的Microsoft Visual Studio  -.NET 2003,数据库管理系统采用SQL Server 2000; „实现功能:在本文中执行C/S中的客户进程。提出与目标机的连接请求,在连接成功后与客户端进行数据上传与下载。

图1:客户/服务器模式的系统组成

4.2、TCP/IP协议

随着因特网的迅速发展,使TCP/IP体系结构成为事实上的工业标准。TCP/IP协议把网络协议看成5层的层次模型,如图2所示。

图2:网络协议层次模型

上图中每个层都实现自己的功能,且每层的功能都是其上一层提供的服务基础。网络层协议IP协议,它提供在通信子网中进行路由选择的算法。IP协议使用IP地址来确定发送端(源主机)和接收端(目的主机),提供端到端的数据同步。

传输层中有TCP协议,该层协议提供主机之间的进程与进程的有效数据传输,数据的发送端和接收端都要建立起端点,形成连接关系,这两个端点即为“套接字”。

4.3、系统软件实现

本系统是面向客户机/服务器模式设计的,其系统必须包括客户和服务器的两个进程,而且服务器进程要先于客户进程启动,在提供服务时必定存在服务器进程和客户进程两个运行着的进程。图3所示为目标机上的服务器进程和主机上的客户进程的执行顺序和流程图。

5、总结

借助网络通信实现电力巡检中巡检信息的共享和同步,可极大提高巡检管理的自动化程度和生产效率。在远程服务器上建立中央巡检数据库,在现场巡检仪中仅设置小容量数据库;由中央数据库对整个系统中的电力设备进行统一的管理调度,而局部数据库与中央数据库间的数据传输与同步可以提高电力设备的使用效率和系统的快速应变能力。设计并实现的这一套开发工具包定义了完整的应用模型,经过实际使用也取得了很好的效果,对于进一步推广相关应用的普及也有很高价值,如铁路售票,医疗查房等巡视检查工作都具有一定的指导意义及前瞻性。

图3:C/S系统执行的流程图

【责任编辑:火凤凰 TEL:(010)68476606-8007】



共2页: 上一页 [1] 2
【内容导航】
IP多播技术及其应用
RIP路由协议专栏
开源框架Eclipse发展历程
SIP协议融合语音视频通信
IPv6协议--拓展网络无限空间
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有