專利名稱:在用于網(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ò)的庫也會(huì)不同。不同的庫需要和比如控制程序的應(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ā)明提供了在家庭網(wǎng)絡(luò)主機(jī)(服務(wù)器)的應(yīng)用和庫直接的驅(qū)動(dòng)過程。
本發(fā)明提供了用于在建立家庭網(wǎng)絡(luò)時(shí)設(shè)置作為網(wǎng)絡(luò)的唯一標(biāo)識符的家庭碼的方法和設(shè)備。
本發(fā)明提供了用于設(shè)置或修改家庭網(wǎng)絡(luò)裝置的地址的方法和設(shè)備。
本發(fā)明提供了用于設(shè)置家庭網(wǎng)絡(luò)裝置的操作選項(xiàng)(例如,活躍狀態(tài)報(bào)告周期、時(shí)間、事件報(bào)告激活等)的方法和設(shè)備。
在其中應(yīng)用在根據(jù)本發(fā)明的用于管理網(wǎng)絡(luò)的裝置中開始的方法中,應(yīng)用向裝置中的庫請求初始化,請求庫以獲得和網(wǎng)絡(luò)連接的裝置的列表和關(guān)于裝置的信息,且請求庫以登記在網(wǎng)絡(luò)上的裝置上產(chǎn)生的事件,且調(diào)回函數(shù)以處理事件。
根據(jù)本發(fā)明的用于設(shè)置網(wǎng)絡(luò)的方法發(fā)送網(wǎng)絡(luò)上的任意廣播消息,且基于還是否存在對于任意廣播消息的響應(yīng),來確定是初始建立網(wǎng)絡(luò)或進(jìn)行了裝置的添加。如果確定進(jìn)行了網(wǎng)絡(luò)的初始建立,本方法命令網(wǎng)絡(luò)適配器創(chuàng)建家庭碼,發(fā)送任意廣播消息,且檢測是否存在對于廣播消息的響應(yīng)。之后,如果不存在對于發(fā)送的廣播消息的響應(yīng),本方法在網(wǎng)絡(luò)上廣播用于設(shè)置家庭碼的命令消息。
在用于初始化在網(wǎng)絡(luò)上的裝置以監(jiān)控活躍狀態(tài)的方法中,應(yīng)用調(diào)用庫的函數(shù),用于以攜帶時(shí)間信息的輸入變元設(shè)置時(shí)間,時(shí)間信息用于確定裝置是否活躍,且?guī)彀l(fā)送第一消息到和網(wǎng)絡(luò)連接的裝置,第一消息命令裝置發(fā)送第二消息以在由時(shí)間信息指定的間隔周期性地通知活躍。
在用于設(shè)置當(dāng)前時(shí)間到網(wǎng)絡(luò)上的裝置的方法中,應(yīng)用調(diào)用庫的函數(shù)用于以攜帶關(guān)于當(dāng)前時(shí)間的信息的輸入變元設(shè)置當(dāng)前時(shí)間,且?guī)彀l(fā)送包括關(guān)于當(dāng)前時(shí)間的信息的消息到和網(wǎng)絡(luò)連接的裝置,該消息命令裝置以信息設(shè)置當(dāng)前時(shí)間。
在用于控制網(wǎng)絡(luò)上的裝置的事件報(bào)告的方法中,應(yīng)用調(diào)用庫的函數(shù),用于以攜帶指示有效或無效的值的輸入變元設(shè)置事件報(bào)告動(dòng)作為有效/無效,且?guī)彀l(fā)送消息到和網(wǎng)絡(luò)連接的至少一個(gè)裝置,該消息命令至少一個(gè)裝置設(shè)置事件報(bào)告動(dòng)作到有效和無效的一個(gè)狀態(tài),且由輸入變元攜帶的值指定一個(gè)狀態(tài)。
用于分配地址給網(wǎng)絡(luò)上的裝置的方法接收通知第一裝置連接網(wǎng)絡(luò)的第一消息,搜索未分配的地址的數(shù)據(jù)庫,發(fā)送第二消息命令以設(shè)置未分配的地址到第一裝置,且如果從第一裝置響應(yīng)地址設(shè)置成功,改變未分配的地址以分配一個(gè),如果在網(wǎng)絡(luò)上存在第二裝置,本方法發(fā)送更新另一數(shù)據(jù)庫的第三消息命令到管理另一數(shù)據(jù)庫的第二裝置。
圖1說明了其中有益地具體表現(xiàn)本發(fā)明的家庭網(wǎng)絡(luò)的概略圖;圖2說明了示出在如圖1所示的裝置的啟動(dòng)期間執(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_tdevice_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)行用戶接口的裝載。在初始啟動(dòng)階段可以不裝載用戶接口。
控制應(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ā)生的外部事件。
事件允許有效和方便地管理裝置在于自動(dòng)通知用戶家庭網(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)生事件和事件類型的類型。“device_addr”是用于唯一地識別家庭網(wǎng)絡(luò)上的裝置的信息(例如,類型和序列號)?!癳vent_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)(40 1)中的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 charasync;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”中存儲(chǔ)的時(shí)間間隔期間等待響應(yīng)。如果在發(fā)生超時(shí)之前接收到響應(yīng),正常完成命令。否則,控制應(yīng)用100執(zhí)行命令以處理TIME_OUT事件。如果將變量“async”設(shè)置為ASYNC_COMMAND,簡單地忽略變量“wait_time”。
為允許控制應(yīng)用 00和庫110共享命令選項(xiàng),可以將command_option_t類型指針變量聲明為如下的全局變量staticcommand_option_t*func_option。
因?yàn)榭刂茟?yīng)用100能夠同時(shí)調(diào)用庫100的多于一個(gè)函數(shù),其還可以添加用于存儲(chǔ)命令碼的變量到如下的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è)置用戶手動(dòng)定義的家庭碼到網(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ù)庫中存儲(chǔ)地址(S64)。另外,函數(shù)發(fā)送DB更新命令以通知其它網(wǎng)絡(luò)管理器登記了新的裝置(S65)。
在改變裝置地址之后,庫110向設(shè)置新的地址的裝置做出用于另外信息的請求(S66和S67),且在數(shù)據(jù)庫中存儲(chǔ)接收的信息。例如,庫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)用的方法,其包括(a)向裝置中的庫請求初始化;(b)請求庫以獲得和網(wǎng)絡(luò)連接的裝置的列表和關(guān)于裝置的信息;和(c)請求庫以登記在網(wǎng)絡(luò)上的裝置上產(chǎn)生的事件,且調(diào)回函數(shù)以處理事件。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括在步驟(a)之前裝載用戶接口程序的步驟。
3.如權(quán)利要求1所述的方法,其中,該應(yīng)用在步驟(a)中進(jìn)一步傳送用于控制每個(gè)裝置的基本信息到庫。
4.如權(quán)利要求1所述的方法,進(jìn)一步包括如果產(chǎn)生事件則調(diào)用登記的調(diào)回函數(shù)的步驟,該調(diào)回函數(shù)的例程包括在應(yīng)用中,該調(diào)用由庫進(jìn)行。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括請求釋放由步驟(c)登記的事件和調(diào)回函數(shù)的步驟。
6.一種用于設(shè)置網(wǎng)絡(luò)的方法,其包括(a)在網(wǎng)絡(luò)上發(fā)送任意廣播消息;(b)基于是否存在對于任意廣播消息的響應(yīng),確定是進(jìn)行了初始建立網(wǎng)絡(luò)或添加裝置;(c)如果確定進(jìn)行了網(wǎng)絡(luò)的初始建立,命令網(wǎng)絡(luò)適配器創(chuàng)建家庭碼,發(fā)送任意廣播消息,和檢查是否存在對于廣播消息的響應(yīng);和(d)如果不存在對于在步驟(c)發(fā)送的廣播消息的響應(yīng),廣播用于在網(wǎng)絡(luò)上設(shè)置家庭碼的命令消息。
7.如權(quán)利要求6所述的方法,其中,該步驟(a)到(d)是在應(yīng)用調(diào)用庫的函數(shù)以設(shè)置家庭碼時(shí)由庫進(jìn)行的。
8.如權(quán)利要求6所述的方法,進(jìn)一步包括如果確定進(jìn)行了裝置的添加,在網(wǎng)絡(luò)上廣播用于設(shè)置當(dāng)前家庭碼的命令消息的步驟。
9.如權(quán)利要求6所述的方法,其中,如果在發(fā)送任意廣播消息至少兩次之后不存在對于任意廣播消息的響應(yīng),該步驟(b)確定進(jìn)行了網(wǎng)絡(luò)的初始建立。
10.如權(quán)利要求6所述的方法,進(jìn)一步包括步驟如果存在對于在步驟(c)發(fā)送的廣播消息的響應(yīng),命令網(wǎng)絡(luò)適配器刪除創(chuàng)建的家庭碼和創(chuàng)建新的家庭碼,和在網(wǎng)絡(luò)上發(fā)送任意廣播消息。
11.一種用于設(shè)置網(wǎng)絡(luò)的方法,其包括(a)調(diào)用庫的函數(shù)用于以攜帶家庭碼的輸入變元設(shè)置從用戶鍵入的家庭碼,該調(diào)用由應(yīng)用進(jìn)行;和(b)請求網(wǎng)絡(luò)適配器設(shè)置鍵入的家庭碼,該請求由庫進(jìn)行。
12.一種用于管理在網(wǎng)絡(luò)上的裝置的設(shè)備,其包括適配器,其用于通過網(wǎng)絡(luò)發(fā)送/接收數(shù)據(jù);和庫,其用于根據(jù)家庭碼設(shè)置的請求在網(wǎng)絡(luò)上發(fā)送任意廣播消息,基于是否存在對于任意廣播消息的響應(yīng)來確定進(jìn)行了網(wǎng)絡(luò)的初始建立或裝置的添加;其中,如果確定進(jìn)行了網(wǎng)絡(luò)的初始建立,庫命令適配器創(chuàng)建家庭碼和在網(wǎng)絡(luò)上廣播用于設(shè)置創(chuàng)建的家庭碼的命令消息。
13.如權(quán)利要求12所述的設(shè)備,其中,如果確定進(jìn)行了網(wǎng)絡(luò)的初始建立,庫在命令適配器創(chuàng)建家庭碼之后發(fā)送任意廣播消息,且如果存在對于廣播消息的響應(yīng)則在網(wǎng)絡(luò)上廣播命令消息。
14.一種用于在管理網(wǎng)絡(luò)的裝置的應(yīng)用和庫之間交換命令和/或響應(yīng)的方法,其包括(a)調(diào)用庫的函數(shù)用于以攜帶時(shí)間信息的輸入變元設(shè)置時(shí)間,該時(shí)間信息用于確定裝置是否是活躍的,該調(diào)用由應(yīng)用進(jìn)行;和(b)發(fā)送第一消息到和網(wǎng)絡(luò)連接的裝置,該第一消息命令裝置發(fā)送第二消息以在由時(shí)間信息指定的間隔周期性地通報(bào)活躍,該發(fā)送由庫進(jìn)行。
15.如權(quán)利要求14所述的方法,進(jìn)一步包括基于裝置是否在周期發(fā)送第二消息來確定裝置是否活躍的步驟,該確定由庫進(jìn)行。
16.一種用于在管理網(wǎng)絡(luò)的裝置的應(yīng)用和庫之間交換命令和/或響應(yīng)的方法,其包括(a)調(diào)用庫的函數(shù)用于以攜帶關(guān)于當(dāng)前時(shí)間的信息的輸入變元設(shè)置當(dāng)前時(shí)間,該調(diào)用由應(yīng)用進(jìn)行;和(b)發(fā)送包括關(guān)于當(dāng)前時(shí)間的信息的消息到和網(wǎng)絡(luò)連接的裝置,該消息命令裝置以信息設(shè)置當(dāng)前時(shí)間,該發(fā)送由庫進(jìn)行。
17.一種用于在管理網(wǎng)絡(luò)的裝置的應(yīng)用和庫之間交換命令和/或響應(yīng)的方法,其包括(a)調(diào)用庫的函數(shù),用于以攜帶指示有效或無效的值的輸入變元設(shè)置事件報(bào)告動(dòng)作為有效/無效,該調(diào)用由應(yīng)用進(jìn)行;和(b)發(fā)送消息到和網(wǎng)絡(luò)連接的至少一個(gè)裝置,該消息命令至少一個(gè)裝置設(shè)置事件報(bào)告動(dòng)作到有效和無效的一個(gè)狀態(tài),且由輸入變元攜帶的值指定該一個(gè)狀態(tài),該發(fā)送由庫進(jìn)行。
18.一種用于管理和網(wǎng)絡(luò)連接的裝置的設(shè)備,其包括應(yīng)用,其用于進(jìn)行裝置的管理;和庫,其用于根據(jù)來自應(yīng)用的請求和裝置交換信息;其中,該庫包括第一函數(shù),其用于向和網(wǎng)絡(luò)連接的裝置發(fā)送第一消息,該第一消息命令裝置發(fā)送第二消息以在由函數(shù)調(diào)用伴隨的輸入變元指定的間隔,周期性地通報(bào)活躍;第二函數(shù),其用于向和網(wǎng)絡(luò)連接的裝置發(fā)送命令裝置以由函數(shù)調(diào)用伴隨的輸入變元指定的時(shí)間信息設(shè)置當(dāng)前時(shí)間的消息;和第三函數(shù),其用于向和網(wǎng)絡(luò)連接的至少一個(gè)裝置發(fā)送命令至少一個(gè)裝置設(shè)置時(shí)間報(bào)告動(dòng)作為有效和無效的一個(gè)狀態(tài)的消息,該一個(gè)狀態(tài)由函數(shù)調(diào)用伴隨的輸入變元指定。
19.一種用于分配地址給網(wǎng)絡(luò)上的裝置的方法,其包括(a)接收通知第一裝置和網(wǎng)絡(luò)連接的第一消息;(b)搜索數(shù)據(jù)庫用于未分配的地址,且發(fā)送命令設(shè)置未分配的地址的第二消息給第一裝置;(c)如果從第一裝置響應(yīng)設(shè)置地址成功,則改變未分配的地址為分配的地址;和(d)如果在網(wǎng)絡(luò)上存在第二裝置,發(fā)送命令更新另一數(shù)據(jù)庫的第三消息到管理另一數(shù)據(jù)庫的第二裝置。
20.如權(quán)利要求19所述的方法,其中,該第二裝置是網(wǎng)絡(luò)上的主機(jī)。
21.如權(quán)利要求19所述的方法,進(jìn)一步包括向第一裝置請求另外的信息的步驟,且如果獲得了另外的信息,在數(shù)據(jù)庫中登記獲得的另外的信息。
22.如權(quán)利要求19所述的方法,其中,該第二消息包括現(xiàn)有地址和待分配的新地址的字段。
23.如權(quán)利要求22所述的方法,其中,如果第一裝置和網(wǎng)絡(luò)第一次連接,該現(xiàn)有地址的字段填充有默認(rèn)地址。
24.如權(quán)利要求22所述的方法,其中,當(dāng)由庫調(diào)回用于第一消息的處理接收的函數(shù)時(shí)進(jìn)行步驟(b),由應(yīng)用的請求在庫中登記該函數(shù)。
25.一種用于管理和網(wǎng)絡(luò)連接的裝置的設(shè)備,其包括應(yīng)用,其用于管理裝置的地址分配;和庫,其用于當(dāng)接收通知任意裝置連接網(wǎng)絡(luò)的第一消息時(shí),調(diào)用由應(yīng)用登記的第一函數(shù),其中,該第一函數(shù)請求庫搜索數(shù)據(jù)庫用于未分配的地址,和發(fā)送命令設(shè)置未分配的地址的第二消息到任意裝置。
26.如權(quán)利要求25所述的裝置,其中,該應(yīng)用包括如果從任意裝置響應(yīng)地址設(shè)置成功則在數(shù)據(jù)庫上改變未分配的地址為分配的地址的第二函數(shù)。
全文摘要
本發(fā)明涉及用于控制在家庭網(wǎng)絡(luò)上工作的多種應(yīng)用和庫之間的裝置以保證它們的兼容性的接口方法和設(shè)備。根據(jù)本發(fā)明的接口方法公開了初始化在用于管理家庭網(wǎng)絡(luò)的裝置中執(zhí)行庫,設(shè)置用于管理家庭網(wǎng)絡(luò)的家庭碼,排它地管理家庭網(wǎng)絡(luò)上每個(gè)裝置的地址和設(shè)置裝置監(jiān)控所需的條件的過程。
文檔編號H04L12/28GK1838070SQ20051013622
公開日2006年9月27日 申請日期2005年12月22日 優(yōu)先權(quán)日2004年12月22日
發(fā)明者韓善美, 李相均, 樸鎮(zhèn)成, 樸埈亨 申請人:Lg電子株式會(huì)社