br>【具體實施方式】
[0023]下面通過具體實施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進一步的具體說明。
[0024]實施例:
[0025]—種使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法(參見附圖1、附圖2、附圖3和附圖4),用于手機應(yīng)用對目標硬件進行控制,包括以下步驟:
[0026]步驟一:首先生成一個轉(zhuǎn)換規(guī)則的pattern文件,然后對采用C語言定義的目標硬件的通信協(xié)議進行解析;
[0027]步驟二:使用xml文件對目標硬件的通信協(xié)議中C語言結(jié)構(gòu)體信息;
[0028]步驟三:將xml描述的結(jié)構(gòu)體信息轉(zhuǎn)換成描述信息,通過xml描述信息獲取通信協(xié)議具有結(jié)構(gòu)體成員的數(shù)量,每個結(jié)構(gòu)體所占內(nèi)存的大小,每個結(jié)構(gòu)體的編號和結(jié)構(gòu)體的名稱,同時獲知結(jié)構(gòu)體有多少個成員變量,每個成員變量我們可以描述出它所占內(nèi)容的大小以及結(jié)構(gòu)體中的位置,以及每個機構(gòu)圖的相對起始位置的偏移量、數(shù)據(jù)類型、是否是數(shù)組、數(shù)據(jù)大小、變量名稱和數(shù)組大小是否依賴另一個變量,同時根據(jù)描述信息生成預(yù)先設(shè)定的json的轉(zhuǎn)換規(guī)則;
[0029]步驟四:根據(jù)步驟三設(shè)定json的轉(zhuǎn)換規(guī)則,形成二進制描述文件,將結(jié)構(gòu)體名稱作為key,將結(jié)構(gòu)體的成員變量的集合作為value,每一個具體的結(jié)構(gòu)體成員均屬于該value中的子集,每個結(jié)構(gòu)體成員變量名稱是以key形式存在,每個結(jié)構(gòu)體成員變量值是以value形式存在;
[0030]步驟五:將目標硬件的功能規(guī)則通過Iua腳本進行轉(zhuǎn)換,同時將目標硬件的通信協(xié)議中的位操作內(nèi)容通過Iua腳本進行轉(zhuǎn)換補充,形成json格式的字符串;
[0031]步驟六:通過pattern文件將json格式的字符串轉(zhuǎn)換成C語言的二進制數(shù)據(jù);
[0032]步驟七:目標硬件根據(jù)C語言的二進制數(shù)據(jù)執(zhí)行相應(yīng)功能。
[0033]預(yù)先設(shè)定的json的轉(zhuǎn)換規(guī)則由目標硬件的控制功能決定。
[0034]目標硬件傳輸數(shù)據(jù)至手機應(yīng)用包括以下步驟:目標硬件傳輸?shù)腃語言的二進制數(shù)據(jù)和pattern文件通過Iua腳本處理形成json格式的字符串,手機應(yīng)用接收json格式的字符串。
[0035]對于每個硬件設(shè)備都會有屬于自己的一套C語言通信協(xié)議,而C語言通信協(xié)議是有不同的結(jié)構(gòu)體組成,通過預(yù)定義規(guī)則,我們可以通過xml格式將結(jié)構(gòu)體描述清楚。同時也可以根據(jù)通信協(xié)議生成一套適用于多平臺的json格式規(guī)則。
[0036]另外根據(jù)xml文件,生成轉(zhuǎn)換方法的關(guān)鍵步驟——二進制描述文件。
[0037]二進制文件里面包含了通信協(xié)議的所有信息:共含有多少個結(jié)構(gòu)體,每個結(jié)構(gòu)體所含有的成員變量,每個變量的數(shù)據(jù)類型,是否指針類型,偏移量,所占內(nèi)存空間,變量名稱,是否數(shù)組,數(shù)組大小,數(shù)組大小依賴關(guān)系以及是否是十六進制內(nèi)容。
[0038]硬件定義通信協(xié)議時,往往采用C語言定義,在定義的過程中可以通過本方法將結(jié)構(gòu)體信息生成一個描述文件,再根據(jù)描述文件定義一套標準的json字符串,這樣就可以達到在多平臺中使用本技術(shù)對字符串進行轉(zhuǎn)換,從而達到控制智能硬件的目的。
[0039]以上所述的實施例只是本發(fā)明的一種較佳的方案,并非對本發(fā)明作任何形式上的限制,在不超出權(quán)利要求所記載的技術(shù)方案的前提下還有其它的變體及改型。
【主權(quán)項】
1.一種使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法,用于手機應(yīng)用對目標硬件進行控制,其特征在于:包括以下步驟: 步驟一:首先生成一個轉(zhuǎn)換規(guī)則的pattern文件,然后對采用C語言定義的目標硬件的通信協(xié)議進行解析; 步驟二:使用xml文件對目標硬件的通信協(xié)議中C語言結(jié)構(gòu)體信息; 步驟三:將xml描述的結(jié)構(gòu)體信息轉(zhuǎn)換成描述信息,通過xml描述信息獲取通信協(xié)議具有結(jié)構(gòu)體成員的數(shù)量,每個結(jié)構(gòu)體所占內(nèi)存的大小,每個結(jié)構(gòu)體的編號和結(jié)構(gòu)體的名稱,同時獲知結(jié)構(gòu)體有多少個成員變量,每個成員變量我們可以描述出它所占內(nèi)容的大小以及結(jié)構(gòu)體中的位置,以及每個機構(gòu)圖的相對起始位置的偏移量、數(shù)據(jù)類型、是否是數(shù)組、數(shù)據(jù)大小、變量名稱和數(shù)組大小是否依賴另一個變量,同時根據(jù)描述信息生成預(yù)先設(shè)定的序列化的轉(zhuǎn)換規(guī)則; 步驟四:根據(jù)步驟三設(shè)定序列化的轉(zhuǎn)換規(guī)則,形成二進制描述文件,將結(jié)構(gòu)體名稱作為key,將結(jié)構(gòu)體的成員變量的集合作為value,每一個具體的結(jié)構(gòu)體成員均屬于該value中的子集,每個結(jié)構(gòu)體成員變量名稱是以key形式存在,每個結(jié)構(gòu)體成員變量值是以value形式存在; 步驟五:將目標硬件的功能規(guī)則通過轉(zhuǎn)換腳本進行轉(zhuǎn)換,同時將目標硬件的通信協(xié)議中的位操作內(nèi)容通過轉(zhuǎn)換腳本進行轉(zhuǎn)換補充,形成序列化格式的字符串; 步驟六:通過pattern文件將序列化格式的字符串轉(zhuǎn)換成C語言的二進制數(shù)據(jù); 步驟七:目標硬件根據(jù)C語言的二進制數(shù)據(jù)執(zhí)行相應(yīng)功能。2.根據(jù)權(quán)利要求1所述的使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法,其特征在于:預(yù)先設(shè)定的序列化的轉(zhuǎn)換規(guī)則由目標硬件的控制功能決定。3.根據(jù)權(quán)利要求1所述的使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法,其特征在于:目標硬件傳輸數(shù)據(jù)至手機應(yīng)用包括以下步驟:目標硬件傳輸?shù)腃語言的二進制數(shù)據(jù)和pattern文件通過轉(zhuǎn)換腳本處理形成序列化格式的字符串,手機應(yīng)用接收序列化格式的字符串。4.根據(jù)權(quán)利要求1或2或3所述的使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法,其特征在于:序列化格式的字符串為json、xml、protocol buffer、AData或MGen格式的字符串.5.根據(jù)權(quán)利要求1或2或3所述的使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法,其特征在于:轉(zhuǎn)換腳本為js、python、Iua或ruby腳本。
【專利摘要】本發(fā)明涉及使用相同規(guī)則實現(xiàn)對不同產(chǎn)品的控制的方法。解決了現(xiàn)有技術(shù)的不足,技術(shù)方案為:步驟一:首先生成一個轉(zhuǎn)換規(guī)則的pattern文件,然后對采用C語言定義的目標硬件的通信協(xié)議進行解析;步驟二:使用xml文件對目標硬件的通信協(xié)議中C語言結(jié)構(gòu)體信息;步驟三:將xml描述的結(jié)構(gòu)體信息轉(zhuǎn)換成描述信息,步驟四:根據(jù)步驟三設(shè)定json的轉(zhuǎn)換規(guī)則,形成二進制描述文件,步驟五:將目標硬件的功能規(guī)則通過lua腳本進行轉(zhuǎn)換,同時將目標硬件的通信協(xié)議中的位操作內(nèi)容通過lua腳本進行轉(zhuǎn)換補充,形成json格式的字符串;步驟六:通過pattern文件將json格式的字符串轉(zhuǎn)換成C語言的二進制數(shù)據(jù);步驟七:目標硬件根據(jù)C語言的二進制數(shù)據(jù)執(zhí)行相應(yīng)功能。
【IPC分類】G06F9/45
【公開號】CN105068854
【申請?zhí)枴緾N201510483632
【發(fā)明人】姚博
【申請人】杭州古北電子科技有限公司
【公開日】2015年11月18日
【申請日】2015年8月7日