一種Event-Action沖突解決方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通訊領(lǐng)域,特別是涉及一種Event-Action(事件-設(shè)備行為)沖突解 決方法及裝置。
【背景技術(shù)】
[0002] Alljoyn是一種基于C/S架構(gòu)的設(shè)備之間點(diǎn)對(duì)點(diǎn)通信框架。Alljoyn由BusDaemon 和終端節(jié)點(diǎn)組成。BusDaemon負(fù)責(zé)終端節(jié)點(diǎn)之間的消息路由,服務(wù)發(fā)現(xiàn)等功能。終端節(jié)點(diǎn) 是指基于Alljoyn的應(yīng)用程序,啟動(dòng)后需要連接到BusDaemon上,終端節(jié)點(diǎn)如果提供服務(wù), 則向BusDaemon注冊(cè)一個(gè)服務(wù)名稱,由BusDaemon廣播出去。如果作為客戶端,那么可以 通過服務(wù)名稱來(lái)查找服務(wù),并通過遠(yuǎn)程調(diào)用或信號(hào)來(lái)完成指定功能。
[0003] 在相關(guān)技術(shù)中,對(duì)于設(shè)備控制方面,設(shè)備動(dòng)作的觸發(fā)有三種情況,一是用戶手動(dòng)觸 發(fā),二是用戶通過控制終端觸發(fā),三是利用Event-Action模型中對(duì)應(yīng)的Event觸發(fā)。
[0004] Alljoyn支持Event-Action模型。Event-Action模型,即由事件Event(signal) 和設(shè)備行為Action(method)配對(duì),當(dāng)Event發(fā)生時(shí),設(shè)備執(zhí)行指定的Action,這樣的配對(duì)為 一條rule,所有rule的集合構(gòu)成ruleengine。
[0005] Event指的是通知觸發(fā)事件的signal,Action指的是應(yīng)對(duì)特定的signal所采取 的操作,即method。設(shè)備自身有哪些Event和Action是暴露的,其它設(shè)備可以通過相應(yīng)接 口獲知。在有中心節(jié)點(diǎn)的場(chǎng)景中,通過Event觸發(fā)設(shè)備的Action和通過控制終端調(diào)用設(shè)備 的操作,都屬于methodcall,對(duì)于設(shè)備來(lái)講是一樣的。
[0006] 現(xiàn)有的ruleengine處理Event的操作比較簡(jiǎn)單,接收到Event后即調(diào)用相應(yīng)的 Action。下面舉例說明。
[0007] 現(xiàn)有方案1 :用戶定義了兩組Event-Action,一組為電視開-客廳燈滅,即 Event(TvOn) 一Action(LightOff),另一組為門打開-客廳燈亮,即Event(DoorOpen) - Action(LightOn)。兩個(gè)Action為相反操作。
[0008] (1)家中一名成員從外歸來(lái),打開門,此時(shí)門發(fā)出Event(DoorOpen)信號(hào),rule engine根據(jù)配對(duì)情況調(diào)用客廳燈觸發(fā)Action(LightOn),然后客廳燈打開。
[0009] (2)同時(shí),另一名成員打開電視,于是電視發(fā)送Event(TvOn)信號(hào),ruleengine根 據(jù)配對(duì)情況調(diào)用客廳燈觸發(fā)Action(LightOff),然后客廳燈關(guān)閉。
[0010] 現(xiàn)有方案2 :用戶定義了兩組Event-Action,一組為室溫30度-窗戶半開,即 Event(30〇C) 一Action(WindowHalfOpen),另一組為室內(nèi)煤氣含量超標(biāo)-窗戶全開,即 Event(Gas) 一Action(WindowAllOpen)。兩個(gè)Action為相近操作。
[0011] ⑴某一日煤氣泄漏,傳感器發(fā)出Event(Gas)信號(hào),窗戶執(zhí)行 Action(WindowAllOpen),全部打開。
[0012] (2)同時(shí),室溫達(dá)到30度,傳感器發(fā)出Event(30°C)信號(hào),窗戶執(zhí)行 Action(WindowHalfOpen),窗戶半開。
[0013] 對(duì)于家電控制的上述兩個(gè)現(xiàn)有方案,其缺點(diǎn)如下:
[0014] 現(xiàn)有方案I:在同一時(shí)間,不同的Event發(fā)生導(dǎo)致了相同設(shè)備的相反的Action,此 時(shí)設(shè)備要么無(wú)法操作,要么按照Event到來(lái)的時(shí)間先后順序執(zhí)行,根據(jù)場(chǎng)景中的情況,用戶 開門后,客廳的燈先開后閉,會(huì)給用戶帶來(lái)極壞的體驗(yàn),甚至?xí)邪踩[患。
[0015] 現(xiàn)有方案2 :在同一時(shí)間,不同的Event發(fā)生導(dǎo)致了相同設(shè)備的相近的Action,此 時(shí),設(shè)備將按照Event到來(lái)的時(shí)間先后順序執(zhí)行,根據(jù)場(chǎng)景中的情況,窗戶先打開全部,后 又變成半開,不利于煤氣的疏散,可能導(dǎo)致嚴(yán)重的安全問題。
[0016] 針對(duì)Event-Action模型,由于用戶使用習(xí)慣和應(yīng)用場(chǎng)景的不同,不同的觸發(fā)原因 以及不同的Event可能對(duì)應(yīng)到同一設(shè)備的相反或相近Action,若這樣的Event同時(shí)發(fā)生,貝Ij 會(huì)導(dǎo)致Action執(zhí)行的沖突,給用戶帶來(lái)不好的體驗(yàn),甚至可能帶來(lái)安全隱患。比如電視開 (Event-TvOn),對(duì)應(yīng)客廳燈滅(Action-LightOff);門打開(Event-DoorOn),對(duì)應(yīng)客廳燈亮 (Action-LightOn)。此時(shí),若電視和門同時(shí)打開,貝Ij會(huì)引起燈的沖突Action。
[0017] 針對(duì)相關(guān)技術(shù)中Event-Action的沖突操作使得用戶體驗(yàn)不佳的問題,目前尚未 提出有效的解決方案。
【發(fā)明內(nèi)容】
[0018] 針對(duì)相關(guān)技術(shù)中Event-Action的沖突操作使得用戶體驗(yàn)不佳的問題,本發(fā)明提 供了一種Event-Action沖突解決方法及裝置,用以解決上述技術(shù)問題。
[0019] 根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提供了一種Event-Action沖突解決方法,其中, 該方法包括:在事件Event被觸發(fā)時(shí),確定所述Event所匹配的設(shè)備行為Action;獲取所述 Action對(duì)應(yīng)的當(dāng)前正在被執(zhí)行的沖突操作的類型;其中,所述沖突操作的類型包括人為觸 發(fā)和Event觸發(fā);對(duì)于不同類型,采取不同方式執(zhí)行所述Action。
[0020] 優(yōu)選地,對(duì)于不同類型,采取不同方式執(zhí)行所述Action包括:如果所述當(dāng)前正在 被執(zhí)行的沖突操作的類型是人為觸發(fā),則直接執(zhí)行所述Action;如果所述當(dāng)前正在被執(zhí)行 的沖突操作的類型是Event觸發(fā),則根據(jù)預(yù)設(shè)的各個(gè)Event的優(yōu)先級(jí)從高到低的順序,按序 執(zhí)行各個(gè)Event所匹配的Action;其中,所述各個(gè)Event包括:被觸發(fā)的Event,以及所述當(dāng) 前正在被執(zhí)行的沖突操作所對(duì)應(yīng)的Event。
[0021] 優(yōu)選地,在獲取所述Action對(duì)應(yīng)的當(dāng)前正在被執(zhí)行的沖突操作的類型之前,所述 方法還包括:在沖突操作庫(kù)中查找是否存在與所述Action對(duì)應(yīng)的沖突操作;其中,沖突操 作庫(kù)中記錄有各個(gè)Action對(duì)應(yīng)的沖突操作,其由設(shè)備出廠時(shí)定義的基本沖突庫(kù)構(gòu)成、或者 由用戶自定義的自定義沖突庫(kù)構(gòu)成、或者由設(shè)備出廠時(shí)定義的基本沖突庫(kù)及用戶自定義的 自定義沖突庫(kù)合并構(gòu)成。
[0022] 優(yōu)選地,獲取所述Action對(duì)應(yīng)的當(dāng)前正在被執(zhí)行的沖突操作的類型包括:基于實(shí) 時(shí)操作集,確定在所述沖突操作庫(kù)中查找到的所述Action對(duì)應(yīng)的沖突操作是否正在被執(zhí) 行;如果正在被執(zhí)行,則確定所述當(dāng)前正在被執(zhí)行的沖突操作的類型;其中,所述實(shí)時(shí)操作 集用于按照類型,實(shí)時(shí)存儲(chǔ)人為觸發(fā)的沖突操作,和Event觸發(fā)的沖突操作。
[0023] 優(yōu)選地,所述根據(jù)預(yù)設(shè)的各個(gè)Event的優(yōu)先級(jí)從高到低的順序,按序執(zhí)行各個(gè) Event所匹配的Action,包括:執(zhí)行最高優(yōu)先級(jí)的Event所匹配的Action,將其他Event暫 存在緩沖池中;在最尚優(yōu)先級(jí)的Event所匹配的Action執(zhí)行完成后,從緩沖池中按照優(yōu)先 級(jí)從高到低的順序依次調(diào)出Event,執(zhí)行其所匹配的Action。
[0024] 根據(jù)本發(fā)明的另一方面,本發(fā)明還提供了一種Event-Action沖突解決裝置,其 中,該裝置包括:匹配查找模塊,用于在事件Event被觸發(fā)時(shí),確定所述Event所匹配的設(shè)備 行為Action;類型獲取模塊,用于獲取所述Action對(duì)應(yīng)的當(dāng)前正在被執(zhí)行的沖突操作的類 型;其中,所述沖突操作的類型包括人為觸發(fā)和Event觸發(fā);行為執(zhí)行模塊,用于對(duì)于不同 類型,采取不同方式執(zhí)行所述Action。
[0025] 優(yōu)選地,所述行為執(zhí)行模塊包括:人為觸發(fā)執(zhí)行模塊,用于在所述當(dāng)前正在被執(zhí)行 的沖突操作的類型是人為觸發(fā)的情況下,直接執(zhí)行所述Action;Event觸發(fā)執(zhí)行模塊,用于 在所述當(dāng)前正在被執(zhí)行的沖突操作的類型是Event觸發(fā)的情況下,根據(jù)預(yù)設(shè)的各個(gè)Event 的優(yōu)先級(jí)從高到低的順序,按序執(zhí)行各個(gè)Event所匹配的Action;其中,所述各個(gè)Event包 括:被觸發(fā)的Event,以及所述當(dāng)前正