我正在研究一种使用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);
}
答案 0 :(得分:0)
我认为,首先,您需要先声明一个 delay 变量,然后再在main和csma.c中创建一个如下所示的函数:
Clock_time_t get_delay(void)
{
return delay;
}
然后在路由源文件中调用 get_delay()函数。