CAPL:如何获取包含信号名称的消息的时间戳?

CAPL: How do I get the timestamp of the message containing a signal name?

我相信这比我想象的要简单得多,但是...

在 CAPL 中,我试图输出具有特定值的信号的时间戳:

on signal_update XXX
{ 
   if ($XXX == 42) {
      message * msg  = { DLC = 15 };
  
      getThisMessage(msg, 15);
  
      write("Time: %f", messageTimeNS(msg));
   }
}

那么给定信号更新,我如何获取包含的消息及其时间戳? (顺便说一句,'DLC=15' 只是编译器让我包含的最大值。我不确定正确的值。)

您可以随时使用

获取当前模拟时间
timeNowNS();

当您处于 on signal_update ... 块中时,返回的时间是导致事件处理程序执行的时间;在这种情况下,当收到包含感兴趣信号的消息时。

模拟时间在事件处理程序执行期间不会改变。