專(zhuān)利名稱(chēng):嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式軟件開(kāi)發(fā)工具,具體涉及嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法。
背景技術(shù):
嵌入式開(kāi)發(fā)環(huán)境都具有目標(biāo)機(jī)通信能力,可以向嵌入式系統(tǒng)發(fā)送數(shù)據(jù)包,也可以接收數(shù)據(jù)包。當(dāng)前的嵌入式開(kāi)發(fā)環(huán)境一般都只針對(duì)單目標(biāo)機(jī),不專(zhuān)門(mén)針對(duì)嵌入式分布式系統(tǒng),不具備將各單目標(biāo)機(jī)集合起來(lái)作為一個(gè)嵌入式分布式系統(tǒng)進(jìn)行連接管理的能力。因此使得嵌入式開(kāi)發(fā)環(huán)境缺少對(duì)嵌入式分布式系統(tǒng)開(kāi)發(fā)工具的支持,嵌入式分布式系統(tǒng)開(kāi)發(fā)工具需要自己完成嵌入式分布式系統(tǒng)目標(biāo)機(jī)管理、命令管理、數(shù)據(jù)傳輸?shù)韧ㄐ殴芾砉ぷ?,增加了嵌入式分布式系統(tǒng)開(kāi)發(fā)工具開(kāi)發(fā)的難度。傳統(tǒng)的數(shù)據(jù)傳輸功能主要考慮記錄單目標(biāo)機(jī)的狀態(tài),不能在命令回復(fù)接收超時(shí)之前,發(fā)送新的命令給忙碌目標(biāo)機(jī)。嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件則需要記錄多目標(biāo)機(jī)的狀態(tài),不能在命令回復(fù)接收超時(shí)之前,發(fā)送新的命令給忙碌目標(biāo)機(jī),并且需要及時(shí)的將命令發(fā)往空閑的目標(biāo)機(jī)。各目標(biāo)機(jī)的命令回復(fù)、事件通知、目標(biāo)機(jī)主動(dòng)上傳的大量數(shù)據(jù)也要能及時(shí)的接收。
發(fā)明內(nèi)容
為了解決現(xiàn)有的嵌入式開(kāi)發(fā)環(huán)境一般都只針對(duì)單目標(biāo)機(jī),不具備將各個(gè)單目標(biāo)機(jī)集合起來(lái)作為一個(gè)嵌入式分布式系統(tǒng)進(jìn)行連接管理的技術(shù)問(wèn)題,本發(fā)明提供一種嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法。本發(fā)明的技術(shù)解決方案嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法,其特殊之處在于包括以下步驟I通過(guò)圖形用戶界面模塊(⑶I)給嵌入式分布式系統(tǒng)管理器配置至少一個(gè)目標(biāo)機(jī),并將配置的結(jié)果保存到嵌入式分布式系統(tǒng)管理器中;2連接嵌入式分布式系統(tǒng)管理器所配置的目標(biāo)機(jī),并清空命令管理器中的等待發(fā)送命令隊(duì)列和等待回復(fù)命令隊(duì)列中的所用命令、啟動(dòng)傳輸器;3利用應(yīng)用程序編程接口模塊(API)提供的嵌入式分布式系統(tǒng)開(kāi)發(fā)工具的編程接口,根據(jù)嵌入式分布式系統(tǒng)開(kāi)發(fā)工具給出的創(chuàng)建命令的參數(shù)創(chuàng)建命令,發(fā)送所創(chuàng)建命令至命令管理器;命令包括命令要發(fā)往的目標(biāo)機(jī)、命令序列號(hào)、命令發(fā)送參數(shù)、命令發(fā)送參數(shù)封裝方法、命令回復(fù)參數(shù)解析方法;4命令管理器添加應(yīng)用程序編程接口模塊(API)創(chuàng)建命令到等待發(fā)送命令隊(duì)列;5傳輸器的發(fā)送線程從等待發(fā)送命令隊(duì)列中獲取一個(gè)等待發(fā)送命令,將等待發(fā)送命令封裝形成命令發(fā)送數(shù)據(jù)包,將命令發(fā)送數(shù)據(jù)包發(fā)往等待發(fā)送命令中指向的要發(fā)往的目標(biāo)機(jī);將發(fā)送后的等待發(fā)送命令添加到命令管理器中等待回復(fù)命令隊(duì)列中;6接收來(lái)自目標(biāo)機(jī)的命令回復(fù)數(shù)據(jù)包,解析命令回復(fù)數(shù)據(jù)包得到命令序列號(hào),根據(jù)命令序列號(hào)在等待回復(fù)命令隊(duì)列中獲取對(duì)應(yīng)命令;根據(jù)獲取對(duì)應(yīng)命令包括的命令回復(fù)參數(shù)解析方法解析命令回復(fù)數(shù)據(jù)得到命令回復(fù)參數(shù),將命令回復(fù)參數(shù)保存至命令管理器中對(duì)應(yīng)的等待回復(fù)命令中;7應(yīng)用程序編程接口模塊(API)從命令管理器中獲取命令回復(fù)參數(shù)供嵌入式分布式系統(tǒng)開(kāi)發(fā)工具使用;8圖形用戶界面模塊(⑶I)斷開(kāi)嵌入式分布式系統(tǒng)管理器所配置的目標(biāo)機(jī),并停止傳輸器。步驟2還包括定義目標(biāo)機(jī)的初始狀態(tài)為空閑狀態(tài);對(duì)應(yīng)步驟5為傳輸器的發(fā)送線程從等待發(fā)送命令隊(duì)列中獲取一個(gè)等待發(fā)送命令,查看該選取的等待發(fā)送命令包括的要發(fā)往的目標(biāo)機(jī)的狀態(tài),如果目標(biāo)機(jī)狀態(tài)為空閑,則將等待發(fā)送命令封裝形成命令發(fā)送數(shù)據(jù)包,將命令發(fā)送數(shù)據(jù)包發(fā)往等待發(fā)送命令中指向的要發(fā)往的目標(biāo)機(jī),將目標(biāo)機(jī)狀態(tài)修改為繁忙狀態(tài);將發(fā)送后的等待發(fā)送命令添加到命令管理器中等待回復(fù)命令隊(duì)列中;如果目標(biāo)機(jī)狀態(tài)為繁忙,則重新從等待發(fā)送命令隊(duì)列中獲取一個(gè)等待發(fā)送命令, 直至選取的等待發(fā)送命令包括的要發(fā)往的目標(biāo)機(jī)的狀態(tài)為空閑狀態(tài)。步驟2的具體方法為啟動(dòng)傳輸器傳輸器和目標(biāo)機(jī)建立通訊連接,運(yùn)行發(fā)送線程,運(yùn)行接收線程。步驟8的具體方法為停止發(fā)送線程,停止接收線程,斷開(kāi)傳輸器和目標(biāo)機(jī)之間的通訊連接。本發(fā)明所具有的優(yōu)點(diǎn)I、本發(fā)明通過(guò)在目標(biāo)機(jī)中設(shè)置目標(biāo)機(jī)狀態(tài)參數(shù),防止目標(biāo)機(jī)的命令堆積,造成目標(biāo)機(jī)來(lái)不及處理,保證目標(biāo)機(jī)有序工作。2、本發(fā)明采用先將傳輸器和目標(biāo)機(jī)建立通訊連接、運(yùn)行發(fā)送線程、運(yùn)行接收線程或者停止發(fā)送線程、停止接收線程、斷開(kāi)傳輸器和目標(biāo)機(jī)之間的通訊連接來(lái)斷開(kāi)連接的方式,確保通訊穩(wěn)定,防止遺漏命令。
圖I是嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件總體結(jié)構(gòu)圖。圖2是傳輸器命令發(fā)送任務(wù)運(yùn)行流程。圖3是傳輸器目標(biāo)機(jī)接收線程運(yùn)行流程。圖4是目標(biāo)機(jī)操作類(lèi)API接口一般的運(yùn)行流程。圖5是嵌入式分布式系統(tǒng)通信管理軟件數(shù)據(jù)流圖。
具體實(shí)施例方式本發(fā)明總的目的是要為嵌入式開(kāi)發(fā)環(huán)境提供一個(gè)通用的分布式系統(tǒng)通信管理軟件。通過(guò)這個(gè)軟件,可以增強(qiáng)嵌入式開(kāi)發(fā)環(huán)境對(duì)嵌入式分布式系統(tǒng)開(kāi)發(fā)工具的支持。有了嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件后,嵌入式開(kāi)發(fā)環(huán)境將分為嵌入式開(kāi)發(fā)環(huán)境平臺(tái)、單目標(biāo)機(jī)管理及通信、嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理、嵌入式分布式系統(tǒng)開(kāi)發(fā)工具。其中嵌入式開(kāi)發(fā)環(huán)境平臺(tái)是一個(gè)基本平臺(tái),在這個(gè)基本平臺(tái)上可以開(kāi)發(fā)其它軟件組件;單目標(biāo)機(jī)管理及通信提供單目標(biāo)機(jī)配置管理和單目標(biāo)機(jī)通信能力,它向嵌入
4式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件提供單目標(biāo)機(jī)配置管理和單目標(biāo)機(jī)通信接口 ;嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件為嵌入式系統(tǒng)分布式系統(tǒng)開(kāi)發(fā)工具提供嵌入式分布式系統(tǒng)管理、通信等能力;嵌入式分布式系統(tǒng)開(kāi)發(fā)工具是具有嵌入式分布式系統(tǒng)的信息查看、 運(yùn)行監(jiān)視等功能的開(kāi)發(fā)工具。為了達(dá)到嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件總目的,需要嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件達(dá)到下面幾個(gè)目的。I、基于嵌入式開(kāi)發(fā)環(huán)境單目標(biāo)機(jī)通信基礎(chǔ)之上嵌入式開(kāi)發(fā)環(huán)境嵌入式分布式系統(tǒng)通信管理軟件各組成部分的實(shí)現(xiàn)都基于嵌入式開(kāi)發(fā)環(huán)境基本平臺(tái)接口和單目標(biāo)機(jī)管理及通信接口。2、嵌入式分布式系統(tǒng)管理嵌入式分布式系統(tǒng)包含多個(gè)目標(biāo)機(jī)。通信管理軟件支持嵌入式分布式系統(tǒng),需要先對(duì)其中的目標(biāo)機(jī)進(jìn)行配置。因此,嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)目標(biāo)機(jī)通信管理軟件需要支持對(duì)目標(biāo)機(jī)的配置。3、嵌入式分布式系統(tǒng)命令管理發(fā)往各目標(biāo)機(jī)的數(shù)據(jù)稱(chēng)為命令。傳統(tǒng)單機(jī)命令管理只需要將命令組織成一個(gè)列表就可以管理起來(lái)。嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件則還要在組織列表的同時(shí),記錄下各命令發(fā)往的目標(biāo)機(jī),以及命令所處的狀態(tài)包括發(fā)送等待、發(fā)送完成、回復(fù)等待、回復(fù)完成四個(gè)狀態(tài)。4、嵌入式分布式系統(tǒng)數(shù)據(jù)傳輸傳輸?shù)臄?shù)據(jù)包括命令、命令回復(fù)、事件通知。命令是嵌入式開(kāi)發(fā)環(huán)境向目標(biāo)機(jī)發(fā)送的數(shù)據(jù),命令回復(fù)是目標(biāo)機(jī)響應(yīng)命令數(shù)據(jù)后的回饋數(shù)據(jù), 事件通知是目標(biāo)機(jī)主動(dòng)向開(kāi)發(fā)環(huán)境發(fā)送的數(shù)據(jù),主要是向開(kāi)發(fā)環(huán)境上報(bào)目標(biāo)機(jī)運(yùn)行過(guò)程中發(fā)生的特殊事件。嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件基于如錯(cuò)誤!未找到引用源。的總體結(jié)構(gòu),分為嵌入式分布式系統(tǒng)管理器、命令管理器、傳輸器、API、⑶I。分布式系統(tǒng)管理器完成嵌入式分布式系統(tǒng)目標(biāo)機(jī)管理功能,命令管理器完成命令管理功能,傳輸器完成數(shù)據(jù)傳輸功能,API提供工具編程接口,GUI提供用戶圖形操作界面。I、嵌入式分布式系統(tǒng)管理器用DsManager類(lèi)表不嵌入式分布式系統(tǒng)管理器,用TsTarget類(lèi)代表目標(biāo)機(jī)。在 TsTarget類(lèi)中有記錄目標(biāo)機(jī)狀態(tài),通過(guò)方法boolean isBusy ()判斷目標(biāo)機(jī)是否繁忙,通過(guò) setBusy(boolean busy)設(shè)置目標(biāo)機(jī)是否繁忙。嵌入式分布式系統(tǒng)目標(biāo)機(jī)管理器中包含一個(gè)目標(biāo)機(jī)隊(duì)列List<TsTarget>dscd用這個(gè)隊(duì)列來(lái)保存嵌入式分布式系統(tǒng)包含的所有目標(biāo)機(jī)。通過(guò)voidsetDs cd(List〈TsTarget>targetlist)方法設(shè)置嵌入式分布式系統(tǒng)包含的目標(biāo)機(jī)。通過(guò) List〈TsTarget>getDscd()方法獲取嵌入式分布式系統(tǒng)包含的所有目標(biāo)機(jī)。2、命令管理器用CmdManager類(lèi)表示命令管理器。CmdManager類(lèi)有等待發(fā)送命令隊(duì)列和發(fā)送后等待回復(fù)命令隊(duì)列。ISendObj指可以發(fā)送的對(duì)象,IRepObj指可以回復(fù)的對(duì)象。使用類(lèi)Cmd implements IRepObj, ISendOb j來(lái)表示發(fā)往目標(biāo)機(jī)的命令,所有的具體目標(biāo)機(jī)操作命令類(lèi)都是對(duì)該類(lèi)的子類(lèi)。Cmd中有命令要發(fā)往的目標(biāo)機(jī)(TsTarget類(lèi)的對(duì)象)、命令序列號(hào)、命令發(fā)送參數(shù)、命令回復(fù)參數(shù)等成員。命令序列號(hào)由傳輸器產(chǎn)生,每個(gè)發(fā)送的命令它的序列號(hào)都各不相同。命令序列號(hào)會(huì)隨命令其它數(shù)據(jù)一起發(fā)送到目標(biāo)機(jī),目標(biāo)機(jī)處理完命令后,命令回復(fù)數(shù)據(jù)包中也將包含這個(gè)序列號(hào)。通過(guò)命令回復(fù)數(shù)據(jù)包中的命令序列號(hào)就可以在命令管理器中找到對(duì)應(yīng)的命令。Cmd主要的方法包括獲取命令要發(fā)往的目標(biāo)機(jī),TsTarget getTsTarget ();封裝命令發(fā)送參數(shù),booleanencapsule (ByteBuffer buf);解析命令回復(fù)參數(shù),booleanresolve (ByteBuffer buf)。發(fā)送命令,voidsend();同步發(fā)送命令,該方法會(huì)發(fā)生等待,直到命令接收到回復(fù)或等待超時(shí), sendSychronizedCmd(int cmdtimeout);異步地發(fā)送命令,該方法不會(huì)發(fā)生等待,但返回后不保證命令有回復(fù)數(shù)據(jù), sendAsynchronouslyCmd(int cmdtimeout)。Cmd類(lèi)用send方法來(lái)實(shí)現(xiàn)命令的發(fā)送。該方法將調(diào)用CmdManager類(lèi)addSendObj 方法將命令存放到等待發(fā)送的命令隊(duì)列中。CmdManager類(lèi)主要的方法包括有包括添加發(fā)送對(duì)象到等待發(fā)送命令隊(duì)列,addSendObj (ISendObj sendobj);獲取一個(gè)所要發(fā)往的目標(biāo)機(jī)為空閑狀態(tài)的等待發(fā)送命令, ISendObjgetSendObj ();設(shè)置發(fā)送對(duì)象已發(fā)送狀態(tài),并設(shè)置命令發(fā)往的目標(biāo)機(jī)為繁忙狀態(tài), setSended(ISendObj sendobj);添加一個(gè)等待回復(fù)的對(duì)象到等待回復(fù)隊(duì)列,addRepObj (IRepObj repobj);根據(jù)序列號(hào)獲取等待回復(fù)對(duì)象,IRepObj getRepObj (int xno);設(shè)置命令為已回復(fù)狀態(tài),并設(shè)置命令目標(biāo)機(jī)為空閑狀態(tài), setReped(IRepObjrecobj)。3、傳輸器嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件和目標(biāo)機(jī)通信的實(shí)現(xiàn)是基于嵌入式開(kāi)發(fā)環(huán)境單目標(biāo)機(jī)管理及通信接口。假設(shè)嵌入式開(kāi)發(fā)環(huán)境通過(guò)TsApi類(lèi)提供單目標(biāo)機(jī)管理及通信接口,每個(gè)TsApi對(duì)象都和一個(gè)目標(biāo)機(jī)對(duì)象(TsTarget對(duì)象)對(duì)應(yīng)。TsApi類(lèi)主要的方法包括open :打開(kāi)通信接口 ;putpkt :發(fā)送數(shù)據(jù)包;getpkt :接收數(shù)據(jù)包;close:關(guān)閉通信接口。用Transmitter類(lèi)表不傳輸器。Transmitter類(lèi)中管理了一個(gè)TsApi對(duì)象列表ArrayList<TsApi>TsApis其中的每個(gè)TsApi對(duì)象都對(duì)應(yīng)一個(gè)嵌入式分布式系統(tǒng)目標(biāo)機(jī)對(duì)象(TsTarget對(duì)象)。傳輸器通過(guò)方法boolean transOn (boolean linknow)啟動(dòng)或關(guān)閉。啟動(dòng)時(shí)將嘗試為每個(gè)目標(biāo)機(jī)都創(chuàng)建一個(gè)TsApi對(duì)象,并通過(guò)open方法打開(kāi)通信接口,然后運(yùn)行發(fā)送任務(wù) RecJob和接收任務(wù)Transjob。關(guān)閉時(shí)通過(guò)close方法關(guān)閉通信接口,并清空TsApi對(duì)象列表,停止所有的接收線程和發(fā)送任務(wù)。傳輸器用一個(gè)發(fā)送線程(TransThread)來(lái)完成嵌入式分布式系統(tǒng)所有目標(biāo)機(jī)命令數(shù)據(jù)的發(fā)送。傳輸器用為嵌入式分布式系統(tǒng)各目標(biāo)機(jī)都創(chuàng)建一個(gè)接收線程(RecThread),用來(lái)接收來(lái)自各目標(biāo)機(jī)數(shù)據(jù)。TransJob通過(guò)CmdManager類(lèi)getSendObj方法找到要發(fā)送的命令,為命令生成序列號(hào),將命令數(shù)據(jù)進(jìn)行封裝,根據(jù)命令發(fā)送目標(biāo)機(jī)找到對(duì)應(yīng)的TsApi對(duì)象,使用TsApi對(duì)象 putpkt方法發(fā)送命令,并置目標(biāo)機(jī)為忙的狀態(tài)。TransJob的運(yùn)行流程見(jiàn)錯(cuò)誤!未找到引用源。。各目標(biāo)機(jī)RecThread不停的從目標(biāo)機(jī)中接收數(shù)據(jù)(使用目TsApi的getpkt方法), 將接收到的數(shù)據(jù)包進(jìn)行分析,判斷是命令回復(fù)數(shù)據(jù)包還是事件通知數(shù)據(jù)包,然后調(diào)用不同的數(shù)據(jù)包處理方法進(jìn)行處理。命令回復(fù)后處理過(guò)程是=WCmdManager中找到對(duì)應(yīng)的命令, 解析命令回復(fù)數(shù)據(jù),調(diào)用CmdManager類(lèi)setReped方法設(shè)置命令已回復(fù)狀態(tài)。RecThread 的運(yùn)行流程見(jiàn)錯(cuò)誤!未找到引用源。。4、圖形用戶界面(GUI)嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件圖形用戶界面包含的操作有配置、連接、斷開(kāi)。配置指的是配置嵌入式分布式系統(tǒng)包含的目標(biāo)機(jī)。配置的結(jié)果會(huì)設(shè)置到嵌入式分布式系統(tǒng)目標(biāo)機(jī)管理器中進(jìn)行保存(通過(guò)setDscd方法)。嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件包含連接和斷開(kāi)兩個(gè)狀態(tài),只有處于連接狀態(tài),才能進(jìn)行目標(biāo)機(jī)通信和數(shù)據(jù)傳輸。只有處于斷開(kāi)狀態(tài),才能進(jìn)行配置操作。連接操作先清空命令管理器中的等待發(fā)送隊(duì)列和等待接收隊(duì)列、調(diào)用傳輸器 transOn (true)方法啟動(dòng)傳輸器。斷開(kāi)操作將調(diào)用傳輸器transOn (false)方法停止傳輸器。5、應(yīng)用程序編程接口(API)嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件向上層嵌入式分布式系統(tǒng)開(kāi)發(fā)工具提供應(yīng)用程序編程接口。和目標(biāo)機(jī)相關(guān)的編程接口一般的工作流程見(jiàn)錯(cuò)誤!未找到引用源。。嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件具體工作步驟(I)用戶通過(guò)圖形用戶界面配置嵌入式分布式系統(tǒng)包含的目標(biāo)機(jī)。(2)用戶通過(guò)圖形用戶連接嵌入式分布式系統(tǒng),從而清空命令管理器中的等待發(fā)送隊(duì)列和等待接收隊(duì)列、啟動(dòng)傳輸器。傳輸器啟動(dòng)后和分布式系統(tǒng)中的各目標(biāo)機(jī)機(jī)都會(huì)建立通信連接,并運(yùn)行發(fā)送任務(wù)和各目標(biāo)機(jī)的數(shù)據(jù)接收線程。(3)用戶使用嵌入式分布式系統(tǒng)開(kāi)發(fā)工具,工具從嵌入式分布式系統(tǒng)管理器中獲取可操作的目標(biāo)機(jī)信息,通過(guò)API接口或自身直接生成目標(biāo)機(jī)命令,發(fā)送命令到命令管理器的等待發(fā)送隊(duì)列中。(4)傳輸器發(fā)送任務(wù)從命令管理器等待隊(duì)列中取得要發(fā)送的命令進(jìn)行發(fā)送。(5)傳輸器目標(biāo)機(jī)接收線程接收來(lái)自目標(biāo)機(jī)的命令回復(fù)數(shù)據(jù),從命令管理器等待回復(fù)隊(duì)列中取得對(duì)應(yīng)的命令進(jìn)行回復(fù)數(shù)據(jù)的解析,并設(shè)置命令為已回復(fù)狀態(tài)。(6)嵌入式分布式系統(tǒng)開(kāi)發(fā)工具取得命令的執(zhí)行回復(fù)數(shù)據(jù)進(jìn)行使用。(7)嵌入式分布式系統(tǒng)開(kāi)發(fā)工具重復(fù)步驟(3)——(6),完成工具在線開(kāi)發(fā)功能。
(8)用戶通過(guò)圖形用戶連接嵌入式分布式系統(tǒng)。停止運(yùn)行傳輸器發(fā)送任務(wù)和各目標(biāo)機(jī)接收線程,關(guān)閉和目標(biāo)機(jī)的通信連接。嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理軟件數(shù)據(jù)流見(jiàn)錯(cuò)誤!未找到引用源。。為嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)開(kāi)發(fā)工具提供了通信管理能力,使得工具能專(zhuān)注于自己本身的應(yīng)用功能,降低了工具開(kāi)發(fā)的難度。
權(quán)利要求
1.嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法,其特征在于包括以下步驟I通過(guò)圖形用戶界面模塊(GUI)給嵌入式分布式系統(tǒng)管理器配置至少一個(gè)目標(biāo)機(jī),并將配置的結(jié)果保存到嵌入式分布式系統(tǒng)管理器中;2連接嵌入式分布式系統(tǒng)管理器所配置的目標(biāo)機(jī),并清空命令管理器中的等待發(fā)送命令隊(duì)列和等待回復(fù)命令隊(duì)列中的所用命令、啟動(dòng)傳輸器;3利用應(yīng)用程序編程接口模塊(API)提供的嵌入式分布式系統(tǒng)開(kāi)發(fā)工具的編程接口, 根據(jù)嵌入式分布式系統(tǒng)開(kāi)發(fā)工具給出的創(chuàng)建命令的參數(shù)創(chuàng)建命令,發(fā)送所創(chuàng)建命令至命令管理器;命令包括命令要發(fā)往的目標(biāo)機(jī)、命令序列號(hào)、命令發(fā)送參數(shù)、命令發(fā)送參數(shù)封裝方法、命令回復(fù)參數(shù)解析方法;4命令管理器添加應(yīng)用程序編程接口模塊(API)創(chuàng)建命令到等待發(fā)送命令隊(duì)列;5傳輸器的發(fā)送線程從等待發(fā)送命令隊(duì)列中獲取一個(gè)等待發(fā)送命令,將等待發(fā)送命令封裝形成命令發(fā)送數(shù)據(jù)包,將命令發(fā)送數(shù)據(jù)包發(fā)往等待發(fā)送命令中指向的要發(fā)往的目標(biāo)機(jī);將發(fā)送后的等待發(fā)送命令添加到命令管理器中等待回復(fù)命令隊(duì)列中;6接收來(lái)自目標(biāo)機(jī)的命令回復(fù)數(shù)據(jù)包,解析命令回復(fù)數(shù)據(jù)包得到命令序列號(hào),根據(jù)命令序列號(hào)在等待回復(fù)命令隊(duì)列中獲取對(duì)應(yīng)命令;根據(jù)獲取對(duì)應(yīng)命令包括的命令回復(fù)參數(shù)解析方法解析命令回復(fù)數(shù)據(jù)得到命令回復(fù)參數(shù),將命令回復(fù)參數(shù)保存至命令管理器中對(duì)應(yīng)的等待回復(fù)命令中;7應(yīng)用程序編程接口模塊(API)從命令管理器中獲取命令回復(fù)參數(shù)供嵌入式分布式系統(tǒng)開(kāi)發(fā)工具使用;8圖形用戶界面模塊(⑶I)斷開(kāi)嵌入式分布式系統(tǒng)管理器所配置的目標(biāo)機(jī),并停止傳輸器。
2.根據(jù)權(quán)利要求I所述的嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法,其特征在于 步驟2還包括定義目標(biāo)機(jī)的初始狀態(tài)為空閑狀態(tài);對(duì)應(yīng)步驟5為傳輸器的發(fā)送線程從等待發(fā)送命令隊(duì)列中獲取一個(gè)等待發(fā)送命令,查看該選取的等待發(fā)送命令包括的要發(fā)往的目標(biāo)機(jī)的狀態(tài),如果目標(biāo)機(jī)狀態(tài)為空閑,則將等待發(fā)送命令封裝形成命令發(fā)送數(shù)據(jù)包,將命令發(fā)送數(shù)據(jù)包發(fā)往等待發(fā)送命令中指向的要發(fā)往的目標(biāo)機(jī),將目標(biāo)機(jī)狀態(tài)修改為繁忙狀態(tài);將發(fā)送后的等待發(fā)送命令添加到命令管理器中等待回復(fù)命令隊(duì)列中;如果目標(biāo)機(jī)狀態(tài)為繁忙,則重新從等待發(fā)送命令隊(duì)列中獲取一個(gè)等待發(fā)送命令,直至選取的等待發(fā)送命令包括的要發(fā)往的目標(biāo)機(jī)的狀態(tài)為空閑狀態(tài)。
3.根據(jù)權(quán)利要求I或2所述的嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法,其特征在于 步驟2的具體方法為啟動(dòng)傳輸器傳輸器和目標(biāo)機(jī)建立通訊連接,運(yùn)行發(fā)送線程,運(yùn)行接收線程。
4.根據(jù)權(quán)利要求3所述的嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法,其特征在于步驟8的具體方法為停止發(fā)送線程,停止接收線程,斷開(kāi)傳輸器和目標(biāo)機(jī)之間的通訊連接。
全文摘要
本發(fā)明涉及嵌入式開(kāi)發(fā)環(huán)境分布式系統(tǒng)通信管理方法,包括以下步驟1)通過(guò)圖形用戶界面模塊給嵌入式分布式系統(tǒng)管理器配置至少一個(gè)目標(biāo)機(jī);2)連接目標(biāo)機(jī);3)創(chuàng)建命令,發(fā)送至命令管理器;4)添加創(chuàng)建命令到等待發(fā)送命令隊(duì)列;5)發(fā)送線程獲取一個(gè)等待發(fā)送命令,發(fā)往目標(biāo)機(jī);6)接收來(lái)自目標(biāo)機(jī)的命令回復(fù)數(shù)據(jù)包;7)應(yīng)用程序編程接口模塊中獲取命令回復(fù)參數(shù);8)斷開(kāi)目標(biāo)機(jī),并停止傳輸器。本發(fā)明解決了現(xiàn)有的只針對(duì)單目標(biāo)機(jī),不具備將各個(gè)單目標(biāo)機(jī)集合起來(lái)作為一個(gè)嵌入式分布式系統(tǒng)進(jìn)行連接管理的技術(shù)問(wèn)題,本發(fā)明通過(guò)在目標(biāo)機(jī)中設(shè)置目標(biāo)機(jī)狀態(tài)參數(shù),防止目標(biāo)機(jī)的命令堆積,造成目標(biāo)機(jī)來(lái)不及處理,保證目標(biāo)機(jī)有序工作。
文檔編號(hào)G06F9/44GK102541536SQ20111039069
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者張旻, 田丹, 麥先根 申請(qǐng)人:中國(guó)航空工業(yè)集團(tuán)公司第六三一研究所