專利名稱:獲取移動終端消息的系統(tǒng)時間的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動終端測試領(lǐng)域,特別是指一種獲取移動終端消息的系統(tǒng)時間的方 法和裝置。
背景技術(shù):
在移動終端研發(fā)過程中,經(jīng)常需要對移動終端進行內(nèi)部調(diào)試和外場測試,并獲取 移動終端的各種實時狀態(tài)的參數(shù),從而分析開發(fā)中遇到的問題和發(fā)現(xiàn)實際使用中出現(xiàn)的問 題,并且來進行解決。實現(xiàn)這些目的的手段就是捕獲移動終端內(nèi)部模塊之間發(fā)送的消息,通 過對這些消息數(shù)據(jù)進行采集和保存,生成消息日志,由開發(fā)人員和測試人員對消息進行研 究和分析,來判斷移動終端在各個模塊是否正常工作和正常通信,從而達到測試的目的。對于移動終端,獲取其內(nèi)部通訊消息可以使用通訊設(shè)備消息日志系統(tǒng),該通訊設(shè) 備消息日志系統(tǒng)通過USB(Universal Serial Bus,通用串行總線)和UART(Universal Asynchronous Receiver/Transmitte,通用非同步收發(fā)傳輸器)連接到移動終端。連接成功 后,移動終端通過其內(nèi)置的程序,在各個模塊進行通信的同時,將消息的副本發(fā)送至通訊設(shè) 備消息日志系統(tǒng),通訊設(shè)備消息日志系統(tǒng)就可以顯示這些消息,可以對這些消息進行解碼, 或者保存這些消息到消息日志,以便隨后研究分析使用。獲取移動終端的消息的方式也可以是通過網(wǎng)絡(luò)獲取,獲取移動終端通過網(wǎng)絡(luò)傳輸 的消息,并保存成相應(yīng)的消息日志,對于某些測試,需要比較這兩種途徑獲取的消息日志, 從而得出相關(guān)的測試結(jié)論。但是對于移動終端發(fā)送的消息,信息量往往非常巨大,測試通話或者撥號上網(wǎng)所 采集的消息數(shù)量都可能達到十萬條甚至上百萬條消息,生成的消息日志可以GB(Gigabyte, 千兆字節(jié))為單位。測試人員和開發(fā)人員為了分析對比某一次通話或者其它一項業(yè)務(wù)中從 移動終端捕獲的消息和從網(wǎng)絡(luò)側(cè)捕獲的消息,則需要從兩側(cè)捕獲消息生成的消息日志文件 中定位該次通話或者業(yè)務(wù),截取這次通話或者業(yè)務(wù)的相關(guān)消息進行對比分析,可是,面對如 此巨大的消息量,一般很難準確定位。這就需要測試人員耗費很多時間來先對兩份消息日 志文件進行分析,定位該次通話或者業(yè)務(wù)的起始時間和終止時間,并進行分析。因為一系列 的測試經(jīng)常會重復這樣的測試項,所以同樣的工作需要重復多次,這樣就給測試帶來了很 多不必要的工作量,在很大程度上耗費了很多不必要的人力和時間,影響了測試的效率,并 給測試工作帶來了困難。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種能夠準確地獲取移動終端消息的系統(tǒng)時間 的方法和裝置,使移動終端的測試效率得到提高,避免不必要的人力和時間的耗費。為解決上述技術(shù)問題,本發(fā)明的實施例提供技術(shù)方案如下一方面,提供一種獲取移動終端消息的系統(tǒng)時間的方法,包括獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS時間;
根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間。其中,獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS時間的步驟具體為獲取移動終端發(fā)送至計算機的消息的RTOS幀號;根據(jù)所述RTOS幀號,得到所述消息的RTOS時間。其中,根據(jù)所RTOS幀號,得到所述消息的RTOS時間的步驟具體為通過公式=RTOS時間=long ((float (RT0S 幀號)/(float (1000))) X2X4615), 得到所述消息的RTOS時間;其中,RTOS幀號為u32類型,所述u32表示32位無符號整數(shù); float表示浮點運算;long表示長整型運算。其中,根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前系統(tǒng)時間 變量的值,得到所述消息的系統(tǒng)時間的步驟具體為計算所述消息的RTOS時間與所述當前RTOS基線時間變量的值的差值;將所述差值與所述當前系統(tǒng)時間變量的值相加,得到所述消息的系統(tǒng)時間。其中,得到所述消息的系統(tǒng)時間之后還包括將所述消息的RTOS時間賦給所述RTOS基線時間變量;將所述消息的系統(tǒng)時間賦給所述系統(tǒng)時間變量。其中,所述當前RTOS基線時間變量的值為所述消息的上一條消息的RTOS時間,所 述消息為第一條消息時,所述當前RTOS基線時間變量的值為0 ;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為第 一條消息時,所述當前系統(tǒng)時間變量的值為接收所述第一條消息時的系統(tǒng)時間。其中,得到所述消息的系統(tǒng)時間的步驟之后還包括保存所述消息的系統(tǒng)時間至消息中,并將所述消息保存至消息日志文件中。其中,所述消息日志文件的類型為原始數(shù)據(jù)日志文件或者已經(jīng)解碼的消息日志 文件。其中,所述消息日志文件的類型為原始數(shù)據(jù)日志文件時,且在對所述原始數(shù)據(jù)日 志文件進行解碼時所述當前RTOS基線時間變量的值為所述消息的上一條消息的RTOS時間,所述消 息為第一條消息時,所述當前RTOS基線時間變量的值為所述第一條消息的RTOS時間;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為第 一條消息時,所述當前系統(tǒng)時間變量的值為保存所述原始數(shù)據(jù)日志文件時的時間。本發(fā)明的實施例還提供一種獲取移動終端消息的系統(tǒng)時間的裝置,包括獲取模塊,用于獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS時間;處理模塊,用于根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前 系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間。其中,所述獲取模塊具體用于獲取移動終端發(fā)送的消息的RTOS幀號,并根據(jù)所 述RTOS幀號,得到所述消息的RTOS時間。其中,所述處理模塊具體用于計算所述消息的RTOS時間與所述當前RTOS基線時 間變量的值的差值,將所述差值與所述當前系統(tǒng)時間變量的值相加,得到所述消息的系統(tǒng) 時間。
其中,上述裝置還包括賦值模塊,用于在得到所述消息的RTOS時間和所述消息的系統(tǒng)時間后,將所述消息的RTOS時間賦給所述RTOS基線時間變量,將所述消息的系統(tǒng)時間賦給所述系統(tǒng)時間變量。其中,上述裝置還包括保存模塊,用于保存所述消息的系統(tǒng)時間至消息中,并將所述消息保存至消息日 志文件中;和/或顯示模塊,用于顯示所述消息的系統(tǒng)時間。本發(fā)明的實施例具有以下有益效果通過獲取移動終端發(fā)送的消息的RTOS時間,并用該RTOS時間結(jié)合當前RTOS基線 時間變量的值和當前系統(tǒng)時間變量的值,得到消息的系統(tǒng)時間,根據(jù)該消息的系統(tǒng)時間,可 以更加準確地定位該消息所在業(yè)務(wù)或者通話的發(fā)送時間和接收時間,節(jié)省了測試人員分析 日志文件的時間,從而使移動終端的測試效率得到提高,避免不必要的人力和時間的耗費。
圖1為本發(fā)明的實施例獲取移動終端消息的系統(tǒng)時間的方法流程圖;圖2為圖1所示方法的一具體實現(xiàn)流程圖;圖3為本發(fā)明的實施例獲取移動終端消息的系統(tǒng)時間的裝置結(jié)構(gòu)圖;圖4為圖3所示裝置的一具體實現(xiàn)結(jié)構(gòu)圖。
具體實施例方式為使本發(fā)明的實施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合 附圖及具體實施例進行詳細描述。本發(fā)明的實施例針對現(xiàn)有技術(shù)中定位移動終端該次通話或者業(yè)務(wù)的起始時間和 終止時間,會耗費大量時間,測試效率低的問題,提供一種能夠準確地獲取移動終端消息的 系統(tǒng)時間的方法和裝置,使移動終端的測試效率得到提高,避免不必要的人力和時間的耗費。如圖1所示,本發(fā)明的實施例提供一種獲取移動終端消息的系統(tǒng)時間的方法,包 括步驟11,獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS(Real TimeOperating System)時間;步驟12,根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前系統(tǒng)時 間變量的值,得到所述消息的系統(tǒng)時間。該實施例通過獲取移動終端發(fā)送的消息的RTOS時間,并用該RTOS時間結(jié)合當前 RTOS基線時間變量的值和當前系統(tǒng)時間變量的值,得到消息的系統(tǒng)時間,根據(jù)該消息的系 統(tǒng)時間,可以更加準確地定位該消息所在業(yè)務(wù)或者通話的發(fā)送時間和接收時間,節(jié)省了測 試人員分析日志文件的時間,從而使移動終端的測試效率得到提高,避免不必要的人力和 時間的耗費。具體來講,上述步驟11具體可以包括
步驟111,獲取移動終端發(fā)送的消息的RT0S幀號;步驟112,根據(jù)所述RT0S幀號,得到所述消息的RT0S時間。其中,該步驟112具體通過公式RT0S時間=long ((float (RT0S幀號)/ (float (1000))) X 2X4615),得到所述消息的RT0S時間;其中,RT0S時間為用于保存消息 的RT0S時間的變量,RT0S幀號為u32類型,u32表示32位無符號整數(shù);float表示浮點運 算;long表示長整型運算。計算得到消息的RT0S時間后,上述步驟12實現(xiàn)時,具體包括步驟121,計算所述消息的RT0S時間與所述當前RT0S基線時間變量的值的差值;步驟122,將所述差值與所述當前系統(tǒng)時間變量的值相加,得到所述消息的系統(tǒng)時 間。在得到消息的RT0S時間和消息的系統(tǒng)時間后,還包括步驟123,將所述消息的RT0S時間賦給所述RT0S基線時間變量;步驟124,將所述消息的系統(tǒng)時間賦給所述消息的系統(tǒng)時間變量,以便計算下一條 消息的系統(tǒng)時間時所用。本發(fā)明的上述實施例通過計算移動終端的消息的RT0S時間,并根據(jù)該RT0S時間 和當前系統(tǒng)中RT0S基線時間變量的值和系統(tǒng)時間變量的值,來計算當前消息的系統(tǒng)時間, 該系統(tǒng)時間準確的表達了當前消息所屬業(yè)務(wù)或者通話的起始時間和終止時間,得到該系統(tǒng) 時間,就得到了該當前消息所屬業(yè)務(wù)或者通話的起始時間和終止時間,測試人員利用該消 息的系統(tǒng)時間對消息文件日志進行分析,可以更加準確地定位消息所屬業(yè)務(wù)或者通話的起 始時間和終止時間,節(jié)省了測試人員分析日志文件的時間,從而使移動終端的測試效率得 到提高,避免不必要的人力和時間的耗費。下面結(jié)合應(yīng)用場景,具體說明上述實施例的實現(xiàn)過程為了提高對移動終端的測試效率,本發(fā)明提供的可以讓通訊設(shè)備消息日志系統(tǒng)實 時顯示、解碼和存儲的時候,顯示獲取的消息的系統(tǒng)時間的方法,其中該系統(tǒng)時間可以是消 息發(fā)送至計算機時的計算機的系統(tǒng)時間(簡稱PC系統(tǒng)時間);為了實現(xiàn)這個方法,如圖2所 示,該方法的步驟主要有4個,具體如下所述步驟21,對通訊設(shè)備消息日志系統(tǒng)的關(guān)于消息的時間參數(shù)進行初始化,其中,該時 間參數(shù)主要包括用于保存消息的RT0S時間的RT0S時間變量,用于保存消息的系統(tǒng)時間的 系統(tǒng)時間變量,用于保存系統(tǒng)基線時間的系統(tǒng)基線時間變量和用于保存RT0S基線時間的 RT0S基線時間變量,在通訊設(shè)備消息日志系統(tǒng)中,使用時,首先為這些變量賦值,且這些變 量是全局變量,即這些變量在整個移動終端的消息接收過程中均適用,該初始化的步驟主 要包括步驟211,初始化全局變量,包括系統(tǒng)基線時間變量(初始化為零,在具體使用時 也可以用實際獲取的第一條消息的系統(tǒng)時間來賦值),RT0S基線時間變量(初始化為零,在 具體使用時也可以用實際獲取的第一條消息的RT0S時間來賦值);當然,RT0S時間變量也 可以用該第一條消息的RT0S時間來賦值,系統(tǒng)時間變量也可以用系統(tǒng)基線時間變量的值 來初始化,通訊設(shè)備消息日志系統(tǒng)中的賦值模塊在對系統(tǒng)基線時間變量和RT0S基線時間 變量初始化后,還需要對一標識位進行初始化為假,該標識位表示是否對基線時間變量進 行了賦值,如果沒有對基線時間變量進行賦值,則該標識位的值為假,如果對基線時間變量
7進行了賦值,則該標識位的值為真;另外,該通訊設(shè)備消息日志系統(tǒng)中,在得到每條消息的系統(tǒng)時間后,該條消息的系 統(tǒng)時間會賦值給該系統(tǒng)時間變量,一方面用于顯示當前該條消息的系統(tǒng)時間,另一方面,為 計算下一條消息的系統(tǒng)時間所用;該條消息的RT0S時間會賦值給該RT0S時間變量;步驟212,當通訊設(shè)備消息日志系統(tǒng)捕獲到移動終端發(fā)送至計算機的第一條消息 時,該第一條消息包含有RT0S時間信息,通過使用該第一條消息的RT0S幀號(RTOS Ticks) 和計算公式RT0S 時間=long ((float (RTOS 幀號)/(float (1000))) X2X4615),計算出該第 一條消息的發(fā)出(即捕獲)RT0S時間,同時通訊設(shè)備消息日志系統(tǒng)獲取該第一條消息被接 收時的系統(tǒng)時間,如可以用該第一條消息的RT0S時間賦值給RT0S時間變量和RT0S基線時 間變量,該第一條消息的系統(tǒng)時間賦值給系統(tǒng)基線時間變量,再用該系統(tǒng)基線時間變量的 值初始化系統(tǒng)時間變量,這樣就完成了變量的第一次賦值;其中系統(tǒng)基線時間變量的值主 要在出現(xiàn)異常時所用。步驟213,為系統(tǒng)基線時間變量、RT0S基線時間變量和用來存儲每條消息的系統(tǒng) 時間變量以及標識位賦值,使用上述第一條消息的RT0S時間賦值給RT0S基線時間變量;用 該第一條消息被接收時的系統(tǒng)時間賦值給系統(tǒng)基線時間變量,消息的系統(tǒng)時間變量也可以 用該第一條消息的系統(tǒng)時間來賦值,當然該系統(tǒng)時間變量也可以不用該第一條消息的系統(tǒng) 時間來賦值,同時將標識位賦值為真(表示通訊設(shè)備消息日志系統(tǒng)已經(jīng)給RT0S基線時間變 量和系統(tǒng)基線時間變量賦值);也就是說,當計算一條消息的系統(tǒng)時間時,所述當前RT0S基線時間變量的值為所 述消息的上一條消息的RT0S時間,所述消息為第一條消息時,所述當前RT0S基線時間變 量的值為0,在計算出來第一條消息的RT0S時間后,就會用該第一條消息的RT0S時間為該 RT0S基線時間變量重新賦值,該RT0S基線時間變量原來的值會被丟掉;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為第 一條消息時,所述當前系統(tǒng)時間變量的值為接收所述第一條消息時的系統(tǒng)時間。步驟22,計算移動終端發(fā)送的每條消息的系統(tǒng)時間,該步驟主要包括步驟221,判斷移動終端的狀態(tài),如果移動終端發(fā)生重新啟動,或者斷開連接并且 重新連接,會發(fā)出一條相應(yīng)的信令,告知通訊設(shè)備消息日志系統(tǒng),移動終端發(fā)生的狀況(比 如死機、重新啟動、連接斷開等等),則通訊設(shè)備消息日志系統(tǒng)會根據(jù)接收到的該信令,根據(jù) 重啟或者重新連接以后捕獲的第一條包含RT0S時間信息的消息,重新進行對RT0S基線時 間變量和系統(tǒng)基線時間變量以及標識位進行賦值,但在移動終端的狀態(tài)正常情況下,系統(tǒng) 基線時間變量在被接收所述第一條消息時的系統(tǒng)時間初始化后,不會被更新,只有當移動 終端發(fā)生異常時,會重新獲取系統(tǒng)基線時間變量的值;步驟222,如果移動終端的狀態(tài)正常,當捕獲的消息包含有RT0S時間信息,而且表 示系統(tǒng)基線時間和RT0S基線時間是否被賦值的標識位為真(表示系統(tǒng)基線時間和RT0S基 線時間已經(jīng)被賦值),則通過該條消息的幀號(RTOSTicks)代入公式RT0S 時間=long ((float (RTOS 幀號)/(float (1000))) X2X4615),計算出該條 消息的發(fā)出(即捕獲)RT0S時間;步驟223,判斷這條消息的RT0S時間與RT0S基線時間變量的值的大小,如果該
8RT0S時間大于或者等于RT0S基線時間,則計算出RT0S基線時間變量的值到該RT0S時間的 時間差值,用這個時間差值,加在用來保存每條消息的系統(tǒng)時間變量(該系統(tǒng)時間變量第 一次賦值為首條消息的系統(tǒng)時間,后為當前消息的前一條消息的系統(tǒng)時間)。這樣就得出該 條消息的系統(tǒng)時間。最后用該條消息的RT0S時間更新RT0S基線時間變量,使該RT0S基線 時間變量的值作為下一條包含RT0S時間信息的消息的新的RT0S基線時間。在步驟223中,如果該RT0S時間小于RT0S基線時間,表明發(fā)生了異常,由通訊設(shè) 備消息日志系統(tǒng)進行異常拋出處理;步驟23,保存和/或顯示所述消息的系統(tǒng)時間,具體來講,保存所述消息的系統(tǒng)時 間至消息中,并將所述消息保存至消息日志文件中;按照步驟22的操作,可以計算出每條 捕獲的消息的系統(tǒng)時間,每當計算出該條消息的系統(tǒng)時間,該條消息的系統(tǒng)時間會以文本 的格式保存在解碼后的消息內(nèi)容中,并在通訊設(shè)備消息日志系統(tǒng)的消息解碼的窗口中顯示 該系統(tǒng)時間,顯示格式為“PCTime =”,后面顯示消息的系統(tǒng)時間。這樣測試人員就可以實 時地在通訊設(shè)備消息日志系統(tǒng)捕獲消息的過程中查看消息的系統(tǒng)時間,以及停止通訊設(shè)備 消息日志系統(tǒng),查看消息記錄的時候查看某條消息的系統(tǒng)時間。在將通訊設(shè)備消息日志系統(tǒng)停止以后,在可以查看通訊設(shè)備消息日志系統(tǒng)捕獲的 消息記錄中的系統(tǒng)時間的同時,還可以將消息記錄保存成消息日志文件,所述消息日志文 件的類型為原始數(shù)據(jù)日志文件或者已經(jīng)解碼的消息日志文件。因此,上述消息以及該消息的系統(tǒng)時間可以保存成已經(jīng)解碼的消息日志文件也, 也可以保存成原始數(shù)據(jù)記錄日志文件(原始數(shù)據(jù)記錄日志文件是未解碼的2進制碼流,若 要計算消息的PC系統(tǒng)時間,需要重新解碼和推算每條消息的系統(tǒng)時間)。通訊設(shè)備消息日 志系統(tǒng)捕獲的消息的系統(tǒng)時間也會保存在對消息進行解碼后的消息日志文件之中,測試人 員可以直接打開該種格式的文件進行查看。步驟24,若上述保存的消息日志文件為原始數(shù)據(jù)記錄日志文件時,需要對該原始 數(shù)據(jù)記錄日志文件重新解碼,推算每條消息的系統(tǒng)時間,才能顯示每條消息的系統(tǒng)時間,因 此,通訊設(shè)備消息日志系統(tǒng)可以打開之前測試保存的原始數(shù)據(jù)記錄日志文件,并可以對該 原始數(shù)據(jù)記錄日志文件進行重新解碼,根據(jù)該原始數(shù)據(jù)日志文件的創(chuàng)建時間,以及日志文 件中每條消息的RT0S時間,來推算出每條消息在當時被捕獲的系統(tǒng)時間,該步驟主要分為 個步驟,具體如下所述步驟241,首先配置通訊設(shè)備消息日志系統(tǒng),讀入要進行重新解碼的原始數(shù)據(jù)日志 文件,通訊設(shè)備消息日志系統(tǒng)首先讀入原始數(shù)據(jù)日志文件的創(chuàng)建時間(該創(chuàng)建時間為該原 始數(shù)據(jù)日志文件保存的時間),使用這個時間來給系統(tǒng)基線時間變量進行賦值,也可以把這 個時間賦值給用來保存每條消息的系統(tǒng)時間變量,同時將表示是否對基線時間進行賦值的 標識位賦值成真(表示已經(jīng)給基線時間進行了賦值);也就是說,所述消息日志文件的類型為原始數(shù)據(jù)日志文件時,且在對所述原始數(shù) 據(jù)日志文件進行重新解碼時,所述當前RT0S基線時間變量的值為所述消息的上一條消息 的RT0S時間,所述消息為第一條消息時,所述當前RT0S基線時間變量的值為計算出來的該 第一條消息的RT0S時間;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為第 一條消息時,所述當前系統(tǒng)時間變量的值為保存所述原始數(shù)據(jù)日志文件時的時間;
步驟242,當通訊設(shè)備消息日志系統(tǒng)讀取出第一條包含RT0S時間信息的消息時, 通訊設(shè)備消息日志系統(tǒng)通過這條消息的幀號(RTOS Ticks),代入計算公式RT0S 時間=long ((float (RTOS Ticks) / (float (1000))) X 2 X 4615),計算出該條 消息的發(fā)出(即捕獲)RT0S時間,其中,用計算出來的該第一條包含RT0S時間信息的消息 的RT0S時間賦值給RT0S基線時間變量,再將這個時間加上當前系統(tǒng)時間變量的值(如上 述保存所述原始數(shù)據(jù)日志文件時的時間),就得到了第一條消息的系統(tǒng)時間,并將該第一條 消息的系統(tǒng)時間賦值給系統(tǒng)時間變量,這樣就完成了第一條消息的系統(tǒng)時間的賦值;步驟243,當通訊設(shè)備消息日志系統(tǒng)依次讀取到原始數(shù)據(jù)日志文件中的包含RT0S 時間信息的消息時,首先把該消息的幀號(RTOS Ticks)代入公式RT0S 時間=long ((float (RTOS 幀號)/(float (1000))) X2X4615),計算出該條 消息的發(fā)出(即捕獲)RT0S時間,其中,將該RT0S時間同RT0S基線時間變量的值進行比較, 計算出RT0S基線時間到該RT0S時間的時間差值,用這個時間差值,加在用來保存每條消息 的系統(tǒng)時間變量上(該系統(tǒng)時間的變量的原值為第一次賦值為首條消息的系統(tǒng)時間,后為 當前消息的前一條消息的系統(tǒng)時間)。這樣就得出該條消息的系統(tǒng)時間。最后用該RT0S時 間更新RT0S基線時間變量,使該RT0S基線時間變量的值作為下一條包含RT0S時間信息的 消息的新的RT0S基線時間。步驟244,對每條捕獲的消息進行系統(tǒng)時間顯示和保存,按照步驟243的操作,可 以計算出每條讀取的消息的系統(tǒng)時間,每當計算出該條消息的系統(tǒng)時間,該時間會以文本 的格式保存在解碼后的消息內(nèi)容中,并在通訊設(shè)備消息日志系統(tǒng)的消息解碼的窗口中顯示 該系統(tǒng)時間,顯示格式為“PC Time =”,后面顯示消息的系統(tǒng)時間。步驟245,對原始數(shù)據(jù)日志文件進行全部數(shù)據(jù)的讀取和解碼之后,可以選擇保存解 碼后的消息,生成解碼以后的消息日志文件。本發(fā)明的上述方法,首先在計算機上使用通訊設(shè)備消息日志系統(tǒng)對移動終端進行 消息捕獲時,當通訊設(shè)備消息日志系統(tǒng)接收到第一條具有RT0S時間信息的消息時,通訊設(shè) 備消息日志系統(tǒng)會記錄當前的系統(tǒng)時間,并把該系統(tǒng)時間作為系統(tǒng)基線時間進行記錄,于 此同時,通訊設(shè)備消息日志系統(tǒng)會通過使用該第一條消息的RT0S幀號,按照上述計算公式 計算出該條消息的RT0S時間,并把該RT0S時間作為RT0S基線時間進行記錄;當通訊設(shè)備消息日志系統(tǒng)再次接收到包含RT0S時間信息的消息時,通訊設(shè)備消 息日志系統(tǒng)根據(jù)該條消息的RT0S幀號計算出該條消息的RT0S時間,并將該RT0S時間和 RT0S基線時間變量的值(即上一條消息的RT0S時間)進行比較,計算出該RT0S時間和 RT0S基線時間變量的值的時間差,將這個時間差加到系統(tǒng)時間變量(其值為上一條消息的 系統(tǒng)時間)上后,得出的就是該條消息的系統(tǒng)時間。于此同時,將該條消息的RT0S時間賦 值給RT0S基線時間變量,作為下一條消息計算其系統(tǒng)時間時用,如此就實現(xiàn)了計算并顯示 每條接收到的消息的實時系統(tǒng)時間的方法。對于某些特殊情況的處理,比如移動終端出現(xiàn)連接斷開,死機,或者重啟等現(xiàn)象, 移動終端通過內(nèi)置的代碼,會根據(jù)移動終端出現(xiàn)的狀況發(fā)送一條相應(yīng)的信令到通訊設(shè)備消 息日志系統(tǒng),告知系統(tǒng)移動終端的狀態(tài),系統(tǒng)會根據(jù)信令包含的信息對系統(tǒng)時間的計算使 用相應(yīng)的處理。特殊情況下,如在使用移動終端進行通話或者撥號上網(wǎng)的過程中,產(chǎn)生的消息量太過巨大,由于計算機性能問題或者通訊設(shè)備消息日志系統(tǒng)本身的性能問題,無法同時處 理大量的信息,為了應(yīng)對這種情況,可以不在接收到一條消息時就對該條消息進行解碼,而 是將移動終端發(fā)送到通訊設(shè)備消息日志系統(tǒng)的消息先保存在消息隊列中,再由通訊設(shè)備消 息日志系統(tǒng)依次從隊列中獲取消息,從而繼續(xù)進行解碼,計算系統(tǒng)時間,顯示等處理;這種 情況下,如果在通訊設(shè)備消息日志系統(tǒng)獲取到消息的同時就獲取系統(tǒng)時間,這樣的時間是 不準確的,因為這樣沒有考慮到消息在隊列中的等待時間,如果數(shù)據(jù)量不是很大的時候,誤 差也許會很小到甚至無法察覺,但是在業(yè)務(wù)繁忙,業(yè)務(wù)量大的時候,隊列中等待的時間就無 法忽略了,所以本發(fā)明的方法根據(jù)消息的RT0S時間來計算,這樣可以把誤差控制在一個非 常小的可控范圍內(nèi)。本發(fā)明的應(yīng)用范圍很廣,可以應(yīng)用在各種有對移動終端消息獲取實時監(jiān)控的需求 上,也可以使用在保存包含有移動終端消息的實時系統(tǒng)時間信息的消息日志,方便開發(fā)人 員和測試人員對消息日志的分析和研究。還可以使用在比對移動終端側(cè)和通信網(wǎng)絡(luò)側(cè)獲取 的消息日志間進行時間比對的需求上。本發(fā)明使對移動終端消息的監(jiān)控、采集、分析和保存 的工作中大大提高了工作效率和測試精度。如圖3所示,本發(fā)明的實施例還提供一種獲取移動終端消息的系統(tǒng)時間的裝置 30,包括獲取模塊31,用于獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RT0S時間;處理模塊32,用于根據(jù)所述消息的RT0S時間、當前RT0S基線時間變量的值以及當 前系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間。該實施例中,裝置30具體可以是計算機中的通訊設(shè)備日志文件系統(tǒng),該通訊設(shè)備 日志文件系統(tǒng)可以是計算機中的一用于對移動終端進行測試的功能模塊,該實施例同樣通 過獲取移動終端發(fā)送至計算機的消息的RT0S時間,并用該RT0S時間結(jié)合當前RT0S基線時 間變量的值和當前系統(tǒng)時間變量的值,得到消息的系統(tǒng)時間,根據(jù)該系統(tǒng)時間,可以更加準 確地定位該消息所在業(yè)務(wù)或者通話的發(fā)送時間和接收時間能夠更加準確的定位,節(jié)省了測 試人員分析日志文件的時間,從而使移動終端的測試效率得到提高,避免不必要的人力和 時間的耗費。其中,上述獲取模塊31具體用于獲取移動終端發(fā)送至計算機的消息的RT0S幀 號,并根據(jù)所述RT0S幀號,得到所述消息的RT0S時間;具體來講可以通過公式RT0S時間 =long((float(RT0S幀號)/ (float (1000))) X 2X4615),得到所述消息的RT0S時間;其中,RT0S幀號為u32類型,u32 表示32位無符號整數(shù);float表示浮點運算;long表示長整型運算。上述處理模塊32具體用于計算所述消息的RT0S時間與所述當前RT0S基線時間 變量的值的差值,將所述差值與所述當前系統(tǒng)時間變量的值相加,得到所述消息的系統(tǒng)時 間。如圖4所示,移動終端發(fā)送消息至該通訊設(shè)備日志文件系統(tǒng),通過該系統(tǒng)中的獲 取模塊以及處理模塊,在得到消息的系統(tǒng)時間后,上述裝置還包括賦值模塊,用于在得到所述消息的RT0S時間和所述消息的系統(tǒng)時間后,將所述消 息的RT0S時間賦給所述RT0S基線時間變量,以便計算下一條消息的系統(tǒng)時間所用;并將所 述消息的系統(tǒng)時間賦給所述系統(tǒng)時間變量,該賦值模塊還可以對RT0S基線時間變量和系統(tǒng)基線時間變量進行初始化。進一步的,該裝置30還可包括保存模塊,用于保存所述消息的系統(tǒng)時間至消息中,并將所述消息保存至消息日 志文件中;該消息日志文件的類型可以為原始數(shù)據(jù)日志文件或者已經(jīng)解碼的消息日志文 件,也就是說,可以將接收到的多條消息保存成原始數(shù)據(jù)日志文件,也可以保存成已經(jīng)解碼 的消息日志文件;和/或顯示模塊,用于顯示所述消息的系統(tǒng)時間;具體來講,每計算出來一條消息的系統(tǒng) 時間,該顯示模塊就會通過用戶交互模塊及時將該條消息的系統(tǒng)時間顯示在計算機的人機 界面上;若保存的是原始數(shù)據(jù)日志文件,則可以對該原始數(shù)據(jù)日志文件重新進行解碼,解 碼過程中,按照處理模塊的處理方法推算出每條消息的系統(tǒng)時間,那么在推算過程中,在對 RT0S基線時間變量和系統(tǒng)時間變量進行賦值時,會與處理模塊在形成已經(jīng)解碼的消息日志 文件中對這兩個變量進行賦值的方法有所不同,在對原始數(shù)據(jù)日志文件的解碼過程中,推 算每條消息的系統(tǒng)時間時,所述當前RT0S基線時間變量的值為所述消息的上一條消息的 RT0S時間,所述消息為第一條消息時,所述當前RT0S基線時間變量的值為第一條消息的 RT0S時間;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為 第一條消息時,所述當前系統(tǒng)時間變量的值為保存所述原始數(shù)據(jù)日志文件時的時間;而處理模塊在接收到第一條消息,并最終形成已經(jīng)解碼的消息日志文件的過程 中,RT0S基線時間變量和系統(tǒng)時間變量的賦值方式是所述當前RT0S基線時間變量的值為 所述消息的上一條消息的RT0S時間,所述消息為第一條消息時,所述當前RT0S基線時間變 量的值為0 ;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息 為第一條消息時,所述當前系統(tǒng)時間變量的值為接收所述第一條消息時的系統(tǒng)時間。最后,需要說明的是上述方法中圖2所示的應(yīng)用實施例以及步驟21-24的所有實 現(xiàn)過程均適用于該裝置實施例,也能達到同樣的技術(shù)效果,在此不再贅述。以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員 來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也 應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
一種獲取移動終端消息的系統(tǒng)時間的方法,其特征在于,包括獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS時間;根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取移動終端發(fā)送的消息的實時操作系 統(tǒng)RTOS時間的步驟具體為獲取移動終端發(fā)送至計算機的消息的RTOS幀號;根據(jù)所述RTOS幀號,得到所述消息的RTOS時間。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所RTOS幀號,得到所述消息的RTOS 時間的步驟具體為通過公式:RT0S 時間=long ((float (RT0S 幀號)/ (float (1000))) X 2 X 4615),得到所 述消息的RTOS時間;其中,RTOS幀號為u32類型,所述u32表示32位無符號整數(shù);float表 示浮點運算;long表示長整型運算。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述消息的RTOS時間、當前RTOS基 線時間變量的值以及當前系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間的步驟具體為計算所述消息的RTOS時間與所述當前RTOS基線時間變量的值的差值;將所述差值與所述當前系統(tǒng)時間變量的值相加,得到所述消息的系統(tǒng)時間。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,得到所述消息的系統(tǒng)時間之后還包括將所述消息的RTOS時間賦給所述RTOS基線時間變量;將所述消息的系統(tǒng)時間賦給所述系統(tǒng)時間變量。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當前RTOS基線時間變量的值為所述 消息的上一條消息的RTOS時間,所述消息為第一條消息時,所述當前RTOS基線時間變量的 值為0;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為第一條 消息時,所述當前系統(tǒng)時間變量的值為接收所述第一條消息時的系統(tǒng)時間。
7.根據(jù)權(quán)利要求1至6任一項所述的方法,其特征在于,得到所述消息的系統(tǒng)時間的步 驟之后還包括保存所述消息的系統(tǒng)時間至消息中,并將所述消息保存至消息日志文件中。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述消息日志文件的類型為原始數(shù)據(jù)日 志文件或者已經(jīng)解碼的消息日志文件。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述消息日志文件的類型為原始數(shù)據(jù)日 志文件時,且在對所述原始數(shù)據(jù)日志文件進行解碼時所述當前RTOS基線時間變量的值為所述消息的上一條消息的RTOS時間,所述消息為 第一條消息時,所述當前RTOS基線時間變量的值為所述第一條消息的RTOS時間;所述當前系統(tǒng)時間變量的值為所述消息的上一條消息的系統(tǒng)時間,所述消息為第一條 消息時,所述當前系統(tǒng)時間變量的值為保存所述原始數(shù)據(jù)日志文件時的時間。
10.一種獲取移動終端消息的系統(tǒng)時間的裝置,其特征在于,包括獲取模塊,用于獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS時間;處理模塊,用于根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述獲取模塊具體用于獲取移動終端 發(fā)送的消息的RTOS幀號,并根據(jù)所述RTOS幀號,得到所述消息的RTOS時間。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述處理模塊具體用于計算所述消息 的RTOS時間與所述當前RTOS基線時間變量的值的差值,將所述差值與所述當前系統(tǒng)時間 變量的值相加,得到所述消息的系統(tǒng)時間。
13.根據(jù)權(quán)利要求10所述的裝置,其特征在于,還包括賦值模塊,用于在得到所述消息的RTOS時間和所述消息的系統(tǒng)時間后,將所述消息的 RTOS時間賦給所述RTOS基線時間變量,將所述消息的系統(tǒng)時間賦給所述系統(tǒng)時間變量。
14.根據(jù)權(quán)利要求11至13任一項所述的裝置,其特征在于,還包括保存模塊,用于保存所述消息的系統(tǒng)時間至消息中,并將所述消息保存至消息日志文 件中;和/或顯示模塊,用于顯示所述消息的系統(tǒng)時間。
全文摘要
本發(fā)明提供一種獲取移動終端消息的系統(tǒng)時間的方法和裝置,其中方法包括獲取移動終端發(fā)送的消息的實時操作系統(tǒng)RTOS時間;根據(jù)所述消息的RTOS時間、當前RTOS基線時間變量的值以及當前系統(tǒng)時間變量的值,得到所述消息的系統(tǒng)時間。本發(fā)明的方案使移動終端的測試效率得到提高,避免不必要的人力和時間的耗費。
文檔編號H04W88/18GK101808349SQ20101012475
公開日2010年8月18日 申請日期2010年3月12日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者騰飛 申請人:北京天碁科技有限公司