設(shè)備命令調(diào)用方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及一種設(shè)備命令調(diào)用方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著設(shè)備類型的增加,在各類應用系統(tǒng)中,例如監(jiān)控應用系統(tǒng)中,經(jīng)常需要對大量不同類型的設(shè)備進行統(tǒng)一的實時監(jiān)視與控制,開發(fā)人員需要根據(jù)具體的設(shè)備開發(fā)一套監(jiān)控系統(tǒng)。雖然不同的監(jiān)控系統(tǒng)存在較多的相同與相似性,但不同的設(shè)備命令格式多種多樣,命令執(zhí)行方式也不同,每種類型的設(shè)備均有其相對應的設(shè)備命令,當向不同類型的設(shè)備發(fā)送設(shè)備命令時,需要由上層應用通過不同的命令調(diào)用方法直接調(diào)用不同的設(shè)備命令。因此,當系統(tǒng)中新增設(shè)備時,針對新增設(shè)備的類型,需要編寫新的設(shè)備命令處理程序代碼和設(shè)備命令調(diào)用程序代碼,并將通過修改原系統(tǒng)程序?qū)⒃摼帉懙脑O(shè)備命令處理程序代碼和設(shè)備命令調(diào)用程序代碼添加至原系統(tǒng)程序中,來實現(xiàn)新的設(shè)備命令和新的設(shè)備命令調(diào)用方法的添加,工作量較大,可擴展性較差,且因為要修改原系統(tǒng)程序,也使得系統(tǒng)的可維護性和可靠性變差。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實施例提供一種設(shè)備命令調(diào)用方法和系統(tǒng),以解決現(xiàn)有技術(shù)中工作量較大,可擴展性較差,要修改原系統(tǒng)程序,使得系統(tǒng)的可維護性和可靠性變差的問題。
[0004]為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
[0005]—種設(shè)備命令調(diào)用方法,將各類設(shè)備的描述信息抽象為元數(shù)據(jù)存儲在配置文件中,所述描述信息包括:設(shè)備的類型名稱和設(shè)備命令的名稱,并將各類設(shè)備相對應的元數(shù)據(jù)和設(shè)備命令處理程序綁定,包括:
[0006]上層應用向命令執(zhí)行接口發(fā)送命令調(diào)用指令;
[0007]所述命令執(zhí)行接口根據(jù)所述命令調(diào)用指令確定需調(diào)用的設(shè)備命令的名稱和所述設(shè)備命令相對應的執(zhí)行設(shè)備的類型名稱,并根據(jù)所述類型名稱和所述設(shè)備命令的名稱在配置文件中查找所述設(shè)備命令相對應的執(zhí)行元數(shù)據(jù);
[0008]所述命令執(zhí)行接口根據(jù)所述執(zhí)行元數(shù)據(jù)取出與所述執(zhí)行元數(shù)據(jù)綁定的綁定設(shè)備命令處理程序,執(zhí)行所述綁定設(shè)備命令處理程序,向所述執(zhí)行設(shè)備發(fā)送所述設(shè)備命令。
[0009]其中,所述根據(jù)所述類型名稱和所述設(shè)備命令的名稱在配置文件中查找所述設(shè)備命令相對應的執(zhí)行元數(shù)據(jù)包括:
[0010]所述命令執(zhí)行接口根據(jù)所述類型名稱在配置文件中查找所述類型名稱相對應的元數(shù)據(jù),得到設(shè)備類型元數(shù)據(jù);
[0011]根據(jù)所述設(shè)備命令的名稱在所有所述設(shè)備類型元數(shù)據(jù)中查詢所述設(shè)備命令的名稱相對應的元數(shù)據(jù),得到執(zhí)行元數(shù)據(jù)。
[0012]其中,所述根據(jù)所述類型名稱在配置文件中查找所述類型名稱相對應的元數(shù)據(jù),得到設(shè)備類型元數(shù)據(jù)后還包括:
[0013]所述命令執(zhí)行接口判斷是否查找到所述設(shè)備類型元數(shù)據(jù);
[0014]若否,則向所述上層應用返回第一錯誤信息,結(jié)束操作。
[0015]其中,所述根據(jù)所述設(shè)備命令的名稱在所有所述設(shè)備類型元數(shù)據(jù)中查詢所述設(shè)備命令的名稱相對應的元數(shù)據(jù),得到執(zhí)行元數(shù)據(jù)后還包括:
[0016]所述命令執(zhí)行接口判斷是否查找到所述執(zhí)行元數(shù)據(jù);
[0017]若否,則向所述上層應用返回第二錯誤信息,結(jié)束操作。
[0018]其中,所述命令執(zhí)行接口根據(jù)所述執(zhí)行元數(shù)據(jù)取出與所述執(zhí)行元數(shù)據(jù)綁定的綁定設(shè)備命令處理程序后包括:
[0019]所述命令執(zhí)行接口判斷所述綁定設(shè)備命令處理程序是否實例化;
[0020]若是,則執(zhí)行所述綁定設(shè)備命令處理程序;
[0021]若否,則實例化所述綁定設(shè)備命令處理程序,執(zhí)行所述綁定設(shè)備命令處理程序。
[0022]其中,所述向所述執(zhí)行設(shè)備發(fā)送所述設(shè)備命令后還包括:
[0023]所述上層應用判斷是否在預設(shè)時間內(nèi)接收到所述執(zhí)行設(shè)備在接收到所述設(shè)備命令后返回的反饋信息;
[0024]若未接收到,則所述命令執(zhí)行接口再次向所述執(zhí)行設(shè)備發(fā)送所述設(shè)備命令。
[0025]若接收到,則根據(jù)所述反饋信息判斷所述執(zhí)行設(shè)備在接收到所述設(shè)備命令后是否執(zhí)行所述設(shè)備命令;
[0026]若未執(zhí)行,則生成第三錯誤信息。
[0027]—種設(shè)備命令調(diào)用系統(tǒng),包括上層應用和命令執(zhí)行接口 ;其中,
[0028]所述上層應用包括指令發(fā)送單元,所述指令發(fā)送單元用于向命令執(zhí)行接口發(fā)送命令調(diào)用指令;
[0029]所述命令執(zhí)行接口包括查找單元和執(zhí)行單元,其中,所述查找單元用于根據(jù)所述命令調(diào)用指令確定需調(diào)用的設(shè)備命令的名稱和所述設(shè)備命令相對應的執(zhí)行設(shè)備的類型名稱,并根據(jù)所述類型名稱和所述設(shè)備命令的名稱在配置文件中查找所述設(shè)備命令相對應的執(zhí)行元數(shù)據(jù);所述執(zhí)行單元用于根據(jù)所述執(zhí)行元數(shù)據(jù)取出與所述執(zhí)行元數(shù)據(jù)綁定的綁定設(shè)備命令處理程序,執(zhí)行所述綁定設(shè)備命令處理程序,向所述執(zhí)行設(shè)備發(fā)送所述設(shè)備命令。
[0030]其中,所述設(shè)備命令調(diào)用系統(tǒng)還包括:配置綁定模塊,用于將各類設(shè)備的描述信息抽象為元數(shù)據(jù)存儲在配置文件中,所述描述信息包括:設(shè)備的類型名稱和設(shè)備命令的名稱,并將各類設(shè)備相對應的元數(shù)據(jù)和設(shè)備命令處理程序綁定。
[0031]其中,所述查找單元包括第一查找子單元和第二查找子單元;其中,
[0032]所述第一查找子單元,用于根據(jù)所述類型名稱在配置文件中查找所述類型名稱相對應的元數(shù)據(jù),得到設(shè)備類型元數(shù)據(jù);
[0033]所述第二查找子單元,用于根據(jù)所述設(shè)備命令的名稱在所有所述設(shè)備類型元數(shù)據(jù)中查詢所述設(shè)備命令的名稱相對應的元數(shù)據(jù),得到執(zhí)行元數(shù)據(jù)。
[0034]其中,所述上層應用還包括:第一判斷單元和第二判斷單元;其中,
[0035]所述第一判斷單元,用于判斷是否在預設(shè)時間內(nèi)接收到所述執(zhí)行設(shè)備在接收到所述設(shè)備命令后返回的反饋信息,若未接收到,則控制所述命令執(zhí)行接口再次向所述執(zhí)行設(shè)備發(fā)送所述設(shè)備命令;
[0036]所述第二判斷單元,用于當判定在預設(shè)時間內(nèi)接收到所述執(zhí)行設(shè)備在接收到所述設(shè)備命令后返回的反饋信息時,根據(jù)所述反饋信息判斷所述執(zhí)行設(shè)備在接收到所述設(shè)備命令后是否執(zhí)行所述設(shè)備命令,若未執(zhí)行,則生成第三錯誤信息。
[0037]基于上述技術(shù)方案,本發(fā)明實施例提供的設(shè)備命令調(diào)用方法和系統(tǒng),將各類設(shè)備的描述信息抽象為元數(shù)據(jù)存儲在配置文件中,各類設(shè)備的描述信息包括:設(shè)備的類型名稱和該類設(shè)備對應的所有設(shè)備命令的名稱,并將各類設(shè)備相對應的元數(shù)據(jù)和設(shè)備命令處理程序綁定后,當需要調(diào)用設(shè)備命令時,上層應用向命令執(zhí)行接口發(fā)送命令調(diào)用指令,命令執(zhí)行接口根據(jù)該命令調(diào)用指令確定需調(diào)用的設(shè)備命令的名稱和該設(shè)備命令相對應的執(zhí)行設(shè)備的類型名稱,并根據(jù)該執(zhí)行設(shè)備的類型名稱和該設(shè)備命令的名稱在配置文件中查找該設(shè)備命令相對應的執(zhí)行元數(shù)據(jù),然后根據(jù)該執(zhí)行元數(shù)據(jù)取出與該執(zhí)行元數(shù)據(jù)綁定的綁定設(shè)備命令處理程序,執(zhí)行該綁定設(shè)備命令處理程序,向該執(zhí)行設(shè)備發(fā)送所述設(shè)備命令。當需要調(diào)用設(shè)備命令時,無論需要調(diào)用的設(shè)備命令為和類設(shè)備的設(shè)備命令,上層應用均只需要調(diào)用統(tǒng)一的命令執(zhí)行接口,向該命令執(zhí)行接口發(fā)送命令調(diào)用指令,便可實現(xiàn)對所有類型設(shè)備的設(shè)備命令的調(diào)用,當系統(tǒng)中新增設(shè)備時,上層應用也只需要調(diào)用該命令執(zhí)行接口,便可完成對該新增設(shè)備的設(shè)備命令的調(diào)用,無需再針對新增設(shè)備的類型編寫新的設(shè)備命令調(diào)用程序代碼;采用元數(shù)據(jù)思想,當命令執(zhí)行接口接收到上層應用發(fā)送來的命令調(diào)用指令后,將通過命令執(zhí)行接口查詢配置文件中的元數(shù)據(jù),進而查找到與該元數(shù)據(jù)綁定的設(shè)備命令處理程序,運行該設(shè)備命令處理程序來實現(xiàn)設(shè)備命令的調(diào)用,當系統(tǒng)中新增設(shè)備時,只需要編寫該新增設(shè)備對應的設(shè)備命令處理程序,并將該新增設(shè)備對應的元數(shù)據(jù)添加至配置文件中,便可實現(xiàn)對該新增設(shè)備的設(shè)備命令的調(diào)用,無需對原系統(tǒng)程序代碼進行修改。綜上,本發(fā)明實施例提供的設(shè)備命令調(diào)用方法和系統(tǒng),上層應用通過調(diào)用統(tǒng)一的命令執(zhí)行接口來完成對各類設(shè)備的設(shè)備命令的調(diào)用,當系統(tǒng)中新增設(shè)備時,無需再針對新增設(shè)備的類型編寫新的設(shè)備命令調(diào)用程序代碼,采用元數(shù)據(jù)思想,通過元數(shù)據(jù)查找到各設(shè)備命令的設(shè)備命令處理程序,執(zhí)行該設(shè)備命令處理程序完成對設(shè)備命令的調(diào)用,當系統(tǒng)中新增設(shè)備時,無需對原系統(tǒng)程序代碼進行修改,工作量較小,可擴展性較高,系統(tǒng)的可維護性和可靠性也較好。
【附圖說明】
[0038]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0039]圖1為本發(fā)明實施例提供的設(shè)備命令調(diào)用方法的流程圖;
[0040]圖2為本發(fā)明實施例提供的設(shè)備命令調(diào)用方法中根據(jù)類型名稱和設(shè)備命令的名稱在配置文件中查找設(shè)備命令相對應的執(zhí)行元數(shù)據(jù)的方法流程圖;
[0041]圖3為本發(fā)明實施例提供的設(shè)備命令調(diào)用方法中命令執(zhí)行接口返回第一錯誤信息的方法流程圖;
[0042]圖4為本發(fā)明實施例提供的設(shè)備命令調(diào)用方法中命令執(zhí)行接口返回第二錯誤信息