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

问题描述 投票:0回答:1

我正在研究一种使用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);
}
contiki
1个回答
0
投票

我想,首先你需要在main之前声明一个延迟变量,然后在你的csma.c中创建一个这样的函数:

Clock_time_t get_delay(void)
{
return delay;
}

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

© www.soinside.com 2019 - 2024. All rights reserved.