我正在使用 Contiki-ng 以及示例 udp-server 和 udp-client。我想做几件事: 1-我希望客户端节点嗅探数据包,然后在它完成后将数据包发送到服务器。我设法做到了,但有些东西我不明白:a-当我在 udp-client 中开始嗅探时,通过将这一位添加到代码中:
radio_value_t radio_rx_mode;
NETSTACK_RADIO.get_value(RADIO_PARAM_RX_MODE, &radio_rx_mode);
NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, radio_rx_mode & (~RADIO_RX_MODE_ADDRESS_FILTER));
这似乎只在 udp-client 应用程序级别捕获数据包,当我增加 QUEUEBUF_CONF_NUM 以允许服务器接收这些数据包时,它只捕获节点自己的数据包。知道为什么会这样吗?
b-当我在 input_packet 函数中的 csma.c 文件中执行相同操作时,它可以工作并且确实捕获了所有数据包,但是,我不确定如何设置以便一旦在 csma 级别捕获数据包 a节点可以从应用程序级别发送数据包吗?
2- 只是一个简单的问题,以确认我所做的是否正确,我想在此示例中启用 ReTx,因此我将其添加到项目配置文件中:
#define CSMA_MAX_FRAME_RETRIES 7
这会启用数据包的重传吗?还是在做其他事情?
感谢您在这方面的任何帮助。谢谢你。