2017-12-13 86 views
0

私はGPIB電源を制御するCAPLテストノードを持っています。このCAPLは、3ミリ秒ごとに変更される信号を生成します。私のCAPLは、次のようになります。testwaitfortimeout()から離れたCAPLの遅延機能

... 
testcase wavGenerator() 
{ 
    GPIBWrite(myDevice, "VOLT", voltValue); 
    testwaitfortimeout(3); 
    ... 
} 

問題は、このtestwaitfortimeout()関数は、テストレポートにコメントを生成し、私は、各テストケースのために、この関数に2000/3000回を使用するので、私は巨大なテストで終わるということです報告する。

void delay(int ms) 
{ 
    float refTime; 
    refTime = timeNowFloat(); 
    while(timeNowFloat() < (refTime + ms*100)) 
    { 
     /* Wait to reach expected time*/ 
    } 
} 

をが、これはカヌークラッシュ:私はwaitfortimeoutのような「遅延」を生成する機能を実現しようとしている

()は次のように行います。私はsetTimer()関数でこのようなものを試しましたが、問題は同じです。この遅延をどのように生成できますか?また、あなたが常にレポートからtestwaitfortimeoutするすべてのコールをフィルタリングしているカスタムスタイルシート(XSLT)を作成することができ

variables 
{ 
    msTimer myTimer; 
} 

testcase wavGenerator() 
{ 
    GPIBWrite(myDevice, "VOLT", voltValue); 
    setTimer(myTimer, 3); 
} 

on timer myTimer 
{ 
    // your code 
} 

答えて

2

ひとつのアイデアは、タイマーを使用することができます。

0

私は

on timer tDelay 
{ 
    @EnvDelayFunct = 1; 
} 

void delay(int ms) 
{ 
    write("Wait for %i ms", ms); 
    int a; 
    setTimer(tDelay, ms); 
    a = testWaitForEnvVar(EnvDelayFunct, 0); 
    @EnvDelayFunct = 0; 
} 
)ENVVARと関数testWaitForEnvVar(、タイマーを使用して、これに対処する方法を発見
関連する問題