專利名稱:控制在家庭網(wǎng)絡(luò)上主機(jī)的應(yīng)用和庫之間的裝置的接口方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在程序之間接口的方法和設(shè)備,該程序比如在家庭網(wǎng)絡(luò)服務(wù)器上執(zhí)行的控制應(yīng)用和用于訪問遠(yuǎn)程裝置的庫。
背景技術(shù):
隨著用在家庭中的電子用具增加,也增加了對于以集中化方式控制電子用具的有效方法的需要。結(jié)果,提出了基于LAN或電力線通信的家庭網(wǎng)絡(luò)。
在家庭網(wǎng)絡(luò)中存在的電子用具可能由不同制造商制造。如果制造商不同,與電子產(chǎn)品一起提供的用于支持訪問家庭網(wǎng)絡(luò)的庫也會不同。不同的庫需要和比如控制程序的應(yīng)用程序的不同接口。
如果接口方法不同,因?yàn)閮H能在具有應(yīng)用基于其的特定庫的裝置上執(zhí)行應(yīng)用,不能保證應(yīng)用程序的兼容性。結(jié)果,庫的開發(fā)者是當(dāng)購買應(yīng)用程序時(shí)應(yīng)該考慮的一個(gè)因素。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種標(biāo)準(zhǔn)接口方法和設(shè)備,其保證了家庭網(wǎng)絡(luò)的多種應(yīng)用和庫之間的兼容性。
本發(fā)明提供了用于單獨(dú)檢查在家庭網(wǎng)絡(luò)上的裝置的狀態(tài)的方法和設(shè)備。
本發(fā)明提供了單獨(dú)控制家庭網(wǎng)絡(luò)裝置的方法和設(shè)備。
本發(fā)明提供了用于在家庭網(wǎng)絡(luò)服務(wù)器中的應(yīng)用和庫之間同步命令的方法和設(shè)備。
在根據(jù)本發(fā)明的用于單獨(dú)控制裝置的方法中,應(yīng)用調(diào)用庫的函數(shù)以控制和網(wǎng)絡(luò)連接的裝置,同時(shí)傳送裝置的標(biāo)識符以控制,和傳遞命令碼到函數(shù),且?guī)煜蛴蓸?biāo)識符指定的裝置請求由命令碼識別的命令,且傳遞從裝置的命令操作得到的信息到應(yīng)用。
在根據(jù)本發(fā)明的用于單獨(dú)檢查裝置狀態(tài)的方法中,應(yīng)用調(diào)用庫的函數(shù)以控制和網(wǎng)絡(luò)連接的裝置,同時(shí)傳送裝置的標(biāo)識符和狀態(tài)詢問命令給函數(shù),且?guī)煜蛴蓸?biāo)識符指定的裝置請求狀態(tài)詢問命令,且傳遞由狀態(tài)詢問命令獲得狀態(tài)信息到應(yīng)用。
在根據(jù)本發(fā)明的用于在家庭網(wǎng)絡(luò)服務(wù)器上的應(yīng)用和庫之間同步命令的方法中,應(yīng)用設(shè)置信息為全局變量,且調(diào)用庫的函數(shù)用于控制和網(wǎng)絡(luò)連接的裝置,且?guī)旎谠谌肿兞恐性O(shè)置的信息確定調(diào)用的響應(yīng)方式,其中該信息指示是否等待調(diào)用的結(jié)果。
圖1說明了其中有益地具體表現(xiàn)本發(fā)明的家庭網(wǎng)絡(luò)的概略圖;圖2說明了示出在如圖1所示的裝置的啟動期間執(zhí)行的步驟的流程圖;圖3a說明了示出圖1中的庫單獨(dú)處理事件的過程的流程圖;圖3b說明了示出了圖1中的庫以集成方式處理時(shí)間的過程的流程圖;圖4說明了用于在應(yīng)用和庫之間交換命令以單獨(dú)監(jiān)控/修改/控制家庭網(wǎng)絡(luò)裝置的結(jié)構(gòu);圖5a到5c說明了用于庫在每個(gè)家庭網(wǎng)絡(luò)裝置中設(shè)置家庭碼的流程圖;且圖6說明了用于分配地址給家庭網(wǎng)絡(luò)上的裝置的流程圖。
具體實(shí)施例方式
為了全面理解本發(fā)明,現(xiàn)在參考附圖描述其優(yōu)選實(shí)施例。
圖1是示出了根據(jù)本發(fā)明的包括服務(wù)器和受控裝置的家庭網(wǎng)絡(luò)的概略圖。
根據(jù)本發(fā)明的服務(wù)器包括用戶應(yīng)用100(例如,家庭網(wǎng)絡(luò)管理程序),庫110,其包括訪問家庭網(wǎng)絡(luò)所需的函數(shù)和執(zhí)行例程,和網(wǎng)絡(luò)適配器100,其用于訪問物理網(wǎng)絡(luò)200(例如,電力線或LAN電纜)。庫110也被稱為LnCP(居住網(wǎng)絡(luò)控制協(xié)議)庫。如圖1所示的家庭網(wǎng)絡(luò)包括由服務(wù)器控制的遠(yuǎn)程裝置301和302。由庫110的執(zhí)行例程監(jiān)控、修改和/或控制裝置的狀態(tài)。由用戶應(yīng)用100(在下文中被稱為控制應(yīng)用)經(jīng)由庫100定義的API調(diào)用用于這種操作的命令,這將在下面詳細(xì)描述。
首先,描述其中服務(wù)器找到家庭網(wǎng)絡(luò)上的有效裝置的方法。
為獲得和家庭網(wǎng)絡(luò)連接的裝置的列表,控制應(yīng)用100調(diào)用庫110的下面函數(shù)get_active_device_list(&active_device_list)。
之后庫110經(jīng)輸入變元(也就是,active_device_list)傳遞關(guān)于家庭網(wǎng)絡(luò)上的有效裝置的信息。該信息包括有效裝置的總數(shù)和裝置列表。關(guān)于列表上每個(gè)裝置項(xiàng)目的信息被定義如下typedef struct device{device_descriptor_t dd;device_type_t device_type;device_mode_t device_mode;}device_t。
關(guān)于每個(gè)裝置的信息包括裝置描述符信息,和裝置類型及模式,且其可以進(jìn)一步包括協(xié)議索引。類型指定裝置的類型(例如,冰箱或洗衣機(jī))。模式指示裝置是主機(jī)或子機(jī)。
當(dāng)傳遞關(guān)于有效裝置的信息到控制應(yīng)用100時(shí),庫110分配其內(nèi)部內(nèi)存用于每個(gè)有效裝置。
如果不再使用有效裝置,控制應(yīng)用100通過調(diào)用下面函數(shù)除去有效裝置的列表,以釋放為有效裝置分配的內(nèi)存release_active_device_list(&active_device_list)。
下面描述詳細(xì)說明了其中服務(wù)器獲得關(guān)于在家庭網(wǎng)絡(luò)上存在的有效裝置的更加詳細(xì)的信息的方式。
控制應(yīng)用100能夠通過調(diào)用下面函數(shù)獲得關(guān)于裝置的更加詳細(xì)的信息get_device_info_by_dd(device_descriptor_t dd,device_info_t*ret_entry),其中,“dd”是唯一地識別在家庭網(wǎng)絡(luò)上的裝置的裝置描述符。由“dd”指定的關(guān)于裝置的詳細(xì)信息由庫110經(jīng)輸入變元ret_entry返回,該輸入變元ret_entry是到如下定義的數(shù)據(jù)結(jié)構(gòu)的指針typedef struct device_info{device_descriptor_t dd;unsigned short 地址;device_type_tv device_type;char model[MAX_MODEL_NAME_LEN];unsigned char 位置;}device_info_t;其中,“地址”是通過組合裝置的類型和序列號獲得的值,“型號”是描述型號名稱的文本,且“位置”是指示裝置的物理位置(例如,客廳或臥室)的信息。
在以上述方式獲得關(guān)于特定裝置的信息之后,控制應(yīng)用100調(diào)用庫110的合適函數(shù)以執(zhí)行用戶要求的命令。如果確定不需要獲得的信息,控制應(yīng)用100調(diào)用庫110的函數(shù)以釋放庫110為裝置分配的內(nèi)存,由此允許內(nèi)存用于其它目的。
下面將描述其中控制應(yīng)用100處理從家庭網(wǎng)絡(luò)移去裝置的情況的方式。
控制應(yīng)用100登記當(dāng)移去裝置時(shí)發(fā)生的事件(也就是,裝置移去事件),和當(dāng)在庫110中發(fā)生事件時(shí)通過調(diào)用下面函數(shù)執(zhí)行的調(diào)回函數(shù)add_sys_event_func_entry(EVT_SYSTEM_PLUG_OUT,plugout_event_handler)。
如果在家庭網(wǎng)絡(luò)上發(fā)生EVT_SYSTEM_PLUG_OUT的事件(分配給拔出事件的值),庫100執(zhí)行登記的調(diào)回函數(shù)(plugout_event_handler)。在該情況中,庫110經(jīng)輸入變元dd將裝置描述符或協(xié)議索引值傳遞到調(diào)回函數(shù),也就是,庫110調(diào)用下面函數(shù)plugout_event_handler(sys_event_value_t dd),其從有效裝置的列表移去了特定裝置。
如果控制應(yīng)用100在庫110中登記了移去事件之后不想接收裝置移去事件,控制應(yīng)用100通過調(diào)用下面函數(shù)移去登記的事件和調(diào)回函數(shù)del_sys_event_func_entry(EVT_SYSTEM_PLUG_OUT,plugout_event_handler,其中,將移去的事件和調(diào)回函數(shù)作為輸入變元給予函數(shù)。
庫110的函數(shù)del_sys_event_func_entry()從系統(tǒng)事件管理者的表刪除由輸入變元給定的事件和調(diào)回函數(shù),以移去登記的plugout_event_handler函數(shù)。
當(dāng)在網(wǎng)絡(luò)上登記的但是沒有連接到網(wǎng)絡(luò)的裝置再次連接網(wǎng)絡(luò)時(shí),可以以和裝置移去事件基本上相同的方式添加裝置,且登記其相關(guān)的調(diào)回函數(shù)。但是,在這個(gè)情況中,事件不是EVT_SYSTEM_PLUG_OUT而是EVT_SYSTEM_ACTIVE_DEVICE_ADD,且相關(guān)的調(diào)回函數(shù)通知用戶添加裝置或執(zhí)行所需任務(wù)以添加裝置。
對于如圖1所示的服務(wù)器中的控制應(yīng)用和庫的正常操作,應(yīng)該根據(jù)預(yù)先定義的過程進(jìn)行控制應(yīng)用100和庫110之間的函數(shù)調(diào)用和信息交換。
圖2是示出了所需過程的流程圖。當(dāng)執(zhí)行時(shí),控制應(yīng)用100首先裝載用戶接口(S21)。如果在合適的階段進(jìn)行,不需要首先進(jìn)行用戶接口的裝載。在初始啟動階段可以不裝載用戶接口。
控制應(yīng)用110做出用于庫110的初始化的請求(S22)。當(dāng)做出請求時(shí)將關(guān)于待控制的裝置的信息(例如,通信端口,端口波特率等)傳遞到庫110。之后控制應(yīng)用100找到有效裝置和獲得關(guān)于每個(gè)有效裝置的信息(例如,制造者、產(chǎn)品姓名、型號等)以作為每個(gè)裝置的初始信息管理(S23)。接下來,控制應(yīng)用100登記事件(例如,插入事件和拔出事件)和事件管理者(調(diào)回函數(shù))以處理事件(S24)。當(dāng)在完成所有需要的步驟之后發(fā)生系統(tǒng)事件時(shí),LnCP庫110調(diào)用和登記的系統(tǒng)事件相關(guān)聯(lián)的調(diào)回函數(shù)以處理事件(S25)。
如果需要,控制應(yīng)用100可以通過調(diào)用移去的函數(shù)來移去登記的事件和其調(diào)回函數(shù)。
現(xiàn)在將描述通知裝置狀態(tài)中的改變的方法。支持訪問家庭網(wǎng)絡(luò)的裝置裝備有當(dāng)裝置的狀態(tài)改變時(shí)(例如,電源狀態(tài)、操作狀態(tài)、操作溫度、操作模式、所選進(jìn)程等改變)產(chǎn)生狀態(tài)事件的函數(shù)。根據(jù)事件發(fā)生的原因?qū)顟B(tài)事件劃分為5個(gè)種類,其是當(dāng)用戶經(jīng)按鍵等向裝置作出請求時(shí)發(fā)生的用戶事件,周期性發(fā)生的周期性事件(例如,接收周期性的活躍通知消息),當(dāng)裝置的狀態(tài)(例如,溫度、濕度或沖洗進(jìn)程)改變時(shí)發(fā)生的狀態(tài)改變事件,在裝置中出現(xiàn)誤差的情況下發(fā)生的誤差事件,和在比如網(wǎng)絡(luò)服務(wù)器的外部裝置請求(例如,當(dāng)網(wǎng)絡(luò)管理器作為家庭服務(wù)器工作時(shí)從遠(yuǎn)程裝置請求的通信)發(fā)生的外部事件。
事件允許有效和方便地管理裝置在于自動通知用戶家庭網(wǎng)絡(luò)狀態(tài)的改變,而不需要請求家庭網(wǎng)絡(luò)的狀態(tài)。在其中經(jīng)事件即時(shí)通知誤差的情況中裝置故障或操作誤差的情況中,事件特別有用。
當(dāng)裝置產(chǎn)生事件時(shí),裝置傳遞用于指示事件類型的事件碼和事件值(其是在其產(chǎn)生事件的狀態(tài)的值)。
為處理產(chǎn)生的事件,控制應(yīng)用100首先登記事件調(diào)回函數(shù)以處理事件。存在兩種處理事件的類型。一種類型是一個(gè)調(diào)回函數(shù)僅處理一個(gè)事件,且另一類型是一個(gè)調(diào)回函數(shù)處理每個(gè)事件。
在其中一個(gè)調(diào)回函數(shù)僅處理一個(gè)事件的情況中,控制應(yīng)用100通過調(diào)用函數(shù)int add_event_handler(device_descriptor_t dd,event_code_tec,user_event_func_t uefunc),在庫110中登記被定義為typedefvoid(*user_event_func_t)(event_valuel_t event_value)的調(diào)回函數(shù),以及裝置描述符“dd”和事件碼“ec”,其中“ec”是庫110將報(bào)告的事件類型,且“uefunc”是到調(diào)回函數(shù)的指針。
庫110在彼此鏈接時(shí)登記輸入變元到散列表中的函數(shù)。如果由事件處理模塊解析分組,庫110檢查在解析的分組中是否存在誤差。如果不存在誤差,庫110確定分組是否是事件分組。
如果確定分組是事件分組,庫110基于關(guān)于產(chǎn)生事件的裝置的信息和事件碼,搜索其散列表用于裝置描述符和與事件相關(guān)聯(lián)的事件碼,且使用登記的函數(shù)指針uefunc調(diào)用相關(guān)聯(lián)的調(diào)回函數(shù)(圖3a中的301)。當(dāng)經(jīng)“uefunc”調(diào)用調(diào)回函數(shù)時(shí),庫110將作為輸入變元的“event_value”傳遞到函數(shù)?!癳vent_value”是在其產(chǎn)生事件的狀態(tài)的值??刂茟?yīng)用100根據(jù)值通知用戶發(fā)生事件或執(zhí)行預(yù)先定義的操作。
在其中一個(gè)事件管理者處理每個(gè)事件的情況中,控制應(yīng)用100通過調(diào)用函數(shù)int add_all_event_handler(user_all_event_func_t func)在庫110中登記被定義為typedef void(*user_all_event_func_t)(unsignedshort device_addr,unsigned char size,unsigned char*event_data)的調(diào)回函數(shù)。
其中登記處理每個(gè)事件的調(diào)回函數(shù)的散列表可能不同于其中登記僅處理一個(gè)事件的調(diào)回函數(shù)的散列表。
一旦在庫110中登記了調(diào)回函數(shù),無論何時(shí)由網(wǎng)絡(luò)上的裝置產(chǎn)生事件,庫110總是經(jīng)函數(shù)指針“func”執(zhí)行調(diào)回函數(shù)(圖3b中的302)。當(dāng)調(diào)用調(diào)回函數(shù)時(shí),庫110提供作為輸入變元的“device_addr”和“event_data”到調(diào)回函數(shù),使得能夠識別產(chǎn)生事件和事件類型的類型?!癲evice_addr”是用于唯一地識別家庭網(wǎng)絡(luò)上的裝置的信息(例如,類型和序列號)。“event_data”是指向事件碼和值的位置的指針值。
在控制應(yīng)用100中的調(diào)用的例程基于作為輸入變元傳遞的信息識別產(chǎn)生事件的裝置,和據(jù)此處理事件。
將描述其中控制應(yīng)用100通過調(diào)用庫110的例程單獨(dú)控制設(shè)備的方式。
控制應(yīng)用100需要下面的信息以調(diào)用庫110的裝置控制函數(shù)。
控制應(yīng)用100應(yīng)該知道控制的裝置的ID(裝置描述符)和執(zhí)行的命令的代碼。由庫110內(nèi)部地提供命令代碼。而且,控制應(yīng)用100應(yīng)該經(jīng)輸入變元提供裝置控制所需的信息(例如,在洗衣機(jī)的電源控制情況中的POWER_ON或POWER_OFF)。
當(dāng)調(diào)用裝置控制例程時(shí),需要設(shè)置用于指定在執(zhí)行例程之后是否接收確認(rèn)的命令模式(同步模式和異步模式),和用于指定在同步模式中直到接收確認(rèn)的最大等待事件的命令選項(xiàng)。
為了向庫110請求裝置的控制操作,控制應(yīng)用100分配用于在圖4中定義的command_t類型的結(jié)構(gòu)的內(nèi)存空間,在結(jié)構(gòu)command_t中放置裝置控制需要的信息,且通過攜帶使得能夠訪問該結(jié)構(gòu)的信息(例如,結(jié)構(gòu)的指針)的輸入變元調(diào)用庫110的函數(shù)control_device()。
在圖4中定義的結(jié)構(gòu)command_t包括command_args_t(401)類型的變量“cc”、“args”,其中放置來自裝置的控制結(jié)果信息的command_ret_t(402)類型的“rets”,以及command_option_t類型的“option”。根據(jù)用戶輸入確定表示命令代碼的變量“cc”,作為輸入變元的陣列的“args”,以及“option”。在command_args_t結(jié)構(gòu)(401)中的var_arg字段和在command_ret_t結(jié)構(gòu)(402)中的var_ret字段分別是到命令和響應(yīng)的指針。
在以基于控制的裝置的地址(device_descriptor_t dd)和寫在圖4的結(jié)構(gòu)中的命令代碼(unsigned cc)創(chuàng)建的按鍵登記用于處理來自裝置的響應(yīng)的臨時(shí)函數(shù)之后,調(diào)用的函數(shù)control_device()產(chǎn)生協(xié)議分組以控制裝置,且經(jīng)物理接口200傳遞協(xié)議分組到裝置301或302。
如果從裝置接收響應(yīng)和/或結(jié)果信息,或者在傳輸分組之后設(shè)置時(shí)間期滿,調(diào)用登記以處理響應(yīng)的臨時(shí)函數(shù)。之后,臨時(shí)函數(shù)向函數(shù)control_device()發(fā)送從裝置接收的響應(yīng)信息(或者過時(shí)事件),和從控制請求進(jìn)程獲得的結(jié)果信息(例如,指示是否成功進(jìn)行了請求的控制操作的值,狀態(tài)信息等)。不總是從裝置提供結(jié)果信息。如果存在結(jié)果信息,函數(shù)control_device()將結(jié)果信息放置在字段“rets”中,且通過指示響應(yīng)信息或等待時(shí)間過時(shí)的返回值(例如,用于確認(rèn)分組的ACK或NAK)返回到控制應(yīng)用100。
之后,控制應(yīng)用100檢查結(jié)構(gòu)command_t以知道所請求的命令,命令的裝置和根據(jù)命令的結(jié)果信息,且其以合適的方式提供結(jié)果信息到用戶,由此結(jié)束從用戶請求控制操作。
將描述其中控制應(yīng)用100通過調(diào)用庫110的例程來監(jiān)控單獨(dú)裝置的狀態(tài)的方式。
用于單獨(dú)裝置的狀態(tài)監(jiān)控的方法和上述用于通過結(jié)構(gòu)command_t控制單獨(dú)裝置的方法相同,除了下面的部分。在進(jìn)行狀態(tài)監(jiān)控的事件中,在結(jié)構(gòu)command_t中包括的命令碼“cc”具有指定狀態(tài)監(jiān)控的值。
因?yàn)檠b置監(jiān)控函數(shù)需要作為執(zhí)行結(jié)果的來自裝置的響應(yīng),函數(shù)總是工作在“同步”模式,且因此需要指定超時(shí)。作為如下定義的命令選項(xiàng)給定命令模式和超時(shí)typedef struct command_option{unsigned char async;unsigned long wait_time;// unitsec}command_option_t;變量“async”具有SYNC_COMMAND或ASYNC_COMMAND的值(0或1)。SYNC_COMMAND表示控制應(yīng)用100將等待其發(fā)布的命令的響應(yīng)。ASYNC_COMMAND表示控制應(yīng)用100將不等待命令的響應(yīng)。
如果將變量“async”和狀態(tài)監(jiān)控相同地設(shè)置為SYNC_COMMAND,控制應(yīng)用100將在變量“wait_time”中存儲的時(shí)間間隔期間等待響應(yīng)。如果在發(fā)生超時(shí)之前接收到響應(yīng),正常完成命令。否則,控制應(yīng)用100執(zhí)行命令以處理TIME_OUT事件。如果將變量“async”設(shè)置為ASYNC_COMMAND,簡單地忽略變量“wait_time”。
為允許控制應(yīng)用100和庫110共享命令選項(xiàng),可以將command_option_t類型指針變量聲明為如下的全局變量staticcommand_option_t*func_option。
因?yàn)榭刂茟?yīng)用100能夠同時(shí)調(diào)用庫100的多于一個(gè)函數(shù),其還可以添加用于存儲命令碼的變量到如下的command_option結(jié)構(gòu)typedef struct command_option{unsigned char ccc; //命令碼unsigned char async;unsigned long wait_time; //單位秒}command_option_t;雖然如上定義的command_option_t類型的變量被定義為全局的,因?yàn)閳?zhí)行的命令的代碼包括在結(jié)構(gòu)中,控制應(yīng)用100和庫110能夠根據(jù)同步或異步模式執(zhí)行合適的操作。
下面將詳細(xì)描述初始化家庭網(wǎng)絡(luò)和修改設(shè)置的方法。首先描述初始化方法。
為構(gòu)造家庭網(wǎng)絡(luò),使用家庭碼。家庭碼是從其它網(wǎng)絡(luò)識別家庭網(wǎng)絡(luò)的唯一代碼,且家庭網(wǎng)絡(luò)裝置僅能夠和具有相同家庭碼的其它裝置通信。控制應(yīng)用100能夠通過調(diào)用庫110的下面函數(shù)int set_home_code()來設(shè)置家庭碼。
如果調(diào)用了函數(shù)set_home_code(),庫110執(zhí)行如圖5a所示的步驟。庫110通過物理網(wǎng)絡(luò)200廣播伴隨來自裝置的響應(yīng)的消息(例如,請求裝置名稱的消息)(S51)。消息使用在網(wǎng)絡(luò)適配器100a中設(shè)置的家庭碼。如果存在對消息的響應(yīng)(S52)且消息的目的在于添加裝置到網(wǎng)絡(luò),庫110廣播用于設(shè)置家庭碼的另一消息(S56)。如果在S52中消息的目的不在于添加裝置,庫110發(fā)布用于產(chǎn)生家庭碼的命令到網(wǎng)絡(luò)適配器100a(例如,電力線調(diào)制解調(diào)器)(S53)(通過調(diào)用庫110的內(nèi)部函數(shù)create_home_code()發(fā)布家庭碼產(chǎn)生命令),且之后通過網(wǎng)絡(luò)再次廣播伴隨響應(yīng)的另一消息(例如,名稱請求消息)(S54)。如果存在對于消息的響應(yīng)(S55),其指示已經(jīng)使用了家庭碼,且因此庫110執(zhí)行步驟以再次產(chǎn)生家庭碼(S53和S54)。如果不存在響應(yīng),庫110通過家庭網(wǎng)絡(luò)廣播用于設(shè)置創(chuàng)建的家庭碼的消息(S56)。
結(jié)果,即使多個(gè)電子用具通過電力線連接家庭網(wǎng)絡(luò),電子用具能夠彼此通信,而因?yàn)槲ㄒ环峙浣o家庭網(wǎng)絡(luò)的家庭碼的緣故沒有來自外部家庭網(wǎng)絡(luò)的干擾。
圖5b是用于確定是否首次確定建立家庭網(wǎng)絡(luò)或在上述過程中新的裝置是否連接到現(xiàn)有家庭網(wǎng)絡(luò)的流程圖。
用于設(shè)置家庭碼的方法根據(jù)是否首次建立家庭網(wǎng)絡(luò)或是否將新的裝置添加到現(xiàn)有家庭網(wǎng)絡(luò)而不同。如果存在對于請求裝置名稱的消息的響應(yīng)(S503和S504),其確定將新的裝置添加到現(xiàn)有的家庭網(wǎng)絡(luò)(S506)。例如,如果直到廣播消息三次不存在響應(yīng),確定首次建立家庭網(wǎng)絡(luò)。
圖5c是更加詳細(xì)地示出了如圖5a所示的步驟S53到S55的流程圖。在其中首次安裝家庭網(wǎng)絡(luò)的情況中,根據(jù)本發(fā)明的方法命令網(wǎng)絡(luò)適配器100a(例如,家庭網(wǎng)絡(luò)調(diào)制解調(diào)器)創(chuàng)建新的家庭碼(S511),和廣播創(chuàng)建的家庭碼,使得用于其它家庭網(wǎng)絡(luò)的調(diào)制解調(diào)器能夠在確定創(chuàng)建的家庭碼不和其它家庭網(wǎng)絡(luò)的家庭碼沖突之后設(shè)置家庭碼。通過廣播請求分組的名稱做出用于確定是否和創(chuàng)建的家庭碼沖突的決定(S513)。在廣播分組之前,在表中登記用于處理對于請求分組的名稱的響應(yīng)的管理者(S512)。如果接收到響應(yīng),由管理者處理響應(yīng)(S515)。
如果不存在響應(yīng)(S514),確定在網(wǎng)絡(luò)上不存在沖突家庭碼。如上所述,如果直到廣播消息三次沒有響應(yīng),廣播用于設(shè)置家庭碼的消息(S56)。如果接收到響應(yīng),表示已經(jīng)使用了家庭碼。因此,庫110廣播清除命令到調(diào)制解調(diào)器以清除創(chuàng)建的家庭碼(S515),且命令調(diào)制解調(diào)器再次產(chǎn)生家庭碼(S511)。
用于清除家庭碼的函數(shù)如下int clear_home_code()。
這個(gè)函數(shù)通過發(fā)送用于清除家庭碼的命令分組到和主機(jī)連接的家庭網(wǎng)絡(luò)調(diào)制解調(diào)器來清除在家庭網(wǎng)絡(luò)調(diào)制解調(diào)器中設(shè)置的家庭碼。
重復(fù)用于創(chuàng)建/清除家庭碼的上述過程直到獲得唯一的家庭碼。
在其中將新的裝置添加到現(xiàn)有家庭網(wǎng)絡(luò)的情況中,廣播家庭網(wǎng)絡(luò)的家庭碼使得能夠在新的裝置的家庭網(wǎng)絡(luò)調(diào)制解調(diào)器中設(shè)置家庭碼(S56)。
當(dāng)設(shè)置家庭碼時(shí),還可以設(shè)置用戶手動定義的家庭碼到網(wǎng)絡(luò)調(diào)制解調(diào)器(例如,電力線調(diào)制解調(diào)器),而不是網(wǎng)絡(luò)調(diào)制解調(diào)器100a隨機(jī)產(chǎn)生的家庭碼。能夠通過調(diào)用庫110的下面函數(shù)intpush_home_code(unsigned long home_code)進(jìn)行登記用戶定義的家庭碼。
如果調(diào)用了函數(shù),庫110設(shè)置接收的home_code(其是到函數(shù)的輸入變元)到連接的網(wǎng)絡(luò)調(diào)制解調(diào)器(例如,在服務(wù)器情況中的調(diào)制解調(diào)器100a)。如果調(diào)用家庭碼,通過上述函數(shù)set_home_code()經(jīng)消息廣播設(shè)置到網(wǎng)絡(luò)調(diào)制解調(diào)器的家庭碼到家庭網(wǎng)絡(luò)上的每個(gè)裝置。在和家庭網(wǎng)絡(luò)連接的裝置的調(diào)制解調(diào)器(例如,網(wǎng)絡(luò)調(diào)制解調(diào)器301a和302a)中設(shè)置在家庭網(wǎng)絡(luò)上廣播的家庭碼。
每個(gè)家庭網(wǎng)絡(luò)裝置需要用于通信的唯一地址。庫110允許控制應(yīng)用100通過提供分配/管理地址所需的例程來容易地分配地址到網(wǎng)絡(luò)裝置。
想要加入家庭網(wǎng)絡(luò)的裝置廣播插入通知消息,以獲得唯一地址(S61)。接收插入通知消息的主機(jī)在處理消息之后分配地址到裝置。
為這樣做,控制應(yīng)用100在庫110的響應(yīng)函數(shù)散列表中預(yù)先登記用于插入通知消息的管理者。在登記之后,因?yàn)橛蓭?10調(diào)回登記的管理者,控制應(yīng)用100能夠處理插入通知分組。
如果接收了插入通知分組,用于插入通知分組的管理者找到發(fā)送分組的裝置的類型,且基于裝置類型搜索其數(shù)據(jù)庫用于沒有使用的地址(S62)。如果找到?jīng)]有使用的地址,管理者經(jīng)變元傳遞地址到地址改變命令(S63)。通過調(diào)用庫110的下面函數(shù)進(jìn)行這個(gè)過程intchange_address(old_addr,new_addr)。
對函數(shù)change_address()的變元是當(dāng)前地址和將代替當(dāng)前地址使用的新地址。如果裝置是首次和家庭網(wǎng)絡(luò)連接的新的裝置,“old_addr”是默認(rèn)地址(例如,通常是0)。函數(shù)change_address()返回指示地址改變操作是否成功的值。
接收地址改變命令的裝置設(shè)置傳遞的地址作為它的地址,且發(fā)送響應(yīng)。如果函數(shù)change_address()接收響應(yīng),因?yàn)槠浔硎镜刂犯淖儾僮鞒晒Γ瘮?shù)在其數(shù)據(jù)庫中存儲地址(S64)。另外,函數(shù)發(fā)送DB更新命令以通知其它網(wǎng)絡(luò)管理器登記了新的裝置(S65)。
在改變裝置地址之后,庫110向設(shè)置新的地址的裝置做出用于另外信息的請求(S66和S67),且在數(shù)據(jù)庫中存儲接收的信息。例如,庫110通過發(fā)送裝置搜索命令找出裝置是主機(jī)或子機(jī)(S66),且使用型號請求命令獲得其型號名稱(S67)。
將描述其中在初始化期間主機(jī)裝置建立和家庭網(wǎng)絡(luò)連接的裝置的選項(xiàng)的方法。
家庭網(wǎng)絡(luò)的主機(jī)裝置的庫110應(yīng)該檢查哪個(gè)裝置連接網(wǎng)絡(luò)和哪個(gè)裝置有效。為此,庫110請求每個(gè)裝置周期性地發(fā)送指示裝置有效的消息。該消息被稱為“活躍”消息。當(dāng)主機(jī)的控制應(yīng)用100初始化網(wǎng)絡(luò)時(shí),控制應(yīng)用100通知裝置的“活躍”消息的周期。因此,庫110因?yàn)槠鋸挠行аb置接收了周期性的“活躍”消息而知道哪個(gè)裝置有效。
控制應(yīng)用100調(diào)用以設(shè)置“活躍”消息的從用戶或操作者輸入的周期的庫110的函數(shù)定義如下int set_alive_message_interval(time)。
當(dāng)調(diào)用函數(shù)時(shí),庫110將變量“time”(其是“活躍”消息的周期)的值傳遞到家庭網(wǎng)絡(luò)上的每個(gè)裝置,使得裝置在之后的周期中周期性地發(fā)送“活躍”消息。
可以在裝備有保持跟蹤時(shí)間的功能的裝置中設(shè)置當(dāng)前時(shí)間。為在這種裝置中設(shè)置時(shí)間,控制應(yīng)用100調(diào)用庫110的下面函數(shù)intset_clock(hour,min,sec)。
當(dāng)執(zhí)行函數(shù)時(shí),庫110產(chǎn)生包括變量“hour”,“minute”和“second”的值的分組,且發(fā)送分組到裝置。而且,庫110基于來自裝置的響應(yīng)經(jīng)返回值通知控制應(yīng)用100結(jié)果。
家庭網(wǎng)絡(luò)裝置通過事件通知狀態(tài)的改變給其它裝置和主機(jī)裝置。控制應(yīng)用100能夠通過庫110啟用或禁用狀態(tài)通知函數(shù)。為啟用狀態(tài)通知函數(shù),控制應(yīng)用100調(diào)用庫110的如下定義的函數(shù)intevent_enable(enable)。
如果調(diào)用函數(shù)event_enable(),庫110基于輸入變元發(fā)送用于啟用或禁用狀態(tài)通知函數(shù)的命令到相應(yīng)裝置。接收對于命令的響應(yīng),庫110返回對應(yīng)于響應(yīng)的值到控制應(yīng)用100。
如果標(biāo)準(zhǔn)化在控制應(yīng)用和庫之間的接口,因?yàn)閷τ陔娮佑镁弑WC了兼容性而不考慮其制造商,用戶能夠在購買用于構(gòu)造家庭網(wǎng)絡(luò)的電子用具時(shí)享受更多的自由。標(biāo)準(zhǔn)化還幫助制造商減少用于裝置開發(fā)和擔(dān)保服務(wù)的成本。
雖然關(guān)于有限數(shù)目的實(shí)施例公開了本發(fā)明,從本公開獲益的本領(lǐng)域普通技術(shù)人員將認(rèn)可能夠作出多種修改和變更。意在所有這種修改和變更在本發(fā)明的精神和范圍之中。
權(quán)利要求
1.一種用于在管理網(wǎng)絡(luò)的裝置的應(yīng)用和庫之間交換命令和/或響應(yīng)的方法,其包括(a)調(diào)用庫的函數(shù)以控制和網(wǎng)絡(luò)連接的裝置,同時(shí)傳遞裝置的標(biāo)識符以控制和傳遞命令碼到函數(shù),該調(diào)用由應(yīng)用進(jìn)行;和(b)向由標(biāo)識符指定的裝置請求由命令碼識別的命令,且傳遞從裝置的命令的操作得到的信息到應(yīng)用,該請求由庫進(jìn)行。
2.如權(quán)利要求1所述的方法,其中,在步驟(a)中,該應(yīng)用進(jìn)一步傳遞選項(xiàng)信息到函數(shù),該選項(xiàng)信息指示是否等待信息。
3.如權(quán)利要求1所述的方法,其中,該傳遞到函數(shù)和應(yīng)用的步驟是通過預(yù)先定義的命令結(jié)構(gòu)進(jìn)行的。
4.如權(quán)利要求3所述的方法,其中,該命令結(jié)構(gòu)具有為標(biāo)識符、命令碼、關(guān)于由調(diào)用伴隨的輸入變元的信息,結(jié)果信息和命令選項(xiàng)分配的空間。
5.如權(quán)利要求4所述的方法,其中,該信息包括字符串和/或消息。
6.如權(quán)利要求4所述的方法,其中,該信息被通過為結(jié)果信息分配的空間傳送到應(yīng)用。
7.如權(quán)利要求6所述的方法,其中,在步驟(b)中,響應(yīng)于應(yīng)用的調(diào)用,該庫返回指示是否從裝置做出消息響應(yīng)的值,且該應(yīng)用基于返回的值通過命令結(jié)構(gòu)獲得從命令的操作得到的信息。
8.一種用于管理和網(wǎng)絡(luò)連接的裝置的設(shè)備,其包括庫,其用于和裝置交換信息;和應(yīng)用,其用于通過庫向多個(gè)裝置中的裝置請求命令,且接收命令的結(jié)果信息,其中關(guān)于命令的裝置的信息,指示命令的代碼,和命令的結(jié)果信息被通過互相共享的信息結(jié)構(gòu)在庫和應(yīng)用之間傳遞。
9.如權(quán)利要求8所述的設(shè)備,其中,另外的選項(xiàng)信息被通過信息結(jié)構(gòu)在庫和應(yīng)用之間傳遞,該選項(xiàng)信息指示是否等待從命令的操作得到的信息。
10.如權(quán)利要求8所述的設(shè)備,其中,關(guān)于輸入變元的另外的信息被通過信息結(jié)構(gòu)在庫和應(yīng)用之間傳遞,該輸入變元由用于庫的函數(shù)的應(yīng)用的調(diào)用伴隨。
11.一種用于在管理網(wǎng)絡(luò)的裝置的應(yīng)用和庫之間交換命令和/或響應(yīng)的方法,其包括(a)設(shè)置信息為全局變量,且調(diào)用庫的函數(shù)用于控制和網(wǎng)絡(luò)連接的裝置,該信息指示是否等待調(diào)用結(jié)果;和(b)基于在全局變量中設(shè)置的信息確定調(diào)用的響應(yīng)方式,其中,由應(yīng)用進(jìn)行步驟(a)且由庫進(jìn)行步驟(b)。
12.如權(quán)利要求11所述的方法,其中,該全局變量包括指示是否等待的命令模式,和在命令模式指示等待的情況中有效的等待時(shí)間。
13.如權(quán)利要求12所述的方法,其中,該應(yīng)用分配多個(gè)全局變量,每個(gè)全局變量進(jìn)一步包括命令碼的字段。
14.一種用于管理和網(wǎng)絡(luò)連接的裝置的設(shè)備,其包括庫,其用于和裝置交換信息;和應(yīng)用,其用于通過庫向多個(gè)裝置中的任意裝置請求命令,和用于接收命令的結(jié)果信息;和全局變量,應(yīng)用向其設(shè)置指示是否等待結(jié)果信息的信息。
15.一種用于在管理網(wǎng)絡(luò)的裝置的應(yīng)用和庫之間交換命令和/或響應(yīng)的方法,其包括(a)調(diào)用庫的函數(shù)以控制和網(wǎng)絡(luò)連接的裝置,同時(shí)傳遞裝置的標(biāo)識符和狀態(tài)詢問命令到函數(shù),該調(diào)用由應(yīng)用進(jìn)行;和(b)向由標(biāo)識符指定的裝置請求狀態(tài)詢問命令,和傳遞由狀態(tài)詢問命令獲得的狀態(tài)信息到函數(shù),該請求由庫進(jìn)行。
16.如權(quán)利要求15所述的方法,其中,在步驟(a)中,該應(yīng)用進(jìn)一步通知函數(shù)指示等待狀態(tài)詢問命令的結(jié)果的信息和等待時(shí)間。
17.如權(quán)利要求15所述的方法,其中,該傳遞到函數(shù)和應(yīng)用的步驟是通過預(yù)先定義的命令結(jié)構(gòu)進(jìn)行的。
18.如權(quán)利要求17所述的方法,其中,該命令結(jié)構(gòu)具有為裝置的標(biāo)識符,命令碼,關(guān)于由調(diào)用伴隨的輸入變元的信息,根據(jù)狀態(tài)詢問命令的狀態(tài)信息,和命令選項(xiàng)分配的空間。
19.一種用于管理和網(wǎng)絡(luò)連接的裝置的設(shè)備,其包括庫,其用于和裝置交換信息;和應(yīng)用,其用于通過庫向多個(gè)裝置中的任意裝置請求狀態(tài)詢問命令,和用于接收命令的結(jié)果信息,其中,關(guān)于詢問狀態(tài)的裝置的信息,指示狀態(tài)詢問命令的代碼,等待狀態(tài)詢問的結(jié)果的時(shí)間,狀態(tài)詢問命令的結(jié)果信息被通過該信息結(jié)構(gòu)在庫和應(yīng)用之間傳遞。
全文摘要
本發(fā)明涉及用于控制在家庭網(wǎng)絡(luò)上工作的多種應(yīng)用和庫之間的裝置以保證它們的兼容性的接口方法和設(shè)備。在根據(jù)本發(fā)明的用于控制在家庭網(wǎng)絡(luò)上的裝置的方法中,應(yīng)用通過互相共享的結(jié)構(gòu)調(diào)用庫的函數(shù)以控制網(wǎng)絡(luò)上的裝置,同時(shí)提供裝置的標(biāo)識符以控制,和提供用于控制的命令碼,且?guī)煜蛴蓸?biāo)識符指定的裝置請求由命令碼識別的命令,且通過共享結(jié)構(gòu)傳送來自裝置的結(jié)果信息到應(yīng)用。
文檔編號H04L12/28GK1838069SQ20051013621
公開日2006年9月27日 申請日期2005年12月22日 優(yōu)先權(quán)日2004年12月22日
發(fā)明者鄭鐘勛, 金真英 申請人:Lg電子株式會社