小视频免费在线观看_夜夜b_男女隐私免费视频_国产一级性生活视频_久久综合入口_精品国内视频

技術頻道

使用D21DM模塊并基于C++Builder的城市路燈無線監控軟件設計

城市路燈自動監控系統以計算機為核心,通過無線通信技術實現公布式數控采集監控的系統,其監控系統結構如圖1所示。中心控制計算機(主控站)和終端控制器(分控點)是各自獨立的系統,同時它們又通過數傳電臺聯系起來構成三遙系統,即遙測、遙控、遙信。

     

按此在新窗口瀏覽圖片
圖1城市路燈監控系統結構圖

1、系統實現的功能

城市路燈監控系統是以城市地圖為主顯示界面,其主要功能有

  1)控制功能。系統提供開/關燈控制功能,主控站自動將每天的燈控時間傳送給分控點,分控點根據收到的燈控時間進行開關燈控制。主控站可手動執行群控   開/關燈,也可全天候對任一終端執行開/關燈。主控站通過GPS對時功能獲得準確的時間并自動對分控點校對,保證節點有統一的時間基準。

  2)數據采集功能。主控站根據數據采集周期自動采集各個分控點的數據,這些數據包括三相電壓、支路電流、支路燈的開關狀態、支路的報警信息(電流高高   限、電流高限、電流低限、支路短路、開關跳閘、電壓缺相、電壓上限和電壓下限)、電度計量等。如果分站點出現報警,則分站向主控站提出報警,主控   站中斷當前巡檢,處理報警信息。

  3)統計管理功能。系統具有完善的數據統計、分析、管理功能。分控點采集的上述數據通過數傳電臺發理后,以直觀的圖形或表格形式提供給用戶。這些數據   包括亮燈率統計、線路狀態顯示、報警列表、各種數據自動保存到數據庫中,對所需的數據自動形成各類所需格式報表,報表可以顯示和打印。

  4)圖形顯示功能。整個城市的路燈控制點以地圖方式顯示,在地圖上表示分控點的位置和分控點的狀態(開燈狀態和報警狀態),界面直觀方便。點擊各站點   標記,可以直接查看分控點當前信息。

  5)參數設置功能。參數設置包括分控點參數、系統參數、分控點標志管理、用戶管理和燈控時間等。

2 軟件設計主要實現方法

  該系統軟件采用C++Builder5.0可視化開發工具編寫,C++Builder具有和Delphi一樣的組件庫,但編譯語言采用C++編譯器,是快速應用程序開發工具。下面是軟件主要部分實現方法。

  1)無線通信。城市路燈監控系統是通過數傳電臺實現數據采集和控制的。數傳電臺與計算機連接采用的是RS232接口,因此程序需要實現串行通信。C++Builder沒有提供串行通信控件,可以采用Windows-Apl編程方法控制串口或使用第三方串口控件,采用控件方法實現串行通信簡單,同時也符合可視化編程思想。本系統使用SPCOmm控件,SPCOmm控件是用Delphi編寫的控件,可以在C++Builder中安裝使用,SPCOmm控件提供的屬性、方法和事件主要有:

DtrControl:Dtr信號控制屬性

SendDataEmpty:發送緩沖區空標志

StartComm:打開串口

StopComm:關閉串口

WriteCommData:向串口寫數據

OnReceiveData串口有接收數據時的事件

  數傳電臺間的點對點通信是靠電臺的身份地址區分的。為實現對特定點的通信,主控機首先設置與分控點數傳電臺身份地址一致的主控站數傳電臺的目的地址,然后在向分控點發送數據和命令。數據通信程序實現的主要代碼有:

  向電臺寫控制命令

Comm1->Dtrcontrol=DtrEnable;//控制串DTR端,表明串口數據為發送給電臺的命令

if(Comm1->SendDataEmpty)

Comm1->WriteCommData(SendBuffer,Length);//S-end-Buffer數據指針,Length為數據長度

發送數據或命令

Comm1->DtrControl=DtrDisable; //控制串口的DTR端,表明串口數據為通過電臺發送的數據

if(Comm1->SendDataEmpty)

Comm1->WriteCommData(SendBuffer,Length);

收到的串口數據在OnReceiveData事件中處理。

  2)城市地圖顯示。本系統的城市地圖文件采用位圖(BMP)格式,由于城市地圖位圖尺寸通常比顯示設備的顯示面積大,因此城市地圖的顯示采用漫游方式,即不用滾動條,通過鍵盤或者鼠標控制圖象的移動,從而在較小的顯示區域內可以瀏覽圖象的任何部分。下面以鼠標控制為例說明。在窗體中放置一個TPanel控件,在Tpanel控件是放置一個Tlmage控件,設置Tlmage控件的AutoSize屬性為True, Left屬性為O,Top屬性為O。TForm1的類定義中加兩個私有變量:int Ixt,Iyo;

響應Tlmage控件的onMouseDown和onMouseMove事件.

Void__fastcall TFOrrm1::1mage1MouseDown?(Tobject Sender,TMouseButton,TshiftState?Shift int X,int Y)

{ixo=x; iYo=Y}

Void __fastcall?TFOrrm1::1mage1MouseMove (Tobject Sender,TshiftState Shift ,int X,int Y)

{int iDeltaX,iDeltaY;

if(Shift.Contains(ssLeft))

{

iDeltaX=X-ixo;

iDeltaY=Y-iyo;

if(iDeltaY﹠﹠ (!MoveFlag))

{

Maplmage->Left+=iDeltaX;

Maplmage->Top+=iDeltaY;

//控制地圖漫游不出界

if(Maplmage->Left<(ClientWidth-Maplmage->Width))

Maplmage->Left=ClientWidth-Maplmage->Width

If(Maplmage->Top=(ClientHeighT-Maplmage->Height))

Maplmage->Top=ClientHeighT-Maplmage->Height;

if(Maplmage->Top>O?Maplmage->Top =O

if(Maplmage->Left>O?Maplmage->Top =O ;)}

3)數據管理。數據管理包括數據的內存管理和數據的存儲,數據內存管理采用C++Builder的TList對象實現,Tlis對象用于維護各種類指針的索引,這些索引本身存有指向對象的指針,是C++Builder中用于實現動態鏈表的對象,能夠在運行時修改。但Tlist索引對象的內存分配和釋放都必須由程序員來完成。

聲明TList對象:

TList﹡DataList;//聲明一個TList對象

pData﹡Data;?//聲明一個指向特定數據結構的指針在TList中動態增加一個數據點方法

pData=new Data;

DataList->Add(Pdatd);//將數據點指針加到TList鏈表未尾在TList中同刪除一個數據點方法

PData=((Data﹡)DataList->ltems[i];//獲得第I個TList 元素指針

DataList->Delete(i); //從Tlist中刪除這個元素

delete pData;// 釋放數據點所占的內存

  路燈監控系統的各種數據包括站點參數、實時數據、報警數據、亮燈率數據、燈控時間和值班記錄數據都保存在數據庫,數據庫采用 中的中的 數據庫,數據庫引擎采用 數據庫引擎,是直接在 下的一個層次,允訢不同數據庫格式無縫地使用 對數據庫格式可以直接處理,因此處理速度快,使用方便。采用數據庫方式進行數據存儲,對數據的查詢、增加、刪除等操作也容易實現,便于實現系統的功能。

2 結束語

  以上是城市路燈監控系統軟件關鍵部分的實現方法,要設計完成整個軟件系統,還有許多其它任務要做,這包括日出日落時間計算 、報表的顯示和打印、報警的處理、用戶管理、值班日志管理、時間調度和系統安全設計等。

文章版權歸西部工控xbgk所有,未經許可不得轉載。

主站蜘蛛池模板: 国产一区亚洲二区 | 成人国产精品久久久按摩 | 99精品欧美一区二区蜜桃免费 | 午夜精品一区二区三区视频免费看 | 日本中文字幕电影 | 欧美一区二区三区久久 | 一区二区电影网 | 91久久国产综合久久91精品网站 | 日韩福利 | 狠狠色狠狠色综合日日五 | 日韩一区二区三区免费 | 一区二区三区四区五区视频 | 国产最新视频 | 亚洲精品欧美一区二区三区 | 99热这里只有精品2 国产福利在线导航 | 亚洲一区二区三区在线电影 | aaa日本高清在线播放免费观看 | 国产精品成人自拍 | 精品国产一区二区三区久久久 | 欧美日韩亚洲激情 | 免费精品国产的网站免费观看 | 国产高清一区二区 | h片在线 | 一区国产精品 | 日韩精品免费一区二区三区 | 亚州国产精品 | 国产欧美日韩综合精品 | 看全色黄大色黄女片18女人 | 特级毛片在线观看 | 久久久国产精品一区二区三区 | 国产高清精品在线 | 99视频这里有精品 | 久久久久久穴 | 久久久久亚洲综合 | 亚洲第一成人久久网站 | 免费视频一区二区 | 亚洲三级视频 | 久久久亚洲一区 | 成人在线观看视频网站 | 天堂av片| 亚洲成人精品久久久 |