国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

WinCE.Net平臺下電力巡檢儀數據同步研究與實現

2019-11-17 04:37:52
字體:
來源:轉載
供稿:網友
引言 數據同步已經成為移動計算的一種基礎應用模式。但由于在移動環境中設備多樣,需要交互的數據也千差萬別,再加之連接特性很不穩定,這就要求用標準的方法來實現數據同步,使之能成為移動計算環境中的一個基礎設施。我們在Pocket PC 2002中加載了SQL Server CE作為Pocket PC的數據庫,在Windows Server 2003中加載了SQL Server 2000作為普通臺式計算機的數據庫,同時采用了Microsoft Visual Studio .NET 2003作為研究的開發平臺,Pocket PC與普通PC計算機之間的數據同步采用xml方式進行。1、搭建平臺硬環境及軟環境1.1、下載和安裝SQL Server CE在微軟的相關網站上下載SQL Server CE 2.0或以上的版本,將Pocket PC與桌面計算機正確建立合作關系,進行數據通訊,按要求在桌面計算機上正確安裝SQL Server CE,安裝時,通過建立的合作關系,安裝程序會將SQL Server CE同時安裝到Pocket PC 上。1.2、配置基于IIS的Web服務器要想通過Pocket PC直接訪問服務器中的SQL Server 2000數據庫中的數據,在服務器上必須安裝IIS,建立web服務器。正確安裝IIS后,還要進行下面的配置:打開“控制面板->Internet信息服務”,設置步驟如下:(1)增加虛擬目錄(2)虛擬目錄名稱為:power(電力)(3)填寫虛擬目錄路徑:將存放SQL Server CE的系統目錄下Server于目錄作為虛擬目錄路徑,如:D:/Microsoft SQL Server CE 2.O/Server。該目錄下包含sscesa20.dll等文件。(4)設置訪問權限:該目錄應該設置為讀取和寫入,執行許可應設置為:腳本和可執行程序。(5)測試SQL Server CE IE安裝是否正確:打開IE瀏覽器,在地址欄中輸入http://59.73.195.91/sqlce/sscesa20.dll,其中,59.73.195.91是Web服務器ip地址,系統返回:SQL Server CE Server Agent,則表明設置正確。1.3、在服務器配置SQL Server CESQL Server CE安裝后,打開“程序Microsoft SQL Server CE 2.0->Configure Connectivity Support in IIS”,執行Conf- igure Connectivity Support in IIS菜單項,對相關項目進行配置,這樣的配置是必須的。2、遠程數據訪問RDA(Remote Data access)RDA對象,是SQL Server CE自帶的,它為Windows CE應用程序訪問遠程的SQL Server 2000 數據庫提供了一種簡單的訪問方式。利用它可以將存在Pocket PC上的數據直接寫入到遠程的SQL Server 2000數據庫中或將遠程的SQL Server 2000數據庫的數據下載到Pocket PC中的SQL Server CE數據庫中的一個數據表中,這樣就實現了數據的交換與同步。安裝完SQL Server CE后,我們就可以在開發平臺如:Embedded Visual C++或Microsoft Visual Studio.NET 2003中使用RDA對象來訪問SQL Server 2000數據庫中數據。我們使用的是Microsoft Visual Studio.NET 2003開發平臺。RDA對象有許多方法和屬性,主要的方法和屬性如下:RDA 對象的主要方法(method):
方 法
功 能 說 明
Pull
方法
從Microsoft SQL Server數據庫中獲取數據.存放在SQL Server CE數據庫中的一個表中。注重,該表應是一個不存在的數據表.執行Pull方法后,會自動建立數據表。
Push
方法
將SQL Server CE數據庫表中已改變的數據上傳到Server CE數據庫的對應表中。
RDA對象的主要屬性(PRoperty):
方 法
說 明
Internet
URI 屬性
PC 服務器上sscesa20.dlI的訪問地址.如:
http://59.73.195.91/sqlce/sscesa20.dll
LocalConnection String屬性
String屬性Pocket PC的數據庫訪問連接串
3、程序設計采用Microsoft Visual Studio.NET 2003作為開發工具,開發語言是C#,服務器采用Windows Server 2003.數據庫采用SQL Server 2000,SQL Server CE 。3.1、在Pocket PC上創建SQL Server CE數據庫SQL Server CE 中的數據庫是存儲結構化數據的表集合。在可以存儲數據庫之前,必須創建數據庫。在創建數據庫之后,可以創建保存數據的表。首先在Pocket PC上創建一個名為PowerDB.sdf的SQL Server CE數據庫。3.2、創建WalkThrough類public class WalkThrough


{

static void Main()

{

SqlCeConnection conn = null;

if (File.Exists ("PowerDB.sdf"))//判定

File.Delete ("PowerDB.sdf");

SqlCeEngine engine = new SqlCeEngine ("Data Source = PowerDB.sdf");//創建空數據庫

engine.CreateDatabase ();

conn = new SqlCeConnection ("Data Source = PowerDB.sdf");//連接到新數據庫

conn.Open();}}運行上述代碼將會在Pocket PC上建立一個名為PowerDB.sdf的數據庫,用于訪問該數據的數據源為PowerDB。3.3、數據庫同步代碼為了使Pocket PC上數據庫數據與PC服務器上的數據庫數據保持同步,我們采用遠程數據訪問(RDA)對象來實現.下面簡單介紹設計及實現方法。(1)初始設置下面代碼對Pocket PC的數據庫連接和要保持同步的遠程服務器SQL Server 2000數據庫連接進行初始設置:private void RDAFm_Load(object sender, System.EventArgs e) //加載同步窗體即初始化

{

synDS=new DataSet();//聲明數據集

synDS.Locale=CultureInfo.CurrentCulture;

CurrentFolder=System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;//獲取程序集URL位置

CurrentFolder=CurrentFolder.Substring(0,CurrentFolder.LastIndexOf("http://")+1);

xmlFileName=CurrentFolder+"SynConfig.xml";//獲取文件名

xsdFileName=CurrentFolder+"SynConfig.xsd";//獲取文件名

FileStream FsXML = new FileStream(xmlFileName,FileMode.Open);

FileStream FsXSD = new FileStream(xsdFileName,FileMode.Open);

XmlTextReader xtrXSD = new

XmlTextReader(FsXSD);

synDS.ReadXmlSchema(xtrXSD);

xtrXSD.Close();

FsXSD.Close();

XmlTextReader xtrXML = new XmlTextReader(FsXML);

synDS.ReadXml(xtrXML);

xtrXML.Close();

FsXML.Close();

DataTable dt=synDS.Tables["SynCon"];//定義數據集中的表

//為控件獲取數據綁定

Text.DataBindings.Add(newBinding("Text

",dt,"name")); }
(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中的客戶進程。提出與目標機的連接請求,在連接成功后與客戶端進行數據上傳與下載。WinCE.Net平臺下電力巡檢儀數據同步研究與實現(圖一) 圖1:客戶/服務器模式的系統組成 4.2、TCP/IP協議隨著因特網的迅速發展,使TCP/IP體系結構成為事實上的工業標準。TCP/IP協議把網絡協議看成5層的層次模型,如圖2所示。WinCE.Net平臺下電力巡檢儀數據同步研究與實現(圖二) 圖2:網絡協議層次模型
上圖中每個層都實現自己的功能,且每層的功能都是其上一層提供的服務基礎。網絡層協議IP協議,它提供在通信子網中進行路由選擇的算法。IP協議使用IP地址來確定發送端(源主機)和接收端(目的主機),提供端到端的數據同步。傳輸層中有TCP協議,該層協議提供主機之間的進程與進程的有效數據傳輸,數據的發送端和接收端都要建立起端點,形成連接關系,這兩個端點即為“套接字”。4.3、系統軟件實現本系統是面向客戶機/服務器模式設計的,其系統必須包括客戶和服務器的兩個進程,而且服務器進程要先于客戶進程啟動,在提供服務時必定存在服務器進程和客戶進程兩個運行著的進程。圖3所示為目標機上的服務器進程和主機上的客戶進程的執行順序和流程圖。 5、總結借助網絡通信實現電力巡檢中巡檢信息的共享和同步,可極大提高巡檢治理的自動化程度和生產效率。在遠程服務器上建立中心巡檢數據庫,在現場巡檢儀中僅設置小容量數據庫;由中心數據庫對整個系統中的電力設備進行統一的治理調度,而局部數據庫與中心數據庫間的數據傳輸與同步可以提高電力設備的使用效率和系統的快速應變能力。設計并實現的這一套開發工具包定義了完整的應用模型,經過實際使用也取得了很好的效果,對于進一步推廣相關應用的普及也有很高價值,如鐵路售票,醫療查房等巡視檢查工作都具有一定的指導意義及前瞻性。WinCE.Net平臺下電力巡檢儀數據同步研究與實現(圖三) 圖3:C/S系統執行的流程圖

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韶山市| 左云县| 电白县| 孟津县| 射阳县| 新郑市| 永新县| 聂拉木县| 米林县| 日喀则市| 大厂| 阜南县| 保靖县| 丁青县| 科技| 象州县| 邳州市| 青海省| 东乡县| 改则县| 菏泽市| 定南县| 花垣县| 延庆县| 孝义市| 济南市| 鄂尔多斯市| 双辽市| 德惠市| 通河县| 仙居县| 金坛市| 玛曲县| 英山县| 揭阳市| 平顺县| 新平| 东海县| 绥中县| 洛南县| 广平县|