如何从csma.c文件中访问变量? - 康提基

时间:2018-06-18 22:31:19

标签: contiki

我正在研究一种使用Contiki中MAC层信息的路由机制。因此,我需要读取csma.c文件中的变量。所以,我的问题是如何在这个文件中访问变量的最佳方法是什么?

例如,我想在调度传输时获取有关平均延迟的统计信息。为此,我必须阅读函数 schedule_transmission 中的变量延迟。具体来说,如何从路由源文件中读取变量延迟

static void
schedule_transmission(struct neighbor_queue *n)
{
  clock_time_t delay;
  int backoff_exponent; /* BE in IEEE 802.15.4 */

  backoff_exponent = MIN(n->collisions, CSMA_MAX_BE);

  /* Compute max delay as per IEEE 802.15.4: 2^BE-1 backoff periods  */
  delay = ((1 << backoff_exponent) - 1) * backoff_period();
  if(delay > 0) {
    /* Pick a time for next transmission */
    delay = random_rand() % delay;
  }

  PRINTF("csma: scheduling transmission in %u ticks, NB=%u, BE=%u\n",
      (unsigned)delay, n->collisions, backoff_exponent);
  ctimer_set(&n->transmit_timer, delay, transmit_packet_list, n);
}

1 个答案:

答案 0 :(得分:0)

我认为,首先,您需要先声明一个 delay 变量,然后再在main和csma.c中创建一个如下所示的函数:

Clock_time_t get_delay(void)
{
return delay;
}

然后在路由源文件中调用 get_delay()函数。