在自動化開發中,無論是CAN通信測試,還是網絡管理測試,亦或是休眠喚醒等等存在時間相關的,都可能會使用相關的時間函數;今天主要介紹的就是獲取當前時間,我們知道vector工具的最大優勢就是穩定和精確度高,這體現在我們使用工具的方方面面,今天我們來介紹的就是獲取的運行的相對時間,包含10微秒級和納秒級,下面我們就來看下CAPL都提供哪些獲取當前時間函數吧!
10微秒級
timeNow
返回值:10ms級的CANoe工程啟動到執行到該函數的時間;整數類型
常見用法:time_now_ms = timeNow()/100, time_now_ms就是CANoe啟動到執行到該行的運行時間,單位為ms,一般來說大部分測試達到滿足毫秒級即可,極個別需要精確到微秒甚至納秒的時候我們才會使用其他方法。
timeNow :time_now_ms的最大值:2^32*10微秒=11小時55分鐘49秒672毫秒96微秒;如果是長時間壓力測試的時候使用該函數需要注意處理最大值,以免測試結果的誤判。
timeNowint64 :如果是長時間壓力測試的時候建議使用該函數。
timeNowFloat
返回值:10ms級的CANoe工程啟動到執行到該函數的時間;浮點類型
常見用法:time_now_ms = timeNow()/100, time_now_ms就是CANoe啟動到執行到該行的運行時間,單位為ms,一般來說大部分測試達到滿足毫秒級即可,極個別需要精確到微秒甚至納秒的時候我們才會使用其他方法。
如果是長時間壓力測試的時候使用該函數需要注意處理最大值,以免測試結果的誤判。
timeDiff
message:CAN報文 例如:message 0x100 msg;則msg就代表報文ID為0x100的報文,msg.dlc即為報文0x100的長度都可通過msg.xx進行設置(FDF/BRS/R0/R1等等參數),設置內容函數MessageTimeNS中的message介紹。
NOW:當前時間
返回值:報文m1到當前的時間差或者報文m1和報文m2之間的時間差。
單位:10微秒
diff = timeDiff(m100, now);
diff = this.time - m100.time;
//this代表當前時間
納秒級
timeNowNS & timeNowInt64
返回值:納秒級的CANoe工程啟動到執行到該函數的時間;整數類型
常見用法:time_now_ns =timeNowNS(), time_now_ns就是CANoe啟動到執行到該行的運行時間,單位為ns,這里函數能夠滿足納秒級的測試,滿足更加精確的時間精度。
如果是長時間壓力測試的時候使用該函數需要注意處理最大值,以免測試結果的誤判。
MessageTimeNS
message:CAN報文 例如:message 0x100 msg;則msg就代表報文ID為0x100的報文,msg.dlc即為報文0x100的長度都可通過msg.xx進行設置(FDF/BRS/R0/R1等等參數)
message 100 msg;
msg.DLC = 1;
msg.BYTE(0) = 0xff;
output(msg);
linFrame:LIN報文 參考上面
以報文為參數,其中包含CAN報文或者LIN報文,返回值為CANoe啟動到當前函數的時間,單位為納秒,精度相當的高,這個主要用于檢查特定報文出現的時間,比如檢查Autosar網絡管理中的的重復報文出現的時間和時間差,可直接用當前函數去獲取并進行檢查。
以上是我們在使用CAPL編程中常用的獲取當前時間和或者時間差函數!!!
-
CAN通信
+關注
關注
5文章
94瀏覽量
17912 -
LIN
+關注
關注
4文章
216瀏覽量
40308 -
BRS
+關注
關注
0文章
7瀏覽量
3951
發布評論請先 登錄
相關推薦
評論