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