上述情況,本發(fā)明實(shí)施例的技術(shù)方案還需要進(jìn)行如下處理:
[0037]步驟1,在創(chuàng)建異構(gòu)設(shè)備對(duì)應(yīng)的虛擬設(shè)備時(shí),如接收到其他網(wǎng)關(guān)發(fā)送的廣播,則對(duì)廣播進(jìn)行解析,獲取廣播中攜帶的虛擬設(shè)備的設(shè)備信息;
[0038]步驟2,根據(jù)獲取的設(shè)備信息查找本地的設(shè)備列表中是否存在與虛擬設(shè)備對(duì)應(yīng)的異構(gòu)設(shè)備,如果存在,則確定該異構(gòu)設(shè)備在AllJoyn網(wǎng)絡(luò)已經(jīng)存在相應(yīng)的虛擬設(shè)備;
[0039]步驟3,檢測該異構(gòu)設(shè)備的虛擬設(shè)備創(chuàng)建狀態(tài),如果尚未開始創(chuàng)建虛擬設(shè)備,則將異構(gòu)設(shè)備由等待創(chuàng)建虛擬設(shè)備列表移至緩存設(shè)備列表;如果正在創(chuàng)建虛擬設(shè)備,則停止已經(jīng)開始的創(chuàng)建進(jìn)程,清除創(chuàng)建過程中產(chǎn)生的臨時(shí)數(shù)據(jù),退回到創(chuàng)建之前的狀態(tài),并將異構(gòu)設(shè)備放入緩存設(shè)備列表;如果已經(jīng)創(chuàng)建虛擬設(shè)備,則將創(chuàng)建的該虛擬設(shè)備刪除,并將異構(gòu)設(shè)備放入緩存設(shè)備列表;
[0040]步驟4,在檢測到AllJoyn網(wǎng)絡(luò)中已經(jīng)存在的與異構(gòu)設(shè)備相應(yīng)的虛擬設(shè)備下線,則將異構(gòu)設(shè)備從緩存設(shè)備列表中取出,為異構(gòu)設(shè)備創(chuàng)建相應(yīng)的虛擬設(shè)備。
[0041]以下結(jié)合附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行舉例說明。
[0042]如圖3所示,在一個(gè)AllJoyn設(shè)備和Z-Wave設(shè)備(上述異構(gòu)設(shè)備)組成的家庭網(wǎng)絡(luò)中,存在兩個(gè)網(wǎng)關(guān),每個(gè)網(wǎng)關(guān)都實(shí)現(xiàn)了 DSB功能。一個(gè)Z-Wave門鈴接入到家庭網(wǎng)絡(luò)。根據(jù)DSB技術(shù),當(dāng)門鈴連接到網(wǎng)關(guān)后,網(wǎng)關(guān)上的DSB會(huì)根據(jù)門鈴的功能在Al I Joyn網(wǎng)絡(luò)中創(chuàng)建一個(gè)具有相同功能的Alljoyn設(shè)備。網(wǎng)關(guān)I上運(yùn)行DSB_A。網(wǎng)關(guān)2上運(yùn)行DSB_B。AllJoyn手機(jī)能夠通過網(wǎng)關(guān)上運(yùn)行的DSB控制門鈴響起或停止。
[0043]實(shí)例1:DSB_A已創(chuàng)建虛擬設(shè)備,DSB_B尚未開始創(chuàng)建,如圖4所示,具體包括如下處理:
[0044]步驟I,門鈴DI接入Z-Wave網(wǎng)絡(luò)后,先與網(wǎng)關(guān)I建立連接。網(wǎng)關(guān)I上的DSB_A發(fā)起檢測,確定AllJoyn網(wǎng)絡(luò)中是否已經(jīng)有該門鈴的虛擬設(shè)備(檢測方法參考實(shí),例3或?qū)嵗?) ;DSB_A未檢測到有門鈴的虛擬AllJoyn設(shè)備,便開始創(chuàng)建對(duì)應(yīng)于Z-Wave門鈴的虛擬AllJoyn 設(shè)備 VDl ;
[0045]步驟2,VDl創(chuàng)建后,會(huì)在AllJoyn網(wǎng)絡(luò)中發(fā)送About廣播。About廣播信息中包含VDl的設(shè)備信息(如設(shè)備名、制造商、版本、設(shè)備ID、設(shè)備描述等)以及服務(wù)接口信息。
[0046]步驟3,網(wǎng)關(guān)2上的檢測模塊B接收到VDl的About廣播,解析About數(shù)據(jù),得到VDl的設(shè)備信息。之后,檢測模塊B查找DSB_B所連接的Z-Wave設(shè)備,得到連接網(wǎng)關(guān)2的Ζ-ffave設(shè)備列表。
[0047]步驟4,假設(shè)此時(shí)門鈴Dl已經(jīng)連接網(wǎng)關(guān)2。則設(shè)備列表中包含D1。檢測模塊B比較VDl與設(shè)備列表中每一設(shè)備的設(shè)備信息,得出與Dl匹配。則VDl是對(duì)應(yīng)Dl的虛擬設(shè)備。檢測模塊B告知DSB_B,在AllJoyn網(wǎng)絡(luò)中已存在Dl對(duì)應(yīng)的虛擬設(shè)備。
[0048]步驟5,DSB_B得知已存在Dl對(duì)應(yīng)的虛擬設(shè)備,檢查是否正在為Dl創(chuàng)建虛擬設(shè)備。DSB_B尚未開始為Dl創(chuàng)建虛擬設(shè)備,則將Dl由等待創(chuàng)建虛擬設(shè)備列表移至緩存設(shè)備列表Temp0
[0049]步驟6,檢測模塊B檢測到虛擬設(shè)備VDl下線,通知DSB_B,當(dāng)前AllJoyn網(wǎng)絡(luò)中不存在Dl對(duì)應(yīng)的虛擬設(shè)備。
[0050]步驟7,DSB_B將Dl從Temp中取出,為其創(chuàng)建相應(yīng)的虛擬AllJoyn設(shè)備。
[0051]實(shí)例2:DSB_A已創(chuàng)建虛擬設(shè)備,DSB_B已開始創(chuàng)建,如圖5所示,具體包括如下處理:
[0052]步驟I,門鈴DI接入Z-Wave網(wǎng)絡(luò)后,先與網(wǎng)關(guān)I建立連接。網(wǎng)關(guān)I上的DSB_A發(fā)起檢測,確定AllJoyn網(wǎng)絡(luò)中是否已經(jīng)有該門鈴的虛擬設(shè)備(檢測方法參考實(shí),例3或?qū)嵗?)。DSB_A未檢測到有門鈴的虛擬AllJoyn設(shè)備,便開始創(chuàng)建對(duì)應(yīng)于Z-Wave門鈴的虛擬AllJoyn 設(shè)備 VDl ;
[0053]步驟2,VDl創(chuàng)建后,會(huì)在AllJoyn網(wǎng)絡(luò)中發(fā)送About廣播。About廣播信息中包含VDl的設(shè)備信息(如設(shè)備名、制造商、版本、設(shè)備ID、設(shè)備描述等)以及服務(wù)接口信息。
[0054]步驟3,網(wǎng)關(guān)2上的檢測模塊B接收到VDl的About廣播,解析About數(shù)據(jù),得到VDl的設(shè)備信息。之后,檢測模塊B查找DSB_B所連接的Z-Wave設(shè)備,得到連接網(wǎng)關(guān)2的Ζ-ffave設(shè)備列表。
[0055]步驟4,假設(shè)此時(shí)門鈴Dl已經(jīng)連接網(wǎng)關(guān)2。則設(shè)備列表中包含D1。檢測模塊B比較VDl與設(shè)備列表中每一設(shè)備的設(shè)備信息,得出與Dl匹配。則VDl是對(duì)應(yīng)Dl的虛擬設(shè)備。檢測模塊B告知DSB_B,在AllJoyn網(wǎng)絡(luò)中已存在Dl對(duì)應(yīng)的虛擬設(shè)備。
[0056]步驟5,DSB_B得知已存在Dl對(duì)應(yīng)的虛擬設(shè)備,檢查是否正在為Dl創(chuàng)建虛擬設(shè)備。DSB_B已開始為Dl創(chuàng)建虛擬設(shè)備,首先停止已經(jīng)開始的創(chuàng)建進(jìn)程,清除創(chuàng)建過程中產(chǎn)生的臨時(shí)數(shù)據(jù),退回到創(chuàng)建之前的狀態(tài),并將Dl放入緩存設(shè)備列表Temp。
[0057]步驟6,檢測模塊B檢測到虛擬設(shè)備VDl下線,通知DSB_B,當(dāng)前AllJoyn網(wǎng)絡(luò)中不存在Dl對(duì)應(yīng)的虛擬設(shè)備。
[0058]步驟7,DSB_B將Dl從Temp中取出,為其創(chuàng)建相應(yīng)的虛擬AllJoyn設(shè)備。
[0059]實(shí)例3:虛擬設(shè)備停止About廣播后,設(shè)備連接DSB,檢測模塊不緩存虛擬設(shè)備,如圖6所示,具體包括如下處理:
[0060]步驟I,門鈴DI接入Z-Wave網(wǎng)絡(luò)后,先與網(wǎng)關(guān)I建立連接。網(wǎng)關(guān)I上的DSB_A發(fā)起檢測,確定AllJoyn網(wǎng)絡(luò)中是否已經(jīng)有該門鈴的虛擬設(shè)備(檢測方法參考本實(shí)施例中DSB_B的檢測過程)。DSB_A未檢測到有門鈴的虛擬AllJoyn設(shè)備,便開始創(chuàng)建對(duì)應(yīng)于Z-Wave門鈴的虛擬AllJoyn設(shè)備VDl ;
[0061]步驟2,VDl創(chuàng)建后,會(huì)在AllJoyn網(wǎng)絡(luò)中發(fā)送About廣播。About廣播信息中包含VDl的設(shè)備信息(如設(shè)備名、制造商、版本、設(shè)備ID、設(shè)備描述等)以及服務(wù)接口信息。
[0062]步驟3,網(wǎng)關(guān)2上的檢測模塊B接收到VDl的About廣播,解析About數(shù)據(jù),得到VDl的設(shè)備信息。之后,檢測模塊B查找DSB_B所連接的Z-Wave設(shè)備,得到連接網(wǎng)關(guān)2的Ζ-ffave設(shè)備列表。
[0063]步驟4,假設(shè)此時(shí)門鈴Dl尚未連接網(wǎng)關(guān)2。則設(shè)備列表中不包含D1。檢測模塊B比較VDl與設(shè)備列表中每一設(shè)備的設(shè)備信息,未找到與VDl匹配的Z-Wave設(shè)備。
[0064]步驟5,門鈴Dl連接DSB_B。DSB_B向檢測模塊B發(fā)起查找Dl對(duì)應(yīng)的虛擬設(shè)備。檢測模塊B收到請(qǐng)求后,在AllJoyn網(wǎng)絡(luò)中查找Dl相關(guān)的信息,得到VDl返回的響應(yīng)。SP,VDl滿足檢測模塊B的查找條件。
[0065]步驟6,檢測模塊B告知DSB_B,在AllJoyn網(wǎng)絡(luò)中已存在Dl對(duì)應(yīng)的虛擬設(shè)備。DSB_B得知已存在Dl對(duì)應(yīng)的虛擬設(shè)備,將Dl放入緩存設(shè)備列表Temp。
[0066]步驟7,檢測模塊B檢測到虛擬設(shè)備VDl下線,通知DSB_B,當(dāng)前AllJoyn網(wǎng)絡(luò)中不存在Dl對(duì)應(yīng)的虛擬設(shè)備。
[0067]步驟8,DSB_B將Dl從Temp中取出,為其創(chuàng)建相應(yīng)的虛擬AllJoyn設(shè)備。
[0068]實(shí)例4:虛擬設(shè)備停止About廣播后,設(shè)備連接DSB,檢測模塊緩存虛擬設(shè)備,如圖7所示,具體包括如下處理:
[0069]步驟I,門鈴DI接入Z-Wave網(wǎng)絡(luò)后,先與網(wǎng)關(guān)I建立連接。網(wǎng)關(guān)I上的DSB_A發(fā)起檢測,確定AllJoyn網(wǎng)絡(luò)中是否已經(jīng)有該門鈴的虛擬設(shè)備(檢測方法參考