RTIMER_NOW() 和 clock_time() 之间的 Contiki 区别

Contiki difference between RTIMER_NOW() and clock_time()

我想知道

之间的区别
RTIMER_NOW() 

clock_time() 

函数。

  1. 我可以将它们 return 的值存储在一个 int 变量中吗?
  2. 它们 return 时间指的是整个模拟还是调用它们的单个微尘?如果微尘在模拟中的第一个事件发生后 5 秒开始其主要过程,那么这些函数是 return 模拟值还是(模拟值 - 5 秒)?

谢谢。

两个函数:

  • RTIMER_NOW() - returns 实时计时器 (rtimer) 中的正常运行时间以模数 rtimer 溢出值为单位。例如,在 RTIMER_ARCH_SECOND 为 32768 且溢出每 2 秒发生一次的平台上,该值将始终介于 0 和 65535 之间,包括端值。

  • clock_time() - returns 时钟滴答的正常运行时间。与 rtimer ticks 不同,它们是单调的(即始终不减)。默认情况下每秒有 128 个刻度(常量 CLOCK_SECOND 对此进行定义)。

您的其他问题:

  1. 使用 uint32_t,则值将始终适合 32 位整数。否则在 int 为 16 位的平台上,类型 rtimer_ticks_t and/or clock_time_t 的值可能不适合它。

  2. 您认为这有什么用?代码在真实节点上执行时,"simulation time"的值是多少?答案是否定的,Cooja 中的模拟节点不知道 "simulation time".