本發(fā)明涉及通訊接口框架技術(shù)領(lǐng)域,具體地,涉及一種基于對(duì)象的智能家居網(wǎng)關(guān)通訊接口框架。
背景技術(shù):
隨著經(jīng)濟(jì)的發(fā)展,人們期望擁有一個(gè)安全、舒適、節(jié)能和便捷的家居環(huán)境,智能家居系統(tǒng)通過計(jì)算機(jī)技術(shù)、嵌入式技術(shù)、傳感器技術(shù)、網(wǎng)絡(luò)通訊技術(shù)的融合,及遠(yuǎn)程監(jiān)控、安全防范、照明控制、網(wǎng)絡(luò)連接的功能與一體,滿足信息時(shí)代人們對(duì)高水平生活的追求。在智能家居系統(tǒng)中,智能家居網(wǎng)關(guān)是整個(gè)系統(tǒng)的核心。智能家居網(wǎng)關(guān)要連接智能家居系統(tǒng)中各種不同接口,不同協(xié)議數(shù)量眾多的智能設(shè)備,當(dāng)智能家居網(wǎng)關(guān)與其他智能設(shè)備組成工作網(wǎng)路后,即可實(shí)現(xiàn)智能家居系統(tǒng)的遠(yuǎn)程控制、聯(lián)動(dòng)控制、定時(shí)控制、編程控制,以及人機(jī)互動(dòng)控制等功能。當(dāng)前智能家居系統(tǒng)的中的各類設(shè)備數(shù)量眾多,智能家居網(wǎng)關(guān)要和開關(guān)照明、窗簾、地暖、空調(diào)、門鎖、門口對(duì)講及安防系統(tǒng)、藍(lán)牙室內(nèi)定位系統(tǒng)、智能白色家電這些設(shè)備進(jìn)行對(duì)接,而且對(duì)接的硬件接口也各異,有KNX接口、RS232接口、RS485接口、有干接點(diǎn)輸入輸出接口、Ethernet接口、WIFI接口、ZigBee接口、藍(lán)牙接口。協(xié)議除了比較標(biāo)準(zhǔn)化的KNX協(xié)議和Modbus協(xié)議外,很多智能家居系統(tǒng)設(shè)備廠商都使用了自己定義的協(xié)議。這就造成了各個(gè)設(shè)備互連上的兼容性問題。而基于ARM-Linux智能家居網(wǎng)關(guān)的出現(xiàn)解決了這個(gè)問題。基于ARM內(nèi)核的CPU,其功耗小,外圍接口豐富,Linux操作系統(tǒng)是著名的開源的操作系統(tǒng),非常方便根據(jù)需要進(jìn)行裁剪,并且基于Linux開源操作系統(tǒng)有大量開源成熟的軟件可以使用,因此基于ARM-Linux架構(gòu)的智能家居網(wǎng)關(guān)非常符合智能家居系統(tǒng)的需求。
現(xiàn)在市場(chǎng)上智能家居網(wǎng)關(guān),硬件大多是基于X86,操作系統(tǒng)是Widonws,功耗大,需要加裝風(fēng)扇進(jìn)行散熱,可靠性差。而且每當(dāng)需要連接一個(gè)新的智能家居設(shè)備,都需要根據(jù)智能家居設(shè)備的通訊協(xié)議開發(fā)新的通訊接口,并更新智能家居網(wǎng)關(guān)程序,而更新通常需要專業(yè)的人員去更新設(shè)置,靈活性,易用性不夠。另外很多網(wǎng)關(guān) 沒有斷線重連的功能,就是說當(dāng)智能網(wǎng)關(guān)所連接的設(shè)備因?yàn)楣收匣蛘呤侨藶榈財(cái)嚯娭貑⒑螅悄芗揖泳W(wǎng)關(guān)不能自動(dòng)和這些設(shè)備建立連接后進(jìn)行通訊。必須給智能家居網(wǎng)關(guān)復(fù)位重啟才能恢復(fù)正常的通訊功能。而基于ARM-Linux智能家居網(wǎng)關(guān)則不存在上述問題,ARM-Linux網(wǎng)關(guān)集成了通用程度比較高的KNX協(xié)議接口和Modbus協(xié)議接口以外,對(duì)于第三方設(shè)備的支持非常便捷和容易,只要能獲得第三方設(shè)備的通訊協(xié)議就可以實(shí)現(xiàn)。獲得第三方設(shè)備的通訊協(xié)議后需根據(jù)相應(yīng)的模板撰寫XML文件,并用該XML文件描述協(xié)議的特性,將該XML文件復(fù)制到智能網(wǎng)關(guān)制定目錄中,并重啟智能網(wǎng)關(guān),智能網(wǎng)關(guān)就可以和第三方的設(shè)備進(jìn)行正常通訊了。而且對(duì)于通訊故障的設(shè)備具備自動(dòng)恢復(fù)通訊的功能?;贏RM-Linux架構(gòu)的智能網(wǎng)關(guān)具有KNX、RS232、RS485、GPIO、Ethernet等多種硬件通訊接口,通過這些硬件接口可以連接各種各樣不同種類的設(shè)備。鑒于這些接口不同的工作方式,比如KNX是基于事件驅(qū)動(dòng)的通訊總線,RS232是基于全雙工通訊接口,RS485是基于半雙工通訊接口,GPIO是基于查詢的通訊接口,Ethernet是全雙工通訊接口。為此亟需設(shè)計(jì)了一種可以兼容以上各種硬件接口的通訊接口框架。
目前沒有發(fā)現(xiàn)同本發(fā)明類似技術(shù)的說明或報(bào)道,也尚未收集到國內(nèi)外類似的資料。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)中存在的上述不足,提供了一種基于對(duì)象的智能家居網(wǎng)關(guān)通訊接口框架,該通訊接口框架可以兼容上各種硬件接口的通訊接口框架,通過這種通訊接口框架可以快速的支持各種接口、各種格式的通訊協(xié)議,和眾多廠家的設(shè)備進(jìn)行互連通訊。
為實(shí)現(xiàn)上述目的,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的。
一種基于對(duì)象的智能家居網(wǎng)關(guān)通訊接口框架,包括硬件接口模塊、通訊協(xié)議模塊和數(shù)據(jù)讀寫模塊;所述通訊協(xié)議模塊與硬件接口模塊相連接,所述數(shù)據(jù)讀寫模塊與通訊協(xié)議模塊相連接;
其中:
所述硬件接口模塊,通過將實(shí)際的硬件接口抽象為接口對(duì)象Interface,實(shí)現(xiàn)硬件通訊接口連接;
所述通訊協(xié)議模塊,通過將通訊協(xié)議抽象為驅(qū)動(dòng)對(duì)象Driver,實(shí)現(xiàn)存放硬件接口模塊連接的硬件通訊接口下同時(shí)支持的通訊協(xié)議驅(qū)動(dòng)程序;
所述數(shù)據(jù)讀寫模塊,通過將連接設(shè)備上的數(shù)據(jù)點(diǎn)抽象為數(shù)據(jù)點(diǎn)對(duì)象DataTag,實(shí)現(xiàn)對(duì)通訊協(xié)議的報(bào)文讀寫。
所述通訊協(xié)議模塊與硬件接口模塊相連接,用于獲取硬件接口模塊Interface的使用權(quán),所述通訊協(xié)議模塊與數(shù)據(jù)讀寫模塊相連接,用于獲取數(shù)據(jù)讀寫模塊需要處理的DataTag。
優(yōu)選地,所述硬件接口模塊設(shè)有用于設(shè)置Interface的Interface單元,所述Interface單元包括服務(wù)器工作模式和客戶端工作模式,其中:
所述服務(wù)器工作模式用于實(shí)現(xiàn)KNX總線協(xié)議、UDP協(xié)議和TCP協(xié)議下的硬件通訊接口連接;
所述客戶端工作模式用于實(shí)現(xiàn)Modbus協(xié)議下的硬件通訊接口連接;
對(duì)于RS485總線協(xié)議和RS232總線協(xié)議的硬件通訊接口連接,根據(jù)連接設(shè)備的工作方式選擇接Interface單元的工作模式:當(dāng)連接設(shè)備的工作方式為事件通知Event時(shí),選擇Interface單元的服務(wù)器工作模式;當(dāng)連接設(shè)備的工作方式為輪詢POLL時(shí),選擇Interface單元的客戶端工作模式。
所述Interface的對(duì)象具有打開、關(guān)閉、發(fā)送、接收的功能和方法。
所述通訊協(xié)議模塊設(shè)有Driver鏈表單元,所述通訊協(xié)議驅(qū)動(dòng)程序存放于Driver鏈表單元。
所述通訊協(xié)議驅(qū)動(dòng)程序包括通訊驅(qū)動(dòng)主程序eHomeEngine和通訊驅(qū)動(dòng)更新程序*.so文件;所述通訊驅(qū)動(dòng)主程序eHomeEngine通過調(diào)用通訊驅(qū)動(dòng)更新程序*.so文件完成增加新的通訊協(xié)議驅(qū)動(dòng)程序。
所述數(shù)據(jù)讀寫模塊包括讀取鏈表單元和寫入鏈表單元,所述讀取鏈表單元用于存放需要讀取的DataTag,所述寫入鏈表單元用于存放需要寫入的DataTag。
所述DataTag的對(duì)象包括數(shù)據(jù)的地址、類型、格式、讀寫屬性以及重讀次數(shù)。
所述數(shù)據(jù)依賴于具體的連接設(shè)備。
所述DataTag中的所有Tag點(diǎn),通過Tag目錄TagDirectory建立Tag.ID和Tag的映射。
通訊協(xié)議模塊的Driver鏈表單元用于獲得Interface的使用權(quán),并從數(shù)據(jù)讀寫模塊保存DataTag的讀取鏈表單元和寫入鏈表單元獲取需要處理的DataTag對(duì)象;
通訊協(xié)議模塊獲取到需要處理的DataTag對(duì)象后,根據(jù)連接設(shè)備的通訊協(xié)議實(shí)現(xiàn)報(bào)文的打包,并調(diào)用Interface對(duì)象的發(fā)送方法將構(gòu)建好的報(bào)文發(fā)送出去;
通訊協(xié)議模塊調(diào)用Interface對(duì)象的接收方法接收連接設(shè)備的應(yīng)答,在接收到的應(yīng)答數(shù)據(jù)中查找、校驗(yàn)是否有正確的報(bào)文:
-如果有正確的報(bào)文,就將報(bào)文中的數(shù)據(jù)解析出來放到DataTag對(duì)象中;
-如果沒有正確的報(bào)文,則根據(jù)是否設(shè)置了DataTag對(duì)象中的重讀參數(shù)進(jìn)行報(bào)文的重新讀取和/或?qū)懭搿?/p>
優(yōu)選地,設(shè)置連接設(shè)備的寫入優(yōu)先權(quán)高于讀取優(yōu)先權(quán),通訊協(xié)議模塊的Driver鏈表單元從數(shù)據(jù)讀寫模塊保存DataTag的讀取鏈表單元和寫入鏈表單元獲取需要處理的DataTag對(duì)象時(shí),先從寫入鏈表單元中獲取DataTag。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:
1、本發(fā)明通過對(duì)智能家居網(wǎng)關(guān)和各種智能家居設(shè)備的通訊進(jìn)行抽象,解決了現(xiàn)有技術(shù)中沒有解決的兼容問題,使設(shè)備連接更加方便;
2、本發(fā)明結(jié)構(gòu)可靠、靈活性強(qiáng)、簡(jiǎn)單易用,可以兼容上各種硬件接口的通訊接口框架,通過這種通訊接口框架可以快速的支持各種接口、各種格式的通訊協(xié)議,和眾多廠家的設(shè)備進(jìn)行互連通訊;
3、本發(fā)明填補(bǔ)了現(xiàn)有技術(shù)中關(guān)于該通訊接口框架的空白,適合推廣。
附圖說明
通過閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1為通訊接口框架的結(jié)構(gòu)圖;
圖2為通訊協(xié)議驅(qū)動(dòng)程序關(guān)系示意圖;
圖3為通訊接口框架Json樹形圖。
具體實(shí)施方式
下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說明:本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。
實(shí)施例
本實(shí)施例提供了一種基于對(duì)象的智能家居網(wǎng)關(guān)通訊接口框架,包括硬件接口模塊、通訊協(xié)議模塊和數(shù)據(jù)讀寫模塊;所述通訊協(xié)議模塊與硬件接口模塊相連接,所 述數(shù)據(jù)讀寫模塊與通訊協(xié)議模塊相連接;
其中:
所述硬件接口模塊,通過將實(shí)際的硬件接口抽象為接口對(duì)象Interface,實(shí)現(xiàn)硬件通訊接口連接;
所述通訊協(xié)議模塊,通過將通訊協(xié)議抽象為驅(qū)動(dòng)對(duì)象Driver,實(shí)現(xiàn)存放硬件接口模塊連接的硬件通訊接口下同時(shí)支持的通訊協(xié)議驅(qū)動(dòng)程序;
所述數(shù)據(jù)讀寫模塊,通過將連接設(shè)備上的數(shù)據(jù)點(diǎn)抽象為數(shù)據(jù)點(diǎn)對(duì)象DataTag,實(shí)現(xiàn)對(duì)通訊協(xié)議的報(bào)文讀寫;
所述通訊協(xié)議模塊與硬件接口模塊相連接,用于獲取Interface的使用權(quán),所述通訊協(xié)議模塊與數(shù)據(jù)讀寫模塊相連接,用于獲取需要處理的DataTag。
進(jìn)一步地,所述硬件接口模塊設(shè)有用于設(shè)置Interface的Interface單元,所述Interface單元包括服務(wù)器工作模式和客戶端工作模式,其中:
所述服務(wù)器工作模式用于實(shí)現(xiàn)KNX總線協(xié)議、UDP協(xié)議和TCP協(xié)議下的硬件通訊接口連接;
所述客戶端工作模式用于實(shí)現(xiàn)Modbus協(xié)議下的硬件通訊接口連接;
對(duì)于RS485總線協(xié)議和RS232總線協(xié)議的硬件通訊接口連接,根據(jù)連接設(shè)備的工作方式選擇接Interface單元的工作模式;當(dāng)連接設(shè)備的工作方式為事件通知EVENT時(shí),選擇Interface單元的服務(wù)器工作模式,當(dāng)連接設(shè)備的工作方式為輪詢POLL時(shí),選擇Interface單元的客戶端工作模式。
進(jìn)一步地,所述Interface的對(duì)象具有打開、關(guān)閉、發(fā)送、接收的功能和方法。
進(jìn)一步地,所述通訊協(xié)議模塊設(shè)有Driver鏈表單元,所述通訊協(xié)議驅(qū)動(dòng)程序存放于Driver鏈表單元。
進(jìn)一步地,所述通訊協(xié)議驅(qū)動(dòng)程序包括通訊驅(qū)動(dòng)主程序eHomeEngine和通訊驅(qū)動(dòng)更新程序*.so文件;所述通訊驅(qū)動(dòng)主程序eHomeEngine通過調(diào)用通訊驅(qū)動(dòng)更新程序*.so文件完成增加新的通訊協(xié)議驅(qū)動(dòng)程序。
進(jìn)一步地,所述數(shù)據(jù)讀寫模塊包括讀取鏈表單元和寫入鏈表單元,所述讀取鏈表單元用于存放需要讀取的DataTag,所述寫入鏈表單元用于存放需要寫入的DataTag。
進(jìn)一步地,所述DataTag的對(duì)象包括數(shù)據(jù)的地址、類型、格式、讀寫屬性以及重讀次數(shù)。
進(jìn)一步地,所述數(shù)據(jù)依賴于具體的連接設(shè)備。(例如:連接設(shè)備為開關(guān)燈,那么這里所描述的數(shù)據(jù)就是開關(guān)和亮度。)
進(jìn)一步地,所述DataTag中的所有Tag點(diǎn),通過Tag目錄TagDirectory建立Tag.ID和Tag的映射,方便Interface單元查詢Tag點(diǎn)和改變Tag點(diǎn)的值。
進(jìn)一步地,硬件接口模塊、通訊協(xié)議模塊以及數(shù)據(jù)讀寫模塊之間主要實(shí)現(xiàn)的信息交互功能為:
通訊協(xié)議模塊的Driver鏈表單元獲得硬件接口模塊Interface的使用權(quán)后,從數(shù)據(jù)讀寫模塊保存DataTag的讀取鏈表單元和寫入鏈表單元獲取需要處理的DataTag對(duì)象;
通訊協(xié)議模塊獲取到需要處理的DataTag對(duì)象后,根據(jù)連接設(shè)備的通訊協(xié)議實(shí)現(xiàn)報(bào)文的打包,并調(diào)用Interface對(duì)象中的發(fā)送方法將構(gòu)建好的報(bào)文發(fā)送出去;
通訊協(xié)議模塊調(diào)用Interface對(duì)象中的接收方法接收連接設(shè)備的應(yīng)答,在接收到的應(yīng)答數(shù)據(jù)中查找、校驗(yàn)是否有正確的報(bào)文:
-如果有正確的報(bào)文,就將報(bào)文中的數(shù)據(jù)解析出來放到DataTag對(duì)象中;
-如果沒有正確的報(bào)文,則根據(jù)是否設(shè)置了DataTag對(duì)象中的重讀參數(shù)進(jìn)行報(bào)文的重新讀取和/或?qū)懭搿?/p>
進(jìn)一步地,設(shè)置連接設(shè)備的寫入優(yōu)先權(quán)高,通訊協(xié)議模塊的Driver鏈表單元從數(shù)據(jù)讀寫模塊保存DataTag的讀取鏈表單元和寫入鏈表單元獲取需要處理的DataTag對(duì)象時(shí),先從寫入鏈表單元中獲取DataTag。
具體地,
本實(shí)施例提供的基于對(duì)象的智能家居網(wǎng)關(guān)通訊接口框架,將智能家居網(wǎng)關(guān)和各種智能家居設(shè)備的通訊進(jìn)行了抽象,將實(shí)際的硬件接口抽象為Interface,將通訊協(xié)議抽象為Driver,而將設(shè)備上的數(shù)據(jù)抽象為DataTag,Interface對(duì)象具有打開、關(guān)閉、發(fā)送、接收等基本的功能和方法,Interface(Interface單元)有兩種工作模式,一種是Server(服務(wù)器)工作模式,一種是Client(客戶端)模式,對(duì)于KNX總線和UDP/TCP Server,采用的是Server工作模式,對(duì)于Modbus協(xié)議則采用的是Client工作模式,對(duì)于RS485/RS232模式,采取哪種工作模式取決連接設(shè)備的工作方式。而且Interface對(duì)象里面包括一個(gè)Driver的鏈表,用于存放該硬件接口下可以同時(shí)支持的通訊協(xié)議驅(qū)動(dòng)程序,設(shè)計(jì)該鏈表的目的是用來解決在一條總線上,可以同時(shí)支持和不同協(xié)議的智能家居設(shè)備進(jìn)行通訊(前提是該總線上所有的通訊參數(shù)必須一 致,包括通訊速率、數(shù)據(jù)位、奇偶校驗(yàn)和停止位)。每個(gè)Driver對(duì)象下面存在兩個(gè)鏈表,一個(gè)鏈表用來保存需要讀取的DataTag(讀取鏈表),一個(gè)鏈表中保存需要寫入的DataTag(寫入鏈表),當(dāng)Driver獲得Interface的使用權(quán)后,從保存DataTag的兩個(gè)鏈表獲取需要處理的DataTag對(duì)象(向設(shè)備寫入優(yōu)先權(quán)高,所以先從保存寫入DataTag的鏈表中獲取DataTag),獲取到DataTag后根據(jù)設(shè)備的通訊協(xié)議實(shí)現(xiàn)報(bào)文的打包,然后調(diào)用Interface的發(fā)送方法將構(gòu)建好的報(bào)文發(fā)送出去,然后調(diào)用Interface的接收方法(接收函數(shù))接收硬件設(shè)備的應(yīng)答后,在接收到數(shù)據(jù)中查找、校驗(yàn)是否有正確的報(bào)文,如果有正確的報(bào)文就將報(bào)文中的數(shù)據(jù)解析出來放到DataTag對(duì)象中,如果沒有正確的報(bào)文,則根據(jù)是否設(shè)置了重讀參數(shù)進(jìn)行重新讀取/寫入。DataTag對(duì)象則是對(duì)各類設(shè)備上所有的數(shù)據(jù)點(diǎn)進(jìn)行抽象,DataTag對(duì)象包括了數(shù)據(jù)的地址、類型、格式、讀寫屬性、重讀次數(shù)。
通訊驅(qū)動(dòng)主程序eHomeEngine,主要功能如下:
(1)啟動(dòng)時(shí)解析Xml/Jason配置文件;
(2)解析Xml/Jason文件,根據(jù)配置文件內(nèi)容初始化硬件端口并加載所使用的驅(qū)動(dòng)動(dòng)態(tài)庫文件*.so;
(3)根據(jù)Xml/Jason文件,動(dòng)態(tài)創(chuàng)建多個(gè)數(shù)據(jù)點(diǎn),并將這些數(shù)據(jù)點(diǎn)進(jìn)行分類歸屬具體的驅(qū)動(dòng)程序;
(4)啟動(dòng)通訊線程,通過硬件端口和現(xiàn)場(chǎng)實(shí)際的設(shè)備進(jìn)行通訊;
(5)通過LedIODrv軟件模塊驅(qū)動(dòng)Led進(jìn)行顯示,并接收外部的按鍵輸入操作;
(6)通過libComSockDrv軟件模塊第三方軟件進(jìn)行通訊,通過該接口,第三方軟件程序可以讀/寫eHomeEngine中的數(shù)據(jù)點(diǎn),當(dāng)eHomeEngine中的數(shù)據(jù)點(diǎn)的值發(fā)生變化時(shí),可以通過該接口模塊主動(dòng)通知。
通訊驅(qū)動(dòng)更新程序*.so文件,在這些*.so文件中實(shí)現(xiàn)了具體的協(xié)議內(nèi)容:
(1)為了提高通訊協(xié)議驅(qū)動(dòng)程序的可擴(kuò)展性和維護(hù)性,將通訊協(xié)議驅(qū)動(dòng)程序分為兩個(gè)部分:通訊驅(qū)動(dòng)主程序eHomeEngine和通訊驅(qū)動(dòng)更新程序*.so文件;
(2)當(dāng)主機(jī)新增加了一個(gè)通訊協(xié)議驅(qū)動(dòng)程序時(shí),只需開發(fā)一個(gè)新的通訊驅(qū)動(dòng)更新程序*.so文件給通訊驅(qū)動(dòng)主程序eHomeEngine調(diào)用即可,而不必重新編譯、更新通訊驅(qū)動(dòng)主程序eHomeEngine,如圖2所示。
對(duì)于項(xiàng)目中定義的所有Tag點(diǎn),要有一個(gè)TagDirectory建立Tag.ID和Tag的映射,方便Interface接口快速查詢Tag點(diǎn)和改變Tag點(diǎn)的值。
關(guān)于接口架構(gòu),可以用Json樹形圖來表示,如圖3所示。
本實(shí)施例提供的基于對(duì)象的智能家居網(wǎng)關(guān)通訊接口框架,通過對(duì)智能家居網(wǎng)關(guān)和各種智能家居設(shè)備的通訊進(jìn)行抽象,解決了現(xiàn)有技術(shù)中沒有解決的兼容問題,使設(shè)備連接更加方便;結(jié)構(gòu)可靠、靈活性強(qiáng)、簡(jiǎn)單易用,可以兼容上各種硬件接口的通訊接口框架,通過這種通訊接口框架可以快速的支持各種接口、各種格式的通訊協(xié)議,和眾多廠家的設(shè)備進(jìn)行互連通訊;補(bǔ)了現(xiàn)有技術(shù)中關(guān)于該通訊接口框架的空白,適合推廣。
以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。