999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于ARM的電費綜合自助系統的設計與實現

2010-08-07 08:20:58楊曉東糜元根
網絡安全技術與應用 2010年7期
關鍵詞:嵌入式數據庫用戶

楊曉東 糜元根

南京工業大學信息科學與工程學院 江蘇 210009

0 引言

本系統在用戶操作過程中,把交互信息寫入本地數據庫,并且同時更新遠程數據庫。系統設計兩個數據庫的目的也是為了在網絡不順暢的時候,用戶也可以及時購電。管理員可以在遠程數據庫上對用戶數據進行統一管理。

1 系統的實現原理

1.1 MiniGUI圖形界面應用程序開發技術

為了與用戶有很好的交互性,需要設計圖形界面便于用戶操作。常見的圖形界面設計方法是QT和MiniGUI,綜合考慮了系統的硬件,本系統采用MiniGUI進行圖形界面設計。MiniGUI是由北京飛漫軟件技術有限公司主持的自由軟件,遵循GPL條款發布。其目的是為實時嵌入式Linux系統建立一個快速、穩定和輕量級的圖形用戶界面支持系統。本系統采用的MiniGUI 1.3.1版本,可以從http://www. minigui.com上下載。

用于處理事件的窗口例程通常標志了某一個“窗口類”,具有相同窗口例程的窗口實例被認為是屬于同一窗口類。

焦點和光標的概念用于管理輸入設備和輸入事件的發送。鼠標光標是一個繪制在屏幕之上的小位圖,指示當前的鼠標位置。以某種非破壞性的方式繪制該位圖是窗口系統的責任,不過應用程序可以控制繪制哪一個位圖以及是否顯示該光標。應用程序還可以捕捉鼠標光標并獲取光標事件,即使該光標已經超出該應用程序窗口的顯示范圍。鍵盤輸入有類似的輸入焦點和鍵盤輸入插入符的概念。只有具有輸入焦點的窗口才能獲取鍵盤事件。改變窗口的焦點通常由特殊的按鍵組合或者鼠標光標事件完成。具有輸入焦點的窗口通常繪制有一個鍵盤插入符。該插入符的存在、形式、位置,以及該插入符的控制完全是由窗口的事件處理例程完成的。

應用程序可通過調用一些系統函數來要求重繪窗口或窗口的某一部分,這些事件通常由窗口例程來處理。

1.1.1 事件驅動編程

1.1.2 MiniGUI-Lite和MiniGUI-Threads

MiniGUI是一個圖形用戶界面支持系統,通常的GUI編程概念均適用于MiniGUI編程,如窗口和事件驅動編程等。

在傳統的GUI圖形系統模型中,鍵盤和鼠標動作產生由應用程序不斷輪詢的事件。這些事件通常發送到具有焦點的窗口,而應用程序把這些事件交由和該窗口相關聯的例程來處理。這些窗口例程通常是由應用程序定義的,或者是某些標準例程中的一個。操作系統、其它窗口的事件處理例程和應用程序代碼都可以產生事件。

在編寫第一個MiniGUI程序之前,我們需要了解一個事實:我們可將MiniGUI配置編譯成兩個架構上截然不同的版本——MiniGUI-Lite版或MiniGUI-Threads版。

MiniGUI的早期版本(即 MiniGUI-Threads)采用基于POSIX線程的消息傳遞和窗口管理機制,這種實現提供最大程度上的數據共享,但同時造成了MiniGUI體系結構上的脆弱。

如果某個線程因為非法的數據訪問而終止運行,則整個系統將受到影響。為了解決這個問題,使MiniGUI更符合嵌入式系統的應用需求,MiniGUI從0.98開始推出Lite版本。Lite版本的MiniGUI使用進程機制,拋棄了pThread庫,從而使得MiniGUI更穩定和更高效率。

在 MiniGUI Lite版本中,我們可以同時運行多個MiniGUI應用程序。首先我們啟動一個服務器程序mginit,然后我們可以啟動其他作為客戶端運行的 MiniGUI應用程序。如果因為某種原因客戶終止,服務器不受影響,可以繼續運行。

MiniGUI-Lite區別于MiniGUI-Threads的最大不同在于我們可以在MiniGUI-Lite程序中創建多個窗口,但不能啟動新的線程建立窗口。除此之外,其他幾乎所有的 API都和MiniGUI原有版本是兼容的。

MiniGUI-Threads適合于多窗口、實時性要求很高的系統,比如工業控制系統;而MiniGUI-Lite適合于功能豐富、結構復雜系統,比如PDA等信息產品。而且MiniGUI-Threads可以通過MiniGUI的消息函數,可在不同的線程之間傳遞消息,相比較而言,本系統采用前者。

1.1.3 窗口及窗口過程

窗口是屏幕上的一個矩形區域。在傳統的窗口系統模型中,應用程序的可視部分由一個或多個窗口構成。每一個窗口代表屏幕上的一塊繪制區域,窗口系統控制該繪制區域到實際屏幕的映射,也就是控制窗口的位置、大小和可見區域。每個窗口被分配一個屏幕繪制區域來顯示本窗口的部分或全部,也許根本沒有分配到屏幕區域(該窗口完全被其它的重疊窗口所覆蓋和隱藏)。

MiniGUI中有三種窗口類型:主窗口、對話框和控件窗口(子窗口)。每一個MiniGUI應用程序一般都要創建一個主窗口,作為應用程序的主界面或開始界面。主窗口通常包括一些子窗口,這些子窗口通常是控件窗口,也可以是自定義窗口類。應用程序還會創建其它類型的窗口,例如對話框和消息框。對話框本質上就是主窗口,應用程序一般通過對話框提示用戶進行輸入操作。消息框是用于給用戶一些提示或警告的主窗口,屬于內建的對話框類型。

一旦窗口建立之后,窗口就會從消息隊列當中獲取屬于自己的消息,然后交由它的窗口過程進行處理。窗口過程函數主要是對屬于該窗體的不同消息進行相應的處理。窗口過程函數通常使用switch語句來對各種消息(message)進行處理。

1.2 Socket網絡編程技術

當前,Socket接口是TCP/IP網絡最為通用的API,也是在Internet上進行應用開發最為通用的API。它是介于應用層和傳輸層之間的編程接口,它提供了訪問下層通信協議的大量系統調用和相應的數據結構功能。在Linux系統中,Socket是應用程序訪問下層網絡協議的惟一方法。具體地講,Socket在用戶級實現了兩個應用程序之間的網絡連接和數據交換,所以Linux中的Socket意味著網絡上的通信。

我們在做網絡傳輸數據功能時,采用了客戶端/服務器(C/S)網絡通信:服務器端守護進程不斷的監聽、等待連接;客戶端向遠程服務器發送連接請求,服務器端收到請求后,按照一定的規則建立連接,連接完成后,兩個程序之間就建立了一個虛擬的數據通信鏈路。這些程序可以直接從自己打開的套接口讀入和寫出數據,而不用關心實際的數據鏈路。具體實現過程見圖1。

圖1 基于TCP協議的socket傳輸流程圖

1.3 SQLite技術

SQLite是2000年開發出來的一種小型嵌入式數據庫。它是一個小型的C語言鏈接庫,這個鏈接庫本身就完全包含數據庫引擎的功能,可以方便地運用于嵌入式系統中。SQLite提供了對SQL92的大多數支持,支持多表、索引、事務、視圖和觸發等一系列用戶接口以及驅動。簡單易用,速度也相當得快,同時提供了豐富的數據庫接口。這個庫具有很強的內聚性,通過不到25000行的ANSIC代碼實現,而且它的源代碼完全開放,可以自由地應用于任何領域。

在與MiniGUI的連接中,SQLite的API及其易于使用,完全可以對嵌入式數據庫進行基本的操作,如建立表格、查詢、修改、插入、刪除、排序等,只需要三個用來執行SQL和獲取數據的函數。此外它還是可以擴展的,允許自定義函數,然后以Callback(回調函數)的形式傳遞進去。

2 系統的軟件設計

本系統的軟件設計分為客戶端(終端)程序設計和服務器端程序設計,主要是客戶端程序設計,服務器端主要是一個接收數據并更新數據庫的守護進程程序。

2.1 客戶端程序流程

在客戶端,登錄系統后進入主界面,主界面包括6個功能界面選擇按鈕,具體系統流程如圖2所示。

圖2 系統主流程圖

2.2 服務器端流程設計

數據庫服務器端采用 Fedora 7作為服務器操作系統,sqlite3作為數據庫,系統啟動后自動運行守護進程,這包括:建立套接字、綁定地址、開始監聽并等待客戶端的連接,收到數據后更新本地數據庫,并將操作記錄寫入設定好的日志文件中,循環執行以上過程。服務器端流程圖如圖3所示。

圖3 服務器端流程圖

3 結語

經測試,本系統完全符合人性化設計,購電方便,操作系統界面友好,簡單。每個用戶必須憑ID和密碼才能登錄,同時密碼忘記后可以通過短信貓將密碼發送到用戶賬號登記的手機中,從而大大的增強了系統的安全性。在有網絡的情況下,本地數據庫能與遠程數據庫及時更新,做到數據實時準確無誤。稍微有點遺憾的是,由于本系統過于龐大未能全面展開。

[1] 韓超.嵌入式GUI開發設計—基于MiniGUI[M].北京:電子工業出版社.2009.

[2] 李亞鋒,歐文盛. ARM嵌入式Linux系統開發從入門到精通[M].北京:清華大學出版社.2007.

猜你喜歡
嵌入式數據庫用戶
搭建基于Qt的嵌入式開發平臺
數據庫
財經(2017年2期)2017-03-10 14:35:35
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 欧美.成人.综合在线| 亚洲国产欧洲精品路线久久| 欧美精品xx| 91最新精品视频发布页| 无码有码中文字幕| 亚洲中文无码h在线观看| 人妻丰满熟妇av五码区| 3D动漫精品啪啪一区二区下载| a在线观看免费| 巨熟乳波霸若妻中文观看免费 | 中文无码伦av中文字幕| 最新午夜男女福利片视频| 亚洲天堂2014| 全裸无码专区| 国产喷水视频| 国产精品99久久久| 日韩黄色精品| 99在线小视频| 三级欧美在线| 亚洲中文在线视频| 欧美日韩理论| 中文字幕欧美日韩高清| 国内精品久久人妻无码大片高| 香蕉久久国产超碰青草| 人妻熟妇日韩AV在线播放| 日本人妻一区二区三区不卡影院| 毛片免费高清免费| 欧美.成人.综合在线| 精品视频一区二区观看| 69国产精品视频免费| 色135综合网| 在线国产三级| 九色综合伊人久久富二代| 久久久久亚洲精品成人网 | 国产精品香蕉在线| 国产乱人激情H在线观看| 香蕉色综合| 毛片视频网| 波多野吉衣一区二区三区av| 亚洲资源站av无码网址| 免费国产好深啊好涨好硬视频| 99中文字幕亚洲一区二区| 亚州AV秘 一区二区三区| 色欲不卡无码一区二区| 狠狠色噜噜狠狠狠狠色综合久| 国产丝袜丝视频在线观看| 99热这里只有精品国产99| 免费观看男人免费桶女人视频| 乱色熟女综合一区二区| 丁香六月激情婷婷| 在线另类稀缺国产呦| 婷婷六月综合网| 一级毛片在线播放| 欧美一级夜夜爽| 久久精品亚洲热综合一区二区| 九色视频一区| 亚洲人免费视频| 中文字幕在线播放不卡| 国产主播在线一区| 亚洲精品久综合蜜| 久久伊人色| 精品国产99久久| 久久中文字幕av不卡一区二区| 日韩欧美国产成人| 污视频日本| 国产免费久久精品99re不卡| 亚洲无码熟妇人妻AV在线| 国产第四页| 国产精品伦视频观看免费| 免费三A级毛片视频| 欧美国产综合视频| 久久午夜夜伦鲁鲁片不卡| 狠狠色综合网| 97狠狠操| 亚洲国产黄色| 国产成人调教在线视频| 国模粉嫩小泬视频在线观看| 中文字幕一区二区人妻电影| 99视频在线免费| 91青青草视频| 婷婷六月在线| 真人免费一级毛片一区二区|