專利名稱:一種跨平臺(tái)函數(shù)調(diào)用系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可實(shí)現(xiàn)不同運(yùn)行平臺(tái)之間通訊的系統(tǒng),特別是一種跨平臺(tái)函數(shù)調(diào)用系統(tǒng)。
背景技術(shù):
公知的,一個(gè)運(yùn)行平臺(tái)上可以處理若干任務(wù),其處理任務(wù)的過程是通過執(zhí)行任務(wù)函數(shù)來完成的,其任務(wù)函數(shù)的調(diào)用則是通過該運(yùn)行平臺(tái)的控制系統(tǒng)來實(shí)現(xiàn)。然而,如果想要實(shí)現(xiàn)不同的運(yùn)行平臺(tái)之間的函數(shù)調(diào)用,達(dá)到多功能通訊的目的,由于各個(gè)函數(shù)調(diào)用的情況不同,如函數(shù)名不同、函數(shù)調(diào)用時(shí)是否需要參數(shù)、函數(shù)調(diào)用后是否返回結(jié)果等等,因此,發(fā)送平臺(tái)必須將這些信息全部發(fā)送到接收平臺(tái),才能在接收平臺(tái)上正確的實(shí)現(xiàn)函數(shù)調(diào)用,這樣就造成運(yùn)行平臺(tái)之間通訊的數(shù)據(jù)傳輸量大。并且,目前不同運(yùn)行平臺(tái)之間通訊的方法中,一般都是對(duì)于不同的任務(wù)或函數(shù),采用不同的通訊接口,因此隨著不同任務(wù)增多,通訊接口也必將隨著增加,增加了系統(tǒng)的負(fù)荷。由于上述原因的限制,目前的跨平臺(tái)通訊進(jìn)行函數(shù)調(diào)用的過程,一般都僅僅限于幾個(gè)常用任務(wù)函數(shù)的調(diào)用,跨平臺(tái)可實(shí)現(xiàn)的功能單一,不利于技術(shù)的發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足,提供一種采用統(tǒng)一接口函數(shù)即可實(shí)現(xiàn)一平臺(tái)對(duì)另一平臺(tái)上多種任務(wù)函數(shù)調(diào)用的跨平臺(tái)函數(shù)調(diào)用系統(tǒng)。
為了解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案是一種跨平臺(tái)函數(shù)調(diào)用系統(tǒng),包括發(fā)送平臺(tái)和接收平臺(tái),所述接收平臺(tái)內(nèi)存儲(chǔ)有若干用于執(zhí)行不同任務(wù)的任務(wù)函數(shù),所述接收平臺(tái)內(nèi)設(shè)置有消息號(hào)映射表,其中存儲(chǔ)各個(gè)消息號(hào)分別與任務(wù)函數(shù)的一一對(duì)應(yīng)關(guān)系,所述發(fā)送平臺(tái)將跨平臺(tái)的任務(wù)函數(shù)調(diào)用封裝成一至少帶有消息號(hào)的接口函數(shù),并發(fā)送該接口函數(shù)至所述接收平臺(tái),接收平臺(tái)執(zhí)行接口函數(shù),從而根據(jù)消息號(hào)自消息號(hào)映射表內(nèi)查找出對(duì)應(yīng)的任務(wù)函數(shù),以執(zhí)行。
所述發(fā)送平臺(tái)可以包括平臺(tái)運(yùn)行主控單元、存儲(chǔ)單元以及發(fā)送平臺(tái)消息處理單元,其中,所述平臺(tái)運(yùn)行主控單元用于發(fā)送平臺(tái)的整體控制,并獲得跨平臺(tái)的任務(wù)函數(shù)調(diào)用的消息號(hào)和其它任務(wù)函數(shù)調(diào)用信息;所述發(fā)送平臺(tái)消息處理單元根據(jù)來自平臺(tái)主控單元的消息號(hào)和其它任務(wù)函數(shù)調(diào)用信息,進(jìn)行接口函數(shù)的封裝,并發(fā)送封裝后的接口函數(shù);所述存儲(chǔ)單元用于存儲(chǔ)跨平臺(tái)的任務(wù)函數(shù)調(diào)用的發(fā)送數(shù)據(jù)和/或接收數(shù)據(jù)。
所述接收平臺(tái)還可以包括平臺(tái)運(yùn)行主控單元、存儲(chǔ)單元以及接收平臺(tái)消息處理單元,其中所述平臺(tái)運(yùn)行主控單元用于對(duì)接收平臺(tái)的整體控制,并且實(shí)現(xiàn)任務(wù)函數(shù)的執(zhí)行;所述接收平臺(tái)消息處理單元用于與所述發(fā)送平臺(tái)通訊,從而接收并執(zhí)行來自發(fā)送平臺(tái)的接口函數(shù),實(shí)現(xiàn)任務(wù)函數(shù)的調(diào)用,并將接口函數(shù)執(zhí)行結(jié)果和/或任務(wù)函數(shù)執(zhí)行結(jié)果返回所述發(fā)送平臺(tái);所述存儲(chǔ)單元用于存儲(chǔ)所述消息號(hào)映射表,和/或來自發(fā)送平臺(tái)的參數(shù)實(shí)體,和/或所述任務(wù)函數(shù)執(zhí)行結(jié)果。
所述發(fā)送平臺(tái)消息處理單元封裝后的接口函數(shù)可以僅帶有消息號(hào);所述接收平臺(tái)消息處理單元接收的接口函數(shù)僅帶消息號(hào),則接收平臺(tái)消息處理單元在執(zhí)行該接口函數(shù)時(shí),根據(jù)消息號(hào),自所述存儲(chǔ)單元的消息號(hào)映射表中查找獲得對(duì)應(yīng)的任務(wù)函數(shù),并使接收平臺(tái)的平臺(tái)運(yùn)行主控單元執(zhí)行該任務(wù)函數(shù),最后接收平臺(tái)消息處理單元結(jié)束接口函數(shù)的執(zhí)行,并返回接口函數(shù)執(zhí)行結(jié)果至所述發(fā)送平臺(tái)。
所述其它任務(wù)函數(shù)調(diào)用信息指示任務(wù)函數(shù)調(diào)用帶參數(shù)時(shí),所述發(fā)送平臺(tái)可以在所述存儲(chǔ)單元內(nèi)開辟一內(nèi)存空間,用于存儲(chǔ)作為發(fā)送數(shù)據(jù)的任務(wù)函數(shù)調(diào)用的參數(shù)實(shí)體,和/或預(yù)留作為接收數(shù)據(jù)的存儲(chǔ)空間。
所述發(fā)送平臺(tái)消息處理單元可以根據(jù)所述其它任務(wù)函數(shù)調(diào)用信息,產(chǎn)生任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息,并與消息號(hào)一起封裝到接口函數(shù)中。
所述任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息可以包括參數(shù)所占存儲(chǔ)空間大小值、發(fā)送平臺(tái)是否需要發(fā)送參數(shù)實(shí)體、發(fā)送平臺(tái)是否需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指定內(nèi)存空間,并且,所述發(fā)送平臺(tái)消息處理單元當(dāng)發(fā)送平臺(tái)需要發(fā)送參數(shù)實(shí)體時(shí),自存儲(chǔ)單元的內(nèi)存空間中讀出相應(yīng)的參數(shù)實(shí)體,并發(fā)送;當(dāng)發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指定內(nèi)存空間中時(shí),等待接收來自接收平臺(tái)的任務(wù)函數(shù)執(zhí)行結(jié)果,并存儲(chǔ)在相應(yīng)的內(nèi)存空間中;所述接收平臺(tái)消息處理單元在執(zhí)行接收到的接口函數(shù)時(shí),將根據(jù)所述參數(shù)所占空間大小值在接收平臺(tái)的存儲(chǔ)單元內(nèi)開辟一內(nèi)存空間;并根據(jù)發(fā)送平臺(tái)需要發(fā)送參數(shù)實(shí)體的信息,接收來自發(fā)送平臺(tái)消息處理單元發(fā)送的參數(shù)實(shí)體,存入所開辟的內(nèi)存空間中;當(dāng)任務(wù)函數(shù)執(zhí)行完成后,還根據(jù)發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指定內(nèi)存空間的信息,將任務(wù)函數(shù)執(zhí)行結(jié)果發(fā)送給所述發(fā)送平臺(tái)消息處理單元。
所述函數(shù)調(diào)用帶有的參數(shù)中含有指針參數(shù)時(shí),所述任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息還可以包括指針參數(shù)的位置信息、指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值、發(fā)送平臺(tái)是否需要發(fā)送指針參數(shù)所指向的參數(shù)實(shí)體,以及發(fā)送平臺(tái)是否需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間,并且,所述發(fā)送平臺(tái)消息處理單元在發(fā)送平臺(tái)需要發(fā)送指針參數(shù)所指向的參數(shù)實(shí)體時(shí),自存儲(chǔ)單元的內(nèi)存空間中讀取指針參數(shù),并根據(jù)指針參數(shù)所指向的地址,讀取其指向的參數(shù)實(shí)體,并發(fā)送;當(dāng)發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間時(shí),發(fā)送平臺(tái)消息處理單元等待接收來自接收平臺(tái)消息處理單元的指針參數(shù)以及任務(wù)函數(shù)執(zhí)行結(jié)果,從而將該任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)到該指針參數(shù)指向的內(nèi)存空間中;所述接收平臺(tái)消息處理單元在執(zhí)行接口函數(shù)時(shí),將根據(jù)所述指針參數(shù)的位置信息,獲得指針參數(shù)值,并在發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間時(shí),存儲(chǔ)該指針參數(shù)值;還根據(jù)所述指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值,在其存儲(chǔ)單元中相應(yīng)開辟一子內(nèi)存空間,并修改接收到的指針參數(shù)值,使其指向所開辟的內(nèi)存空間;再根據(jù)發(fā)送平臺(tái)需要發(fā)送指針參數(shù)所指向的參數(shù)實(shí)體,接收來自發(fā)送平臺(tái)消息處理單元的指針參數(shù)指向的參數(shù)實(shí)體,并存儲(chǔ)到所述內(nèi)存空間中;還根據(jù)所述發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間,將所存儲(chǔ)的指針參數(shù)值以及任務(wù)函數(shù)執(zhí)行結(jié)果發(fā)送到所述發(fā)送平臺(tái)消息處理單元。
所述接收平臺(tái)消息處理單元還可以用于在接口函數(shù)執(zhí)行完成后,發(fā)送接口函數(shù)執(zhí)行結(jié)果至所述發(fā)送平臺(tái)消息處理單元。
所述接口函數(shù)執(zhí)行結(jié)果可以包括接口函數(shù)執(zhí)行成功和錯(cuò)誤號(hào)。
本發(fā)明相對(duì)現(xiàn)有技術(shù)的優(yōu)點(diǎn)是本發(fā)明由于將不同運(yùn)行平臺(tái)上的函數(shù)調(diào)用統(tǒng)一封裝成一個(gè)接口函數(shù),從而減少了通訊接口,尤其是對(duì)于發(fā)送平臺(tái)而言接口單一,接口函數(shù)封裝方式固定。并且,本發(fā)明還通過使運(yùn)行平臺(tái)上的不同任務(wù)函數(shù)與消息號(hào)一一對(duì)應(yīng),有利于系統(tǒng)擴(kuò)展,增加應(yīng)用的靈活性。
附圖1為本發(fā)明的系統(tǒng)結(jié)構(gòu)原理方框圖;附圖2為本發(fā)明進(jìn)行跨平臺(tái)函數(shù)調(diào)用的總體流程圖;附圖3為本發(fā)明中發(fā)送平臺(tái)的工作流程圖;附圖4為本發(fā)明中接收平臺(tái)的工作流程圖;附圖5為實(shí)例2的內(nèi)存空間存儲(chǔ)示意圖。
具體實(shí)施例方式
下面將結(jié)合說明書附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
參考附圖1,本實(shí)施例所提供的一種跨平臺(tái)函數(shù)調(diào)用系統(tǒng),包括發(fā)送平臺(tái)和接收平臺(tái),所述接收平臺(tái)內(nèi)存儲(chǔ)有若干用于執(zhí)行不同任務(wù)的任務(wù)函數(shù),所述接收平臺(tái)內(nèi)還設(shè)置有消息號(hào)映射表,其中存儲(chǔ)各個(gè)消息號(hào)分別與任務(wù)函數(shù)的一一對(duì)應(yīng)關(guān)系,所述發(fā)送平臺(tái)將跨平臺(tái)的任務(wù)函數(shù)調(diào)用封裝成一至少帶有消息號(hào)的接口函數(shù),并發(fā)送該接口函數(shù)至所述接收平臺(tái),接收平臺(tái)執(zhí)行接口函數(shù),從而根據(jù)消息號(hào)自消息號(hào)映射表內(nèi)查找出對(duì)應(yīng)的任務(wù)函數(shù),以執(zhí)行。
所述發(fā)送平臺(tái)包括平臺(tái)運(yùn)行主控單元、存儲(chǔ)單元以及發(fā)送平臺(tái)消息處理單元,其中,所述平臺(tái)運(yùn)行主控單元用于發(fā)送平臺(tái)的整體控制,并獲得跨平臺(tái)的任務(wù)函數(shù)調(diào)用的消息號(hào)和其它任務(wù)函數(shù)調(diào)用信息;所述發(fā)送平臺(tái)消息處理單元根據(jù)來自平臺(tái)主控單元的消息號(hào)和其它任務(wù)函數(shù)調(diào)用信息,進(jìn)行接口函數(shù)的封裝,并發(fā)送封裝后的接口函數(shù);所述存儲(chǔ)單元用于存儲(chǔ)跨平臺(tái)的任務(wù)函數(shù)調(diào)用的發(fā)送數(shù)據(jù)和/或接收數(shù)據(jù)。
所述接收平臺(tái)還包括平臺(tái)運(yùn)行主控單元、存儲(chǔ)單元以及接收平臺(tái)消息處理單元,其中所述平臺(tái)運(yùn)行主控單元用于對(duì)接收平臺(tái)的整體控制,并且實(shí)現(xiàn)任務(wù)函數(shù)的執(zhí)行;當(dāng)然,任務(wù)函數(shù)的執(zhí)行也可以由接收平臺(tái)消息處理單元執(zhí)行。
所述接收平臺(tái)消息處理單元用于與所述發(fā)送平臺(tái)通訊,從而接收并執(zhí)行來自發(fā)送平臺(tái)的接口函數(shù),實(shí)現(xiàn)任務(wù)函數(shù)的調(diào)用,并將接口函數(shù)執(zhí)行結(jié)果和/或任務(wù)函數(shù)執(zhí)行結(jié)果返回所述發(fā)送平臺(tái);所述存儲(chǔ)單元用于存儲(chǔ)所述消息號(hào)映射表,和/或來自發(fā)送平臺(tái)的參數(shù)實(shí)體,和/或所述任務(wù)函數(shù)執(zhí)行結(jié)果。該存儲(chǔ)單元亦可設(shè)置于所述接收平臺(tái)消息處理單元內(nèi)。
所述發(fā)送平臺(tái)消息處理單元與接收平臺(tái)消息處理單元之間可以進(jìn)行有線或無(wú)線方式的通訊。
下面將根據(jù)本發(fā)明系統(tǒng)的工作流程,詳細(xì)描述本發(fā)明系統(tǒng)的結(jié)構(gòu)、信號(hào)流向以及工作原理。
參考附圖2,本發(fā)明的跨平臺(tái)函數(shù)調(diào)用系統(tǒng)的工作流程主要包括如下步驟(1)將接收平臺(tái)上的各個(gè)任務(wù)函數(shù)各分配一個(gè)消息號(hào),使它們一一對(duì)應(yīng);(2)在發(fā)送平臺(tái)上將需要在接收平臺(tái)上執(zhí)行的任務(wù)函數(shù)調(diào)用封裝成至少包括帶消息號(hào)的接口函數(shù);(3)發(fā)送平臺(tái)發(fā)送所述接口函數(shù)至接收平臺(tái);(4)接收平臺(tái)執(zhí)行接收到的接口函數(shù),實(shí)現(xiàn)對(duì)接收平臺(tái)上的任務(wù)函數(shù)調(diào)用過程;
(5)接收平臺(tái)在接口函數(shù)執(zhí)行完成后,返回接口函數(shù)執(zhí)行結(jié)果至所述發(fā)送平臺(tái)。
上述的接收平臺(tái)內(nèi)具有若干用于執(zhí)行不同任務(wù)的任務(wù)函數(shù),并且,一個(gè)任務(wù)可以具有多個(gè)任務(wù)函數(shù)。
上述的發(fā)送平臺(tái)和接收平臺(tái)可以為不同系統(tǒng)的不同平臺(tái),也可以擴(kuò)展為同一個(gè)系統(tǒng)的不同平臺(tái),甚至可以擴(kuò)展到同一個(gè)平臺(tái)下的不同部分。
上述的發(fā)送平臺(tái)和接收平臺(tái)在實(shí)際運(yùn)行時(shí),可以互相轉(zhuǎn)換功能,即發(fā)送平臺(tái)成為接收平臺(tái),接收平臺(tái)成為發(fā)送平臺(tái)。
上述的消息號(hào)可以采用數(shù)字表示。
在本發(fā)明的一個(gè)實(shí)施例中,所述的接口函數(shù)可以采用sendcommand(消息號(hào),函數(shù)調(diào)用的相關(guān)參數(shù)信息)。其中sendcommand為函數(shù)名。
為了更清楚的描述本實(shí)施例的具體方法,下面將分成發(fā)送平臺(tái)的工作流程和接收平臺(tái)的工作流程來描述。
參考圖3,發(fā)送平臺(tái)的工作流程具體為步驟001,發(fā)送平臺(tái)的平臺(tái)運(yùn)行主控單元首先根據(jù)需調(diào)用的任務(wù)函數(shù)設(shè)置消息號(hào)。
具體實(shí)施時(shí),可以采用msg表示消息號(hào)。
步驟002,平臺(tái)運(yùn)行主控單元設(shè)置函數(shù)調(diào)用的相關(guān)信息,從而判斷函數(shù)調(diào)用是否具有相關(guān)參數(shù)。
所述函數(shù)調(diào)用所具有的參數(shù)包括任務(wù)函數(shù)執(zhí)行所需要的參數(shù)值;任務(wù)函數(shù)執(zhí)行結(jié)果的存儲(chǔ)位置。
判斷結(jié)果如果是,則執(zhí)行步驟003;否則跳轉(zhuǎn)至步驟016。
步驟003,平臺(tái)運(yùn)行主控單元在發(fā)送平臺(tái)的存儲(chǔ)單元上開辟一內(nèi)存空間。
具體實(shí)施時(shí),平臺(tái)運(yùn)行主控單元的軟件中可以采用一指針參數(shù)*param來指向該內(nèi)存空間。
對(duì)于本領(lǐng)域內(nèi)的技術(shù)人員,很顯然的知道具體實(shí)施時(shí),也可以不將所有參數(shù)存儲(chǔ)在一個(gè)內(nèi)存空間內(nèi),而只需要發(fā)送平臺(tái)能夠獲知各個(gè)參數(shù)的存儲(chǔ)地址,并從該地址內(nèi)順利讀取參數(shù)值即可。
步驟004,發(fā)送平臺(tái)消息處理單元根據(jù)平臺(tái)運(yùn)行主控單元設(shè)置的函數(shù)調(diào)用的相關(guān)信息,獲取參數(shù)所占存儲(chǔ)空間大小值以及參數(shù)性質(zhì)。
獲取參數(shù)所占存儲(chǔ)空間大小值的目的是,通知接收平臺(tái)開辟相應(yīng)大小的內(nèi)存空間,以存儲(chǔ)參數(shù)實(shí)體或任務(wù)函數(shù)執(zhí)行結(jié)果。
具體實(shí)施時(shí),發(fā)送平臺(tái)消息處理單元內(nèi)的軟件可以采用paramsize表示指針參數(shù)*param指向的內(nèi)存空間的大小值。這樣,接口函數(shù)可表示為sendcommand(msg,*param,paramsize)。
本實(shí)施例中,以參數(shù)性質(zhì)來表示發(fā)送平臺(tái)是否需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),以及發(fā)送平臺(tái)是否需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果。如設(shè)置參數(shù)性質(zhì)為IN類型,則表示發(fā)送平臺(tái)不需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),但需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;設(shè)置參數(shù)性質(zhì)為OUT類型,則表示發(fā)送平臺(tái)需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),但不需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;設(shè)置參數(shù)性質(zhì)為INOUT類型,則表示發(fā)送平臺(tái)需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),并且需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果。
具體實(shí)施時(shí),以paramtype表示參數(shù)性質(zhì),則有paramtype=IN;paramtype=OUT;paramtype=INOUT。
步驟005,發(fā)送平臺(tái)消息處理單元判斷所述內(nèi)存空間中的參數(shù)是否帶有指針,即是否存在指針參數(shù),如果是則執(zhí)行步驟006,否則跳轉(zhuǎn)至步驟007。
步驟006,發(fā)送平臺(tái)消息處理單元獲取指針參數(shù)的位置信息、指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值,以及指針參數(shù)的參數(shù)性質(zhì)。完成后跳轉(zhuǎn)步驟008。
所述的指針參數(shù)的位置信息是指該指針參數(shù)在內(nèi)存空間中存儲(chǔ)的地址。當(dāng)內(nèi)存空間采用指針*param指向時(shí),該位置信息即為指針參數(shù)存儲(chǔ)地址距離其父指針*param的偏移量。本實(shí)施例中以ptrparamoffset表示所述指針參數(shù)的偏移量。
所述指針參數(shù)的參數(shù)性質(zhì)用于表示發(fā)送平臺(tái)是否需要發(fā)送該指針參數(shù)指向的參數(shù)實(shí)體,以及發(fā)送平臺(tái)是否需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。
具體實(shí)施時(shí),其設(shè)置的方法可以與前述的參數(shù)性質(zhì)的設(shè)置方法相同。本實(shí)施例中還以ptrparamtype表示指針參數(shù)的參數(shù)性質(zhì),以prtparamsize表示所述指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值。
另外,指針參數(shù)所指向的參數(shù)實(shí)體中還可以包含有指針,因此,各個(gè)參數(shù)以增加后綴“n”的形式表示各個(gè)指針參數(shù)的相關(guān)信息。
步驟007,發(fā)送平臺(tái)消息處理單元將參數(shù)所占存儲(chǔ)空間大小值以及參數(shù)性質(zhì)作為任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息,與消息號(hào)一起封裝到接口函數(shù)。完成后跳轉(zhuǎn)到步驟009。
具體實(shí)施時(shí),封裝后的接口函數(shù)表示為sendcommand(msg,paramtype,paramsize,0)。
其中為與參數(shù)帶指針時(shí)的接口函數(shù)表述形式一致,以0表示參數(shù)的偏移量。
步驟008,發(fā)送平臺(tái)消息處理單元將參數(shù)所占存儲(chǔ)空間大小值、參數(shù)性質(zhì)、指針參數(shù)的位置信息、指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值,以及指針參數(shù)的參數(shù)性質(zhì)作為任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息,與消息號(hào)一起封裝到所述接口函數(shù)。
本實(shí)施例中,封裝后的接口函數(shù)表示為sendcommand(msg,paramtype,paramsize,0,ptrparamtype_1,ptrparamsize_1,ptrparamoffset_1,……ptrparamtype_n,ptrparamsize_n,ptrparamoffset_n)步驟009,發(fā)送平臺(tái)消息處理單元發(fā)送步驟007或步驟008封裝好的接口函數(shù)至接收平臺(tái)消息處理單元。
步驟010,發(fā)送平臺(tái)消息處理單元判斷函數(shù)調(diào)用的相關(guān)信息中,參數(shù)性質(zhì)或指針參數(shù)的參數(shù)性質(zhì)是否為IN類型,即是否發(fā)送平臺(tái)不需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),但需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;或者是否發(fā)送平臺(tái)不需要發(fā)送指針參數(shù)指向的參數(shù)實(shí)體,但需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。如果是,則執(zhí)行步驟013,否則執(zhí)行步驟011。
步驟011,發(fā)送平臺(tái)消息處理單元判斷函數(shù)調(diào)用的相關(guān)信息中,參數(shù)性質(zhì)和/或指針參數(shù)的參數(shù)性質(zhì)是否為OUT類型,即是否發(fā)送平臺(tái)需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),但不需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;和/或是否發(fā)送平臺(tái)需要發(fā)送指針參數(shù)指向的參數(shù)實(shí)體,但不需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。如果是,則執(zhí)行步驟015,否則執(zhí)行步驟012。
步驟012,函數(shù)調(diào)用的相關(guān)信息中,參數(shù)性質(zhì)和/或指針參數(shù)的參數(shù)性質(zhì)為INOUT類型,即發(fā)送平臺(tái)需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),且需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;和/或發(fā)送平臺(tái)需要發(fā)送指針參數(shù)指向的參數(shù)實(shí)體,且需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。因此發(fā)送內(nèi)存空間中的參數(shù),和/或指針參數(shù)對(duì)應(yīng)的參數(shù)實(shí)體至接收平臺(tái)。再跳轉(zhuǎn)至步驟014。
步驟013,發(fā)送平臺(tái)等待接收任務(wù)函數(shù)執(zhí)行結(jié)果,并將該結(jié)果存儲(chǔ)于指定存儲(chǔ)空間。完成后跳轉(zhuǎn)至步驟018。
如參數(shù)性質(zhì)為IN類型,則將結(jié)果存儲(chǔ)于發(fā)送平臺(tái)上存儲(chǔ)參數(shù)的內(nèi)存空間中。如指針參數(shù)的參數(shù)性質(zhì)為IN類型,則將該結(jié)果存儲(chǔ)于發(fā)送平臺(tái)上指針參數(shù)對(duì)應(yīng)的存儲(chǔ)空間內(nèi)。
本實(shí)施例中,當(dāng)參數(shù)中帶有指針時(shí),如果paramtype為IN類型,則設(shè)置ptrparamtype也為IN類型。
步驟014,發(fā)送平臺(tái)消息處理單元等待接收任務(wù)函數(shù)執(zhí)行結(jié)果,并將該結(jié)果存儲(chǔ)于指定存儲(chǔ)空間。完成后跳轉(zhuǎn)至步驟018。
當(dāng)參數(shù)性質(zhì)為INOUT類型,且指針參數(shù)的參數(shù)性質(zhì)為OUT類型時(shí),所述指定的存儲(chǔ)空間為參數(shù)所在的內(nèi)存空間。
當(dāng)參數(shù)性質(zhì)為INOUT類型,且指針參數(shù)中存在一個(gè)或多個(gè)指針參數(shù)的參數(shù)性質(zhì)為IN類型時(shí),所述指定的存儲(chǔ)空間為IN類型的指針參數(shù)所指向的存儲(chǔ)空間。
步驟015,發(fā)送平臺(tái)消息處理單元發(fā)送內(nèi)存空間中的參數(shù),和/或指針參數(shù)對(duì)應(yīng)的參數(shù)實(shí)體至接收平臺(tái)。完成后跳轉(zhuǎn)至步驟018。
本實(shí)施例中,當(dāng)參數(shù)性質(zhì)中帶有指針時(shí),如果參數(shù)性質(zhì)為OUT類型,則設(shè)置指針參數(shù)的參數(shù)性質(zhì)也為OUT類型。
步驟016,發(fā)送平臺(tái)消息處理單元將消息號(hào)封裝到接口函數(shù)。
本實(shí)施例中,封裝后的接口函數(shù)表示為sendcommand msg。
步驟017,發(fā)送平臺(tái)消息處理單元發(fā)送接口函數(shù)至接收平臺(tái)。
步驟018,發(fā)送平臺(tái)消息處理單元等待接收接口函數(shù)的執(zhí)行結(jié)果。
上述步驟中,所述的接口函數(shù)的執(zhí)行結(jié)果包括接口函數(shù)執(zhí)行成功、錯(cuò)誤號(hào)。所述錯(cuò)誤號(hào)是指接口函數(shù)執(zhí)行失敗后,其導(dǎo)致失敗的錯(cuò)誤原因,如未能查找到相應(yīng)的任務(wù)函數(shù)等等。所述的任務(wù)函數(shù)的執(zhí)行結(jié)果為任務(wù)函數(shù)執(zhí)行后的函數(shù)值等。
本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)當(dāng)?shù)弥?,上述發(fā)送平臺(tái)的各個(gè)步驟的順序可以作出相應(yīng)調(diào)整,如可判斷完參數(shù)性質(zhì)或指針參數(shù)性質(zhì)以后,再發(fā)送接口函數(shù);或可先發(fā)送需要發(fā)送的參數(shù)實(shí)體,再發(fā)送接口函數(shù)。因此,上述的步驟僅為本發(fā)明的一個(gè)較佳實(shí)施方案。
參考附圖4,接收平臺(tái)的工作流程具體為步驟101,接收平臺(tái)消息處理單元接收來自發(fā)送平臺(tái)消息處理單元的接口函數(shù)。
步驟102,接收平臺(tái)消息處理單元執(zhí)行接口函數(shù)。
步驟103,接收平臺(tái)消息處理單元自接口函數(shù)中獲得消息號(hào)。
步驟104,查詢接口函數(shù)中是否封裝有任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息?有則跳轉(zhuǎn)至步驟108,否則執(zhí)行步驟105。
步驟105,根據(jù)消息號(hào)在所述消息號(hào)映射表中查找接收平臺(tái)上對(duì)應(yīng)的任務(wù)函數(shù)。
步驟106,是否查找到相應(yīng)的任務(wù)函數(shù)?是則執(zhí)行步驟106,否則跳轉(zhuǎn)至步驟****。
步驟107,接收平臺(tái)消息處理單元通知接收平臺(tái)執(zhí)行該任務(wù)函數(shù),后跳轉(zhuǎn)至步驟127。
步驟108,接收平臺(tái)消息處理單元獲得參數(shù)所占空間大小值paramsize,并根據(jù)該值在接收平臺(tái)的存儲(chǔ)單元中開辟一內(nèi)存空間。
步驟109,接收平臺(tái)消息處理單元查詢接口函數(shù)中是否封裝有指針參數(shù)指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值ptrparamsize,有則獲得該值,并執(zhí)行步驟110,否則跳轉(zhuǎn)步驟111。
所述的ptrparamsize包括指針參數(shù)中還含有指針的情況。
步驟110,接收平臺(tái)消息處理單元根據(jù)ptrparamsize值在接收平臺(tái)的存儲(chǔ)單元內(nèi)對(duì)應(yīng)開辟子內(nèi)存空間。
如果指針參數(shù)中還含有指針,則相應(yīng)開辟多個(gè)子內(nèi)存空間。
步驟111,接收平臺(tái)消息處理單元判斷接口函數(shù)中封裝的參數(shù)性質(zhì)paramtype,或指針參數(shù)的參數(shù)性質(zhì)ptrparamtype是否為IN類型,即是否發(fā)送平臺(tái)不需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),但需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;或者是否發(fā)送平臺(tái)不需要發(fā)送指針參數(shù)指向的參數(shù)實(shí)體,但需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。如果是,則執(zhí)行步驟112,否則跳轉(zhuǎn)至步驟117。
步驟112,接收平臺(tái)消息處理單元根據(jù)消息號(hào)查找對(duì)應(yīng)的任務(wù)函數(shù)。
步驟113,是否查找到相應(yīng)的任務(wù)函數(shù)?是則執(zhí)行步驟114,否則跳轉(zhuǎn)至步驟****。
步驟114,接收平臺(tái)消息處理單元通知接收平臺(tái)的平臺(tái)運(yùn)行主控單元執(zhí)行任務(wù)函數(shù)。
步驟115,將任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于相應(yīng)的內(nèi)存空間或子內(nèi)存空間內(nèi)。
步驟116,發(fā)送任務(wù)函數(shù)執(zhí)行結(jié)果至發(fā)送平臺(tái)消息處理單元,以使其可以將該結(jié)果存儲(chǔ)于指定的內(nèi)存空間或子內(nèi)存空間內(nèi)。完成后跳轉(zhuǎn)至步驟127。
步驟117,接收平臺(tái)消息處理單元判斷接口函數(shù)中封裝的參數(shù)性質(zhì)paramtype,或指針參數(shù)的參數(shù)性質(zhì)ptrparamtype是否為OUT類型,即是否發(fā)送平臺(tái)需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),但不需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;或者是否發(fā)送平臺(tái)需要發(fā)送指針參數(shù)指向的參數(shù)實(shí)體,但不需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。如果是,則執(zhí)行步驟118,否則跳轉(zhuǎn)至步驟122。
步驟118,接收平臺(tái)消息處理單元接收來自發(fā)送平臺(tái)消息處理單元的參數(shù),并存儲(chǔ)于存儲(chǔ)單元的內(nèi)存空間中;或接收來自發(fā)送平臺(tái)消息處理單元的指針參數(shù)所指向的參數(shù)實(shí)體,并存儲(chǔ)于相應(yīng)的子內(nèi)存空間中。
本實(shí)施例中,該步驟具體實(shí)施為當(dāng)參數(shù)中不含指針參數(shù)時(shí),接收平臺(tái)消息處理單元接收來自發(fā)送平臺(tái)的參數(shù),并存儲(chǔ)于根據(jù)paramsize開辟的內(nèi)存空間中。
當(dāng)參數(shù)中還含有指針參數(shù)時(shí)首先接收平臺(tái)消息處理單元接收來自發(fā)送平臺(tái)的參數(shù),并存儲(chǔ)于根據(jù)paramsize開辟的內(nèi)存空間中;其次,根據(jù)指針參數(shù)的位置信息,本實(shí)施例中的ptrparamoffset的值,在內(nèi)存空間中查找到相應(yīng)的指針參數(shù),并修改該指針參數(shù)的值,使其指向接收平臺(tái)根據(jù)ptrparamsize對(duì)應(yīng)開辟的子內(nèi)存空間;最后,接收來自發(fā)送平臺(tái)的指針參數(shù)所指向的參數(shù)實(shí)體,并存儲(chǔ)于相應(yīng)的子內(nèi)存空間中。
當(dāng)指針參數(shù)所指向的參數(shù)實(shí)體中還帶有指針時(shí),重復(fù)前述操作中的后兩步,直至所有的指針均正確的指向其對(duì)應(yīng)的子內(nèi)存空間,從而完成接收平臺(tái)上地址空間的轉(zhuǎn)換,并正確存儲(chǔ)各個(gè)指針?biāo)赶虻膮?shù)實(shí)體。
步驟119,根據(jù)消息號(hào)查找對(duì)應(yīng)的任務(wù)函數(shù)。
步驟120,是否查找到相應(yīng)的任務(wù)函數(shù)?是則執(zhí)行步驟121,否則跳轉(zhuǎn)至步驟127。
步驟121,將步驟118中獲得的參數(shù),和/或參數(shù)實(shí)體用于執(zhí)行任務(wù)函數(shù)。完成后,跳轉(zhuǎn)至步驟127。
步驟122,當(dāng)paramtype和/或ptrparamtype為INOUT類型時(shí),即發(fā)送平臺(tái)需要發(fā)送任務(wù)函數(shù)執(zhí)行的參數(shù),且需要接收任務(wù)函數(shù)執(zhí)行的結(jié)果;和/或發(fā)送平臺(tái)需要發(fā)送指針參數(shù)指向的參數(shù)實(shí)體,且需要將接收到的任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于該指針參數(shù)指向的存儲(chǔ)空間。因此接收來自發(fā)送平臺(tái)的參數(shù),并存儲(chǔ)在內(nèi)存空間中;或接收來自發(fā)送平臺(tái)的指針指向的參數(shù)實(shí)體,并對(duì)應(yīng)存儲(chǔ)于子內(nèi)存空間中。
步驟123,根據(jù)消息號(hào)查找對(duì)應(yīng)的任務(wù)函數(shù)。
步驟124,是否查找到相應(yīng)的任務(wù)函數(shù)?是則執(zhí)行步驟125,否則跳轉(zhuǎn)至步驟127。
步驟125,將步驟122中獲得的參數(shù),和/或參數(shù)實(shí)體用于執(zhí)行任務(wù)函數(shù)。
步驟126,發(fā)送任務(wù)函數(shù)執(zhí)行結(jié)果至發(fā)送平臺(tái)。
步驟127,接口函數(shù)執(zhí)行完畢,產(chǎn)生接口函數(shù)執(zhí)行結(jié)果,并返回該結(jié)果至發(fā)送平臺(tái)。
本實(shí)施例中,步驟122~126的具體實(shí)施過程可以為當(dāng)參數(shù)中不含指針時(shí),接收平臺(tái)消息處理單元接收來自發(fā)送平臺(tái)的參數(shù),并存儲(chǔ)于根據(jù)paramsize開辟的內(nèi)存空間中。當(dāng)任務(wù)函數(shù)執(zhí)行完成后,接收平臺(tái)消息處理單元可以首先將任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)到該內(nèi)存空間,然后將此內(nèi)存空間的數(shù)據(jù)返回給發(fā)送平臺(tái)。
當(dāng)參數(shù)中還含有指針參數(shù)時(shí)如果參數(shù)性質(zhì)為INOUT類型,且指針參數(shù)的參數(shù)性質(zhì)為OUT類型,接收平臺(tái)消息處理單元首先接收來自發(fā)送平臺(tái)的參數(shù),并存儲(chǔ)于根據(jù)paramsize開辟的內(nèi)存空間中。然后根據(jù)指針參數(shù)的位置信息,本實(shí)施例中的ptrparamoffset的值,在內(nèi)存空間中查找到相應(yīng)的指針參數(shù),并修改該指針參數(shù)的值,使其指向接收平臺(tái)消息處理單元根據(jù)ptrparamsize對(duì)應(yīng)開辟的子內(nèi)存空間;最后接收來自發(fā)送平臺(tái)的指針參數(shù)所指向的參數(shù)實(shí)體,并存儲(chǔ)于根據(jù)ptrparamsize開辟的子內(nèi)存空間中。當(dāng)指針參數(shù)所指向的參數(shù)實(shí)體中還帶有指針時(shí),重復(fù)前述操作,直至所有的指針均正確的指向其對(duì)應(yīng)的子內(nèi)存空間,從而完成接收平臺(tái)上地址空間的轉(zhuǎn)換,并正確存儲(chǔ)各個(gè)指針?biāo)赶虻膮?shù)實(shí)體。
當(dāng)任務(wù)函數(shù)執(zhí)行完成后,接收平臺(tái)消息處理單元可以首先將任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于內(nèi)存空間中非指針參數(shù)的存儲(chǔ)位置,然后將此內(nèi)存空間的數(shù)據(jù)返回給發(fā)送平臺(tái)。
如果參數(shù)性質(zhì)為INOUT類型,且指針參數(shù)中存在一個(gè)或多個(gè)指針參數(shù)的參數(shù)性質(zhì)為IN類型時(shí),接收平臺(tái)消息處理單元同樣首先接收來自發(fā)送平臺(tái)的參數(shù),并存儲(chǔ)于根據(jù)paramsize開辟的內(nèi)存空間中。其次根據(jù)指針參數(shù)的位置信息,本實(shí)施例中的ptrparamoffset的值,在內(nèi)存空間中查找到相應(yīng)的指針參數(shù),保存并修改該指針參數(shù)的值,使其指向接收平臺(tái)根據(jù)ptrparamsize對(duì)應(yīng)開辟的子內(nèi)存空間;當(dāng)指針參數(shù)所指向的參數(shù)實(shí)體中還帶有指針時(shí),重復(fù)前述操作,直至所有的指針均正確的指向其對(duì)應(yīng)的子內(nèi)存空間,從而完成接收平臺(tái)上地址空間的轉(zhuǎn)換。再次,接收平臺(tái)消息處理單元查詢是否所有的指針參數(shù)的參數(shù)類型都為IN類型,如果還存在OUT或INOUT類型的指針參數(shù),則需要接收該指針參數(shù)對(duì)應(yīng)的參數(shù)實(shí)體,并存儲(chǔ)于對(duì)應(yīng)的子內(nèi)存空間中。最后,將內(nèi)存空間中非IN類型指針參數(shù)存儲(chǔ)位置的參數(shù),以及OUT或INOUT類型的指針參數(shù)所指向的參數(shù)實(shí)體,用于任務(wù)函數(shù)的執(zhí)行。
當(dāng)任務(wù)函數(shù)執(zhí)行完成后,接收平臺(tái)消息處理單元首先將任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)于IN類型指針參數(shù)所指向的子內(nèi)存空間,然后以保存的原指針參數(shù)恢復(fù)修改后的指針參數(shù)值,并將原指針參數(shù)以及子內(nèi)存空間中的任務(wù)函數(shù)執(zhí)行結(jié)果返回給發(fā)送平臺(tái),以使發(fā)送平臺(tái)消息處理單元可以根據(jù)指針參數(shù),將任務(wù)函數(shù)執(zhí)行結(jié)果準(zhǔn)確的保存到其所指向的存儲(chǔ)位置中。
本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)當(dāng)?shù)弥鲜鼋邮掌脚_(tái)的各個(gè)步驟的順序可以調(diào)整出多種具體實(shí)施方案,該調(diào)整只需與發(fā)送平臺(tái)的步驟相一致即可。因此,上述的步驟僅為本發(fā)明的一個(gè)較佳實(shí)施方案。
下面將給出幾個(gè)本發(fā)明的應(yīng)用實(shí)例。
實(shí)例1工作目標(biāo)發(fā)送平臺(tái)啟動(dòng)接收平臺(tái)上的攝像頭進(jìn)行攝像。
工作過程發(fā)送平臺(tái)消息處理單元發(fā)送接口函數(shù)sendcommand 1。其中1為msg。接收平臺(tái)消息處理單元接收該接口函數(shù),并執(zhí)行。查找到對(duì)應(yīng)的任務(wù)函數(shù)OPENCAMERA()。該任務(wù)函數(shù)調(diào)用無(wú)需參數(shù)。接收平臺(tái)的平臺(tái)運(yùn)行主控單元直接執(zhí)行,執(zhí)行完成后,返回接口函數(shù)執(zhí)行成功信息給發(fā)送平臺(tái)。
實(shí)例2工作目標(biāo)發(fā)送平臺(tái)調(diào)用接收平臺(tái)上的任務(wù)函數(shù)CAMERACAPTURE(Width,Height),命令接收平臺(tái)的攝像頭捕獲一副大小為300字節(jié)的圖像,并要求獲得該圖像數(shù)據(jù)。
工作過程發(fā)送平臺(tái)的平臺(tái)運(yùn)行主控單元首先確定消息號(hào)msg=2。然后開辟一指針*param指向的內(nèi)存空間用于存儲(chǔ)該任務(wù)函數(shù)所需要的寬度值Width、高度值Height,并存儲(chǔ)圖像數(shù)據(jù)存儲(chǔ)的地址指針*ptrparam。內(nèi)存空間中的數(shù)據(jù)如圖5所示。其中的每個(gè)參數(shù)分別占4個(gè)字節(jié),*ptrparam的偏移量為8,*ptrparam所指向的存儲(chǔ)空間A占300個(gè)字節(jié)。
因此發(fā)送平臺(tái)消息處理單元首先發(fā)送接口函數(shù)sendcommand(2,INOUT,12,0,IN,300,8);然后發(fā)送該內(nèi)存空間中所有12個(gè)字節(jié)的數(shù)據(jù)。
接收平臺(tái)消息處理單元首先接收該接口函數(shù)。然后開辟一大小為12個(gè)字節(jié)的內(nèi)存空間,用于將接收的來自發(fā)送平臺(tái)的12個(gè)字節(jié)的數(shù)據(jù)存儲(chǔ)于該內(nèi)存空間中,再開辟一個(gè)大小為300字節(jié)的子內(nèi)存空間,并先保存內(nèi)存空間中的最后4個(gè)字節(jié)的值,即指針*ptrparam的值,然后修改使其指向子內(nèi)存空間。接著根據(jù)消息號(hào)2查找到對(duì)應(yīng)的任務(wù)函數(shù)CAMERACAPTURE(Width,Height),將內(nèi)存空間中的頭4個(gè)字節(jié)的數(shù)據(jù)作為參數(shù)Width,中間4個(gè)字節(jié)的數(shù)據(jù)作為參數(shù)Height,執(zhí)行任務(wù)函數(shù)。從而攝像頭啟動(dòng)捕獲一副指定高度和寬度的圖像,并將該圖像數(shù)據(jù)存儲(chǔ)入子內(nèi)存空間中。最后,接收平臺(tái)消息處理單元需要以保存的*ptrparam的值替代內(nèi)存空間中最后4個(gè)字節(jié)的值,并將內(nèi)存空間中的參數(shù)實(shí)體以及子內(nèi)存空間中的圖像數(shù)據(jù)一并發(fā)送到發(fā)送平臺(tái)。使發(fā)送平臺(tái)可以根據(jù)*ptrparam,將圖像數(shù)據(jù)存儲(chǔ)到其指向的存儲(chǔ)區(qū)間A內(nèi)。
應(yīng)當(dāng)說明的是,前面的描述意圖僅是說明性的,而不是為了限制本發(fā)明。本領(lǐng)域的普通技術(shù)人員可以對(duì)在這里公開的實(shí)施例的形式和細(xì)節(jié)進(jìn)行許多變化,而不脫離本發(fā)明的精神和實(shí)質(zhì)。本發(fā)明的范圍由附加的權(quán)利要求限定。
權(quán)利要求
1.一種跨平臺(tái)函數(shù)調(diào)用系統(tǒng),包括發(fā)送平臺(tái)和接收平臺(tái),所述接收平臺(tái)內(nèi)存儲(chǔ)有若干用于執(zhí)行不同任務(wù)的任務(wù)函數(shù),其特征在于所述接收平臺(tái)內(nèi)設(shè)置有消息號(hào)映射表,其中存儲(chǔ)各個(gè)消息號(hào)分別與任務(wù)函數(shù)的一一對(duì)應(yīng)關(guān)系,所述發(fā)送平臺(tái)將跨平臺(tái)的任務(wù)函數(shù)調(diào)用封裝成一至少帶有消息號(hào)的接口函數(shù),并發(fā)送該接口函數(shù)至所述接收平臺(tái),接收平臺(tái)執(zhí)行接口函數(shù),從而根據(jù)消息號(hào)自消息號(hào)映射表內(nèi)查找出對(duì)應(yīng)的任務(wù)函數(shù),以執(zhí)行。
2.如權(quán)利要求1所述系統(tǒng),其特征在于所述發(fā)送平臺(tái)包括平臺(tái)運(yùn)行主控單元、存儲(chǔ)單元以及發(fā)送平臺(tái)消息處理單元,其中,所述平臺(tái)運(yùn)行主控單元用于發(fā)送平臺(tái)的整體控制,并獲得跨平臺(tái)的任務(wù)函數(shù)調(diào)用的消息號(hào)和其它任務(wù)函數(shù)調(diào)用信息;所述發(fā)送平臺(tái)消息處理單元根據(jù)來自平臺(tái)主控單元的消息號(hào)和其它任務(wù)函數(shù)調(diào)用信息,進(jìn)行接口函數(shù)的封裝,并發(fā)送封裝后的接口函數(shù);所述存儲(chǔ)單元用于存儲(chǔ)跨平臺(tái)的任務(wù)函數(shù)調(diào)用的發(fā)送數(shù)據(jù)和/或接收數(shù)據(jù)。
3.如權(quán)利要求1或2所述系統(tǒng),其特征在于所述接收平臺(tái)還包括平臺(tái)運(yùn)行主控單元、存儲(chǔ)單元以及接收平臺(tái)消息處理單元,其中所述平臺(tái)運(yùn)行主控單元用于對(duì)接收平臺(tái)的整體控制,并且實(shí)現(xiàn)任務(wù)函數(shù)的執(zhí)行;所述接收平臺(tái)消息處理單元用于與所述發(fā)送平臺(tái)通訊,從而接收并執(zhí)行來自發(fā)送平臺(tái)的接口函數(shù),實(shí)現(xiàn)任務(wù)函數(shù)的調(diào)用,并將接口函數(shù)執(zhí)行結(jié)果和/或任務(wù)函數(shù)執(zhí)行結(jié)果返回所述發(fā)送平臺(tái);所述存儲(chǔ)單元用于存儲(chǔ)所述消息號(hào)映射表,和/或來自發(fā)送平臺(tái)的參數(shù)實(shí)體,和/或所述任務(wù)函數(shù)執(zhí)行結(jié)果。
4.如權(quán)利要求3所述系統(tǒng),其特征在于所述發(fā)送平臺(tái)消息處理單元封裝后的接口函數(shù)僅帶有消息號(hào);所述接收平臺(tái)消息處理單元接收的接口函數(shù)僅帶消息號(hào),則接收平臺(tái)消息處理單元在執(zhí)行該接口函數(shù)時(shí),根據(jù)消息號(hào),自所述存儲(chǔ)單元的消息號(hào)映射表中查找獲得對(duì)應(yīng)的任務(wù)函數(shù),并使接收平臺(tái)的平臺(tái)運(yùn)行主控單元執(zhí)行該任務(wù)函數(shù),最后接收平臺(tái)消息處理單元結(jié)束接口函數(shù)的執(zhí)行,并返回接口函數(shù)執(zhí)行結(jié)果至所述發(fā)送平臺(tái)。
5.如權(quán)利要求3所述系統(tǒng),其特征在于所述其它任務(wù)函數(shù)調(diào)用信息指示任務(wù)函數(shù)調(diào)用帶參數(shù)時(shí),所述發(fā)送平臺(tái)在所述存儲(chǔ)單元內(nèi)開辟一內(nèi)存空間,用于存儲(chǔ)作為發(fā)送數(shù)據(jù)的任務(wù)函數(shù)調(diào)用的參數(shù)實(shí)體,和/或預(yù)留作為接收數(shù)據(jù)的存儲(chǔ)空間。
6.如權(quán)利要求5所述系統(tǒng),其特征在于所述發(fā)送平臺(tái)消息處理單元根據(jù)所述其它任務(wù)函數(shù)調(diào)用信息,產(chǎn)生任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息,并與消息號(hào)一起封裝到接口函數(shù)中。
7.如權(quán)利要求6所述系統(tǒng),其特征在于所述任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息包括參數(shù)所占存儲(chǔ)空間大小值、發(fā)送平臺(tái)是否需要發(fā)送參數(shù)實(shí)體、發(fā)送平臺(tái)是否需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指定內(nèi)存空間,并且,所述發(fā)送平臺(tái)消息處理單元當(dāng)發(fā)送平臺(tái)需要發(fā)送參數(shù)實(shí)體時(shí),自存儲(chǔ)單元的內(nèi)存空間中讀出相應(yīng)的參數(shù)實(shí)體,并發(fā)送;當(dāng)發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指定內(nèi)存空間中時(shí),等待接收來自接收平臺(tái)的任務(wù)函數(shù)執(zhí)行結(jié)果,并存儲(chǔ)在相應(yīng)的內(nèi)存空間中;所述接收平臺(tái)消息處理單元在執(zhí)行接收到的接口函數(shù)時(shí),將根據(jù)所述參數(shù)所占空間大小值在接收平臺(tái)的存儲(chǔ)單元內(nèi)開辟一內(nèi)存空間;并根據(jù)發(fā)送平臺(tái)需要發(fā)送參數(shù)實(shí)體的信息,接收來自發(fā)送平臺(tái)消息處理單元發(fā)送的參數(shù)實(shí)體,存入所開辟的內(nèi)存空間中;當(dāng)任務(wù)函數(shù)執(zhí)行完成后,還根據(jù)發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指定內(nèi)存空間的信息,將任務(wù)函數(shù)執(zhí)行結(jié)果發(fā)送給所述發(fā)送平臺(tái)消息處理單元。
8.如權(quán)利要求7所述系統(tǒng),其特征在子所述函數(shù)調(diào)用帶有的參數(shù)中含有指針參數(shù)時(shí),所述任務(wù)函數(shù)調(diào)用的相關(guān)參數(shù)信息還包括指針參數(shù)的位置信息、指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值、發(fā)送平臺(tái)是否需要發(fā)送指針參數(shù)所指向的參數(shù)實(shí)體,以及發(fā)送平臺(tái)是否需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間,并且,所述發(fā)送平臺(tái)消息處理單元在發(fā)送平臺(tái)需要發(fā)送指針參數(shù)所指向的參數(shù)實(shí)體時(shí),自存儲(chǔ)單元的內(nèi)存空間中讀取指針參數(shù),并根據(jù)指針參數(shù)所指向的地址,讀取其指向的參數(shù)實(shí)體,并發(fā)送;當(dāng)發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間時(shí),發(fā)送平臺(tái)消息處理單元等待接收來自接收平臺(tái)消息處理單元的指針參數(shù)以及任務(wù)函數(shù)執(zhí)行結(jié)果,從而將該任務(wù)函數(shù)執(zhí)行結(jié)果存儲(chǔ)到該指針參數(shù)指向的內(nèi)存空間中;所述接收平臺(tái)消息處理單元在執(zhí)行接口函數(shù)時(shí),將根據(jù)所述指針參數(shù)的位置信息,獲得指針參數(shù)值,并在發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間時(shí),存儲(chǔ)該指針參數(shù)值;還根據(jù)所述指針參數(shù)所指向的參數(shù)實(shí)體所占存儲(chǔ)空間大小值,在其存儲(chǔ)單元中相應(yīng)開辟一子內(nèi)存空間,并修改接收到的指針參數(shù)值,使其指向所開辟的內(nèi)存空間;再根據(jù)發(fā)送平臺(tái)需要發(fā)送指針參數(shù)所指向的參數(shù)實(shí)體,接收來自發(fā)送平臺(tái)消息處理單元的指針參數(shù)指向的參數(shù)實(shí)體,并存儲(chǔ)到所述內(nèi)存空間中;還根據(jù)所述發(fā)送平臺(tái)需要獲得任務(wù)函數(shù)執(zhí)行結(jié)果并存儲(chǔ)于指針參數(shù)所指向的內(nèi)存空間,將所存儲(chǔ)的指針參數(shù)值以及任務(wù)函數(shù)執(zhí)行結(jié)果發(fā)送到所述發(fā)送平臺(tái)消息處理單元。
9.如權(quán)利要求8所述系統(tǒng),其特征在于所述接收平臺(tái)消息處理單元還用于在接口函數(shù)執(zhí)行完成后,發(fā)送接口函數(shù)執(zhí)行結(jié)果至所述發(fā)送平臺(tái)消息處理單元。
10.如權(quán)利要求9所述系統(tǒng),其特征在于所述接口函數(shù)執(zhí)行結(jié)果包括接口函數(shù)執(zhí)行成功和錯(cuò)誤號(hào)。
全文摘要
本發(fā)明公開了一種跨平臺(tái)函數(shù)調(diào)用系統(tǒng),包括發(fā)送平臺(tái)和接收平臺(tái),所述接收平臺(tái)內(nèi)存儲(chǔ)有若干用于執(zhí)行不同任務(wù)的任務(wù)函數(shù),所述接收平臺(tái)內(nèi)設(shè)置有消息號(hào)映射表,其中存儲(chǔ)各個(gè)消息號(hào)分別與任務(wù)函數(shù)的一一對(duì)應(yīng)關(guān)系,所述發(fā)送平臺(tái)將跨平臺(tái)的任務(wù)函數(shù)調(diào)用封裝成一至少帶有消息號(hào)的接口函數(shù),并發(fā)送該接口函數(shù)至所述接收平臺(tái),接收平臺(tái)執(zhí)行接口函數(shù),從而根據(jù)消息號(hào)自消息號(hào)映射表內(nèi)查找出對(duì)應(yīng)的任務(wù)函數(shù),以執(zhí)行。相對(duì)現(xiàn)有技術(shù),本發(fā)明實(shí)現(xiàn)了跨平臺(tái)的多功能任務(wù)函數(shù)調(diào)用,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、易于實(shí)現(xiàn),且大大增強(qiáng)了任務(wù)函數(shù)調(diào)用的靈活性。
文檔編號(hào)G06F9/46GK1731361SQ20051009296
公開日2006年2月8日 申請(qǐng)日期2005年8月26日 優(yōu)先權(quán)日2005年8月26日
發(fā)明者占文靜, 游明琦 申請(qǐng)人:北京中星微電子有限公司