色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 設計應用 > 嵌入式數(shù)據(jù)庫礦場安全系統(tǒng)的設計

          嵌入式數(shù)據(jù)庫礦場安全系統(tǒng)的設計

          作者: 時間:2010-08-21 來源:網(wǎng)絡 收藏

            

            數(shù)據(jù)采集程序設計

            數(shù)據(jù)采集模塊程序使用了 ReadFile.h 和ReadFile.cpp 文件,因此本文設計了CReadFile 類,該類封裝了對dev.xml 和rtdata.xml 交換文件所有的數(shù)據(jù)采集操作。根據(jù) dev.xml 和rtdata.xml 交換文件的構成,以及數(shù)據(jù)庫存儲操作上的考慮,程序為每個傳感器設計了DEVDATA 和REALDATA 結(jié)構體,分別用來保存dev.xml 和rtdata.xml 文件的數(shù)據(jù)信息。DEVDATA 結(jié)構體如下所示:

            typedef struct devdata

            { TCHAR m_str_devSubstation[MAXLENGTH];//分站

            TCHAR m_str_devID[MAXID];//傳感器編號

            TCHAR m_str_devPlace[MAXLENGTH];//安裝地點

            TCHAR m str_devName[MAX];//檢測類別

            TCHAR m str_devType[MAX];//傳感器類型

            TCHAR m str_devUnit[MAX];//單位

            float m_data_up;//量程上限

            float mes_data_down;//量程下限

            float m_alarrn_up;//報警上限

            float m_alarm_down;//報警下限

            float m_power_off;//斷電值

            float m_power_on;//復電值

            }DEVDATA;

            REALDATA 結(jié)構體如下所示:

            typedef struct realdata

            {TCHAR m_str_devID[MAXID];//傳感器編號

            float m_data;//傳感器數(shù)值

            TCHAR m_str_dataStatus[MAXSTATUS];//數(shù)據(jù)狀態(tài)

            }REALDATA;

            CReadFile 類使用了CPtrList 鏈表數(shù)據(jù)結(jié)構,用以管理交換文件的所有傳感器信息,數(shù)據(jù)節(jié)點為DEVDATA 和REALDATA 結(jié)構體。

            3.2 數(shù)據(jù)存儲模塊

            將傳感器設備上傳時間作為 key,封裝在DEVDATA 結(jié)構體中的設備安裝信息和封裝在REALDATA 結(jié)構體中的實時數(shù)據(jù)信息分別構成數(shù)據(jù)庫的data,從而構成兩組Key 到Data對。因此,該方案將形成兩張表,分別存儲在兩個數(shù)據(jù)庫文件中。將傳感器設備安裝信息和實時數(shù)據(jù)信息形成兩個數(shù)據(jù)庫文件分別存儲,只在設備安裝信息改變的時候才會進行設備文件的存儲操作,這樣大大減少了數(shù)據(jù)庫文件的磁盤占用空間。

             用Key/Data(關鍵詞/數(shù)據(jù))來區(qū)分數(shù)據(jù)庫中的數(shù)據(jù),Key/Data 對是 用來進行數(shù)據(jù)庫管理的基礎,由這兩者構成的Key/Data 對組成了數(shù)據(jù)庫中的一個基本結(jié)構單元,而整個數(shù)據(jù)庫實際上就是由許多這樣的結(jié)構單元所構成的。也就是說,調(diào)用數(shù)據(jù)庫接口實際上就是提供了相應的關鍵詞,通過該關鍵詞來查找要操作的數(shù)據(jù)。

            如果把一組相關的 Key/Data 對也看作一個表的話,那么每一個數(shù)據(jù)庫只允許存放一個table,因此,一般一種類型的Key/Data 對構成一個數(shù)據(jù)庫文件。數(shù)據(jù)庫存儲代碼設計主要分為設備安裝信息(key/data 對為設備上傳時間/DEVDATA 結(jié)構體)存儲代碼設計和實時數(shù)據(jù)信息(key/data 對為設備一上傳時間/REALDATA 結(jié)構體)存儲代碼設計。 是以文件為單位進行數(shù)據(jù)庫管理的,由于設備安裝信息只在數(shù)據(jù)改變的時候才進行數(shù)據(jù)庫存儲操作,并且其間隔周期較長,因此作者設計了dev.db 文件實現(xiàn)安裝信息的存儲管理;由于實時數(shù)據(jù)信息的更新周期較短,數(shù)據(jù)庫存儲操作頻繁,并且每天都會有數(shù)據(jù)的采集和更新,因此作者以每天的日期為單位設計了實時數(shù)據(jù)庫文件,系統(tǒng)將會獲取當天的日期,并以之為文件名形成數(shù)據(jù)庫文件進行數(shù)據(jù)庫操作,例如當天的日期為2007 年2 月8 日,那么數(shù)據(jù)庫文件名為 2007-02-08.db 。

           



          評論


          流程圖:

          技術專區(qū)

          關閉