亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        支持Android智能手機(jī)控制的DALI智能照明系統(tǒng)設(shè)計(jì)

        2013-12-04 03:26:14佘咸寧許錦標(biāo)
        照明工程學(xué)報(bào) 2013年2期
        關(guān)鍵詞:服務(wù)器端控件命令

        佘咸寧 許錦標(biāo)

        (廣東工業(yè)大學(xué)自動(dòng)化學(xué)院,廣東廣州 510006)

        1 引言[1]

        智能照明系統(tǒng)應(yīng)用在智能建筑中,不僅能營造出舒適的生活工作環(huán)境,引入現(xiàn)代化的管理方式,而且還能夠節(jié)約能源。傳統(tǒng)的智能家居系統(tǒng),大多采用PC做控制終端,并基于 Internet的遠(yuǎn)程控制,受到Internet地域的限制,使用不是很方便。網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展為智能家居提供了強(qiáng)大動(dòng)力,智能手機(jī)作為控制終端已成必然趨勢。本文設(shè)計(jì)一種將Android操作系統(tǒng)的智能手機(jī)作為控制終端的DALI智能照明系統(tǒng)。

        2 DALI 協(xié)議簡介[2]

        數(shù)字可尋址照明接口 (DALI,Digital Addressing Lighting Interface)協(xié)議是目前照明領(lǐng)域的國際標(biāo)準(zhǔn)協(xié)議,也是國際電工委員會(huì)的標(biāo)準(zhǔn)(IEC60929)。DALI系統(tǒng)采用主從式結(jié)構(gòu),系統(tǒng)最多可以連接64個(gè)從控模塊,每個(gè)從控模塊都擁有一個(gè)特定的地址,該地址在系統(tǒng)初始化時(shí)設(shè)定,使用過程中根據(jù)需求可修改從控模塊的地址。從控模塊最多可分為16組 (以組地址區(qū)分),每個(gè)模塊可以設(shè)定16個(gè)場景,組地址和場景都可以根據(jù)需要設(shè)定。主控模塊與從控模塊之間使用兩條信號線通信,數(shù)據(jù)采集用曼徹斯特編碼方式編碼,信號上升沿表示“1”,下降沿表示“0”,通信速率為1200baud/s。通信的過程中主控模塊使用兩種不同的數(shù)據(jù)幀格式:發(fā)送幀 (主機(jī)發(fā)送從機(jī))和接收幀 (從機(jī)發(fā)送到主機(jī))。主控模塊發(fā)送信息包括一個(gè)起始位,16個(gè)數(shù)據(jù)位 (8位地址和8位指令)以及2個(gè)停止位;從控模塊的返回幀包括一個(gè)起始位8個(gè)數(shù)據(jù)位以及兩個(gè)停止位。

        3 系統(tǒng)總體設(shè)計(jì)

        本文設(shè)計(jì)了一種客戶端/服務(wù)器 (C/S)架構(gòu)的照明控制系統(tǒng)。手機(jī)客戶端軟件是在目前比較流行的Android操作系統(tǒng)下開發(fā)的。服務(wù)器端軟件是Windows系統(tǒng)下的VB6.0開發(fā)的??蛻舳撕头?wù)器端是通過套接字 (Socket)來建立連接。Android系統(tǒng)下應(yīng)用程序的編程語言是Java,而Java提供了Socket以及 ServerSocket 來實(shí)現(xiàn) Socket[3]通信。Windows系統(tǒng)也提供了Winsock控件[4]來支持Socket通信。同時(shí),VB6.0提供MSComm控件來開發(fā)串口通信程序。

        整個(gè)系統(tǒng)的的設(shè)計(jì)簡圖如圖1所示。服務(wù)器端接收到客戶端發(fā)過來控制命令后解析這些命令并調(diào)用相應(yīng)處理程序,然后將控制命令從串口發(fā)送出去。RS232-DALI網(wǎng)關(guān)接收到從服務(wù)器串口發(fā)送過來的控制命令后,就會(huì)響應(yīng)從控模塊,整個(gè)過程完成了電平的轉(zhuǎn)換以及控制命令的解析。

        圖1 系統(tǒng)整體設(shè)計(jì)簡圖Fig.1 The overall design of system diagram

        4 客戶端軟件設(shè)計(jì)

        4.1 設(shè)計(jì)簡介

        客戶端軟件的開發(fā)環(huán)境是實(shí)時(shí)最新版本的Eclipse,JDK以及Android SDK也都是實(shí)時(shí)最新的版本。軟件設(shè)計(jì)了六個(gè)主要控制界面 (如圖2所示)以及一些其他與軟件相關(guān)的界面。主界面 (圖2(a))對應(yīng)一個(gè)主Activity,其他五個(gè)界面分別對應(yīng)四個(gè)Activity分別實(shí)現(xiàn)從控模塊查詢與控制、場景控制與設(shè)置、組地址設(shè)置、直接命令等功能。這四個(gè)Activity都繼承自主Activity。數(shù)據(jù)的發(fā)送和接收函數(shù)繼承自主Activity。

        4.2 主Activity的設(shè)計(jì)

        主Activity是軟件的主界面如圖2(a)所示,兩個(gè)滑動(dòng)條分別完成直接功率調(diào)光和淡光時(shí)間設(shè)置,滑動(dòng)條的每一次滑動(dòng)將觸發(fā)一次數(shù)據(jù)發(fā)送的命令,服務(wù)器端監(jiān)聽到控制命令后對發(fā)送過來的控制命令進(jìn)行解析,完成對應(yīng)地址的從控模塊直接功率調(diào)光以及淡光時(shí)間的設(shè)置。兩個(gè)地址選擇框用來設(shè)置地址的模式,某個(gè)選擇框的選中代表選擇相應(yīng)地址模式,兩者均未選中表示地址為短地址。地址的選定是通過從文本框手動(dòng)輸入,最后兩個(gè)按鈕實(shí)現(xiàn)開燈和關(guān)燈的功能。

        主界面是進(jìn)入其他界面的門戶,Android提供專門的菜單鍵,進(jìn)行菜單設(shè)計(jì)。軟件設(shè)計(jì)了兩層菜單,第一層包括軟件設(shè)置、工具、高級、幫助四個(gè)菜單。設(shè)置菜單包含軟件設(shè)置、從控模塊設(shè)置、退出三個(gè)子菜單;工具菜單包含燈光亮度、場景、組;高級只包含直接命令一個(gè)子菜單;幫助部分包含軟件的相關(guān)信息。Android提供OnCreateOptionMenu進(jìn)行菜單設(shè)計(jì),同時(shí)提供了OnOptionItemSelected處理菜單事件。整個(gè)軟件的流程如圖3所示。

        客戶端與服務(wù)器端是通過Socket建立連接,既有數(shù)據(jù)從客戶端發(fā)送到服務(wù)器端,也有數(shù)據(jù)從服務(wù)器端返回至客戶端,即DALI協(xié)議中的發(fā)送幀與接收幀。前面已經(jīng)提到過Android應(yīng)用程序采用的編程語言是Java。Java提供了許多關(guān)于Socket通信的類和函數(shù),文中客戶端使用了客戶端類Socket以及BufferedWriter和DataInputStream輸入輸出類實(shí)現(xiàn)Socket通信??蛻舳嗽O(shè)計(jì)了兩個(gè)函數(shù),SendCmd(String cmd)和SendRead(String cmd)。SendCmd的發(fā)送單向數(shù)據(jù)沒有返回幀,SendRead既發(fā)送數(shù)據(jù)同時(shí)接收服務(wù)器端返回的數(shù)據(jù)。分別設(shè)計(jì)兩個(gè)函數(shù)的原因是因?yàn)镈ataInputStream的readLine方法在沒有數(shù)據(jù)返回時(shí)會(huì)造成Socket阻塞。

        Java的數(shù)據(jù)類型與Vb的數(shù)據(jù)類型存在一定的差異,數(shù)據(jù)類型的轉(zhuǎn)換比較復(fù)雜。本文統(tǒng)一使用字符串實(shí)現(xiàn)客戶端與服務(wù)器端的數(shù)據(jù)交換。將各種發(fā)送數(shù)據(jù)通過特定的符號組合成字符串,經(jīng)客戶端發(fā)送給服務(wù)器端,服務(wù)器端軟件通個(gè)分隔函數(shù)將字符串分隔成組合前的信息。因此,數(shù)據(jù)發(fā)送和接收函數(shù)不需要因?yàn)閿?shù)據(jù)類型的不同而采取不同的函數(shù),同時(shí)也省去Java與Vb數(shù)據(jù)類型不一致的處理過程。

        圖2 客戶端軟件界面Fig.2 The interface of client software

        圖3 客戶端軟件流程圖Fig.3 The flow chart of client software

        4.3 各個(gè)功能模塊的設(shè)計(jì)

        實(shí)現(xiàn)各模塊的類都是主Activity的子類,它們都使用了主Activity的數(shù)據(jù)發(fā)送和接收函數(shù)。各功能模塊的設(shè)計(jì)簡介如下:

        1)從控單元設(shè)置 (圖2(b))該模塊能完成從控模塊的最大亮度、最小亮度、故障亮度、上電亮度、淡光時(shí)間、淡光速率的設(shè)置和查詢。完成版本號、設(shè)備類型、最小功率以及當(dāng)前亮度的查詢。

        2)組控制 (圖2(f))該模塊設(shè)計(jì)了16個(gè)選擇框 (Checkbox),分別代表十六個(gè)組。通過選擇框的選擇以及設(shè)置和查詢,能夠?qū)崿F(xiàn)組地址的統(tǒng)一設(shè)置和查詢。

        3)場景控制 (圖2(c)、(d))該模塊包括場景的選擇、設(shè)置、查詢功能。場景的設(shè)置和查詢部分設(shè)計(jì)了一個(gè)對話框,這樣設(shè)計(jì)的原因是可以在一個(gè)Activity內(nèi)完成所有的功能。

        4)直接命令 (圖2(e))這個(gè)模塊主要為了方便調(diào)試而設(shè)計(jì)的??梢酝ㄟ^對應(yīng)的文本框發(fā)送自定義的命令,同時(shí)可以回顯從服務(wù)器端返回的數(shù)據(jù),它發(fā)送的命令非常直觀,可以用來調(diào)試RS232-DALI網(wǎng)關(guān)以及從控模塊。

        5 服務(wù)器端軟件設(shè)計(jì)

        5.1 設(shè)計(jì)簡介

        服務(wù)器端軟件是使用VB6.0開發(fā)的,軟件使用了Windows提供的Winsock和MSComm控件。Winsock控件提供了訪問TCP和UDP網(wǎng)絡(luò)服務(wù)的方便途徑。編寫客戶或服務(wù)器應(yīng)用程序,不必了解TCP的細(xì)節(jié)或調(diào)用低級的Winsock API。通過設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺遠(yuǎn)程機(jī)器上去,并且還可雙向交換數(shù)據(jù)。MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。服務(wù)器端支持多個(gè)客戶端,基本服務(wù)器只能接受一個(gè)連接請求。通過創(chuàng)建Winsock控件數(shù)組,使用一個(gè)控件也可以同時(shí)接受多個(gè)連接請求。利用這種方法,不需要關(guān)閉連接,而只需創(chuàng)建新的控件實(shí)例 (通過設(shè)置其索引屬性),然后在新的實(shí)例上調(diào)用Accept方法。軟件啟動(dòng)后開始監(jiān)聽來自客戶端的Socket請求。當(dāng)監(jiān)聽到從客戶端發(fā)送過來的數(shù)據(jù)以后,然后判斷發(fā)送過來的數(shù)據(jù),再調(diào)用相應(yīng)的數(shù)據(jù)處理函數(shù)。在軟件啟動(dòng)的同時(shí)也開啟了定時(shí)器,循環(huán)檢測標(biāo)志位,檢測到以后進(jìn)入對應(yīng)的命令處理函數(shù)。軟件的流程如圖4所示。

        5.2 數(shù)據(jù)的分析和處理

        當(dāng)服務(wù)器端接收到從客戶端傳過來的字符串時(shí),使用Split函數(shù)將字符串分隔成數(shù)組。根據(jù)數(shù)組的長度判斷命令的種類?;究刂泼铋L度為3、組的長度判斷命令的種類?;究刂泼铋L度為3、組控制命令長度為4、從控模塊控制命令長度為9、場景控制命令長度為19。VB6.0提供了一個(gè)Timer控件,通過定時(shí)器來實(shí)現(xiàn)控制命令的循環(huán)監(jiān)聽和處理。程序定義了一個(gè)標(biāo)志位來判斷控制命令類型,當(dāng)接收到客戶端數(shù)據(jù)并進(jìn)行分隔,賦值等操作以后相對應(yīng)的標(biāo)志位被致位,定時(shí)器循環(huán)檢測標(biāo)志位,當(dāng)檢測對應(yīng)標(biāo)志位被置“1”時(shí)便進(jìn)入對應(yīng)的命令處理程序,處理完以后標(biāo)志位被置零。

        5.3 地址設(shè)置

        圖4 服務(wù)器端流程圖Fig.4 The flow chart of server software

        DALI自動(dòng)分配地址簡介,首先給需要重新分配地址的單元分配一個(gè)24位二進(jìn)制隨機(jī)地址,然后通過尋找隨機(jī)地址最小的單元并分配短地址,然后重復(fù)尋找直到所有需要設(shè)置短地址的單元都設(shè)置完。因?yàn)?4位二進(jìn)制數(shù)比較大,按常規(guī)方法尋找的話,花費(fèi)的時(shí)間比較長。從上面地址分配的原理可以看到,在整個(gè)地址分配的過程中,最主要是主機(jī)24位數(shù)據(jù)和DALI設(shè)備24隨機(jī)數(shù)比較的問題。如何才能找到最小的隨機(jī)數(shù)的設(shè)備,這是解決這個(gè)問題是關(guān)鍵。比較兩個(gè)數(shù)據(jù)的大小方法很多,這里采用是2分算法。實(shí)現(xiàn)步驟如下:

        1)主機(jī)發(fā)送FFFFFF與DALI設(shè)備比較,因?yàn)镈ALI設(shè)備產(chǎn)生的隨機(jī)肯定比FFFFFF要小的,如果總線后,采用2分算法比較主機(jī)數(shù)據(jù)上存在沒有分配地址的設(shè)備,則肯定回答YES。否則NO。

        2)在上一步中得知總線上有沒有分配地址的設(shè)備和隨機(jī)數(shù)。2分法基數(shù)為8、4、2、1,三字節(jié)的數(shù)據(jù)按半字節(jié)劃分為6個(gè)半字節(jié)數(shù),從最高的半字節(jié),假設(shè)開始時(shí)值Y=8,如果有DALI設(shè)備回答YES,則將現(xiàn)值減去2分法基數(shù)的下一個(gè)數(shù),修改為Y=Y-4,如有DALI設(shè)備回答NO,則將現(xiàn)值加上2分法基數(shù)的下一個(gè)數(shù),修改Y=Y+4,直到2分法基數(shù)的值小于1為止。

        3)找到最小的隨機(jī)數(shù)的設(shè)備后,使用PROGRAM SHORT ADDRESS命令給這個(gè)設(shè)備分配一個(gè)地址。

        4)完成地址分配后,使用WITHDRAW退出命令,使已分配地址的設(shè)備退出比較命令。

        5)重復(fù)以上步驟,比較找到其他的DALI設(shè)備。直至到發(fā)送FFFFFF都沒有設(shè)備回答YES為止。

        6 結(jié)束語

        隨著智能手機(jī)行業(yè)的發(fā)展,智能手機(jī)在生活當(dāng)中充當(dāng)?shù)慕巧苍絹碓街匾0阉O(shè)計(jì)成智能照明控制終端是一種趨勢,是豐富智能手機(jī)功能的一個(gè)設(shè)計(jì)。本文在Android系統(tǒng)上面開發(fā)客戶端軟件,界面設(shè)計(jì)符合人們的操作習(xí)慣,簡單直觀。同時(shí)開發(fā)了服務(wù)器端軟件,并與DALI網(wǎng)絡(luò)連接調(diào)試通過。實(shí)現(xiàn)了文中所述功能。

        總之,這樣一個(gè)設(shè)計(jì)符合人們對智能家居生活的要求,與此同時(shí)將智能手機(jī)引入到智能照明系統(tǒng)當(dāng)中豐富了智能照明系統(tǒng)的控制終端。

        [1]況莉莉,李振,衡友躍.基于Android智能家居的探討[J].淮北職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012,11(3):85~86.

        [2]李凌宇,許錦標(biāo).紅外遙控器在DALI系統(tǒng)中的應(yīng)用設(shè)計(jì) [J].現(xiàn)代建筑電氣,2010,1(1):19~23.

        [3]倪凱等.一種移動(dòng)終端遠(yuǎn)程數(shù)據(jù)訪問控制方法.計(jì)算機(jī)應(yīng)用與軟件,2012(6).

        [4]武軍,康忠良.Windows套接字在VB,VC,Delphi中的實(shí)現(xiàn).計(jì)算機(jī)應(yīng)用研究,2001,18(5):117~119.

        猜你喜歡
        服務(wù)器端控件命令
        只聽主人的命令
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        移防命令下達(dá)后
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        這是人民的命令
        在Windows中安裝OpenVPN
        藍(lán)色命令
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證
        玩弄人妻少妇500系列网址| 成人国产激情自拍视频| 又色又爽又黄的视频软件app| 成人性做爰aaa片免费看| 好紧好爽免费午夜视频| 久久久久亚洲av无码专区导航| 激情亚洲一区国产精品| 最新国产成人综合在线观看| 偷窥偷拍一区二区三区| 欧美疯狂性受xxxxx喷水| 先锋影音av最新资源| 国内精品一区二区2021在线| 国产三级一区二区三区在线观看| 日本在线观看一区二区三| 国产精品爽黄69天堂a| 精品无码久久久久久久久粉色 | 亚洲第一网站免费视频| 国产麻豆精品久久一二三| 开心五月激情五月五月天| 国产xxxxx在线观看| 免费在线视频一区| 日本成年少妇人妻中文字幕| 日韩乱码人妻无码系列中文字幕| 国产自偷自偷免费一区| 亚洲中文久久久久无码| 99久久婷婷亚洲综合国产| 日本成本人片免费网站| 亚洲国产精品一区二区第四页| 亚洲一码二码在线观看| 中文字幕一区二区三区久久网| 久久国产精品-国产精品| 日韩女人毛片在线播放| 国产伦理一区二区久久精品| 少妇做爰免费视频了| 久久香蕉国产精品一区二区三| 亚洲中文字幕高清视频| 精品人妻伦一二三区久久| 久久精品人人做人人爽电影蜜月| 无码8090精品久久一区| 亚洲国产精品区在线观看| 亚洲av高清在线一区二区三区|