将节点置于混杂模式
Put node in promiscous mode
如何捕获contiki中特定节点无线电范围内的所有数据包?
在阅读 contiki 邮件列表和 contiki github 时,我可以看到人们说要对 core/dev/cc2420.c 文件进行更改。有些人谈到设置或重置 CC2420_CONF_AUTOACK 的值。
我在任何地方都找不到有关将节点置于混杂模式的正确信息。请帮忙。
我猜你的意思是禁用硬件地址过滤。在 Contiki 中有一个收音机 API:
#include "dev/radio.h"
// ...
radio_value_t radio_rx_mode;
if(NETSTACK_RADIO.get_value(RADIO_PARAM_RX_MODE, &radio_rx_mode) == RADIO_RESULT_OK) {
radio_rx_mode &= ~RADIO_RX_MODE_ADDRESS_FILTER;
NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, radio_rx_mode);
}
您也可以通过删除 rx_mode
的 RADIO_RX_MODE_AUTOACK
位来禁用自动确认,但这是不同的设置。
如何捕获contiki中特定节点无线电范围内的所有数据包?
在阅读 contiki 邮件列表和 contiki github 时,我可以看到人们说要对 core/dev/cc2420.c 文件进行更改。有些人谈到设置或重置 CC2420_CONF_AUTOACK 的值。
我在任何地方都找不到有关将节点置于混杂模式的正确信息。请帮忙。
我猜你的意思是禁用硬件地址过滤。在 Contiki 中有一个收音机 API:
#include "dev/radio.h"
// ...
radio_value_t radio_rx_mode;
if(NETSTACK_RADIO.get_value(RADIO_PARAM_RX_MODE, &radio_rx_mode) == RADIO_RESULT_OK) {
radio_rx_mode &= ~RADIO_RX_MODE_ADDRESS_FILTER;
NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, radio_rx_mode);
}
您也可以通过删除 rx_mode
的 RADIO_RX_MODE_AUTOACK
位来禁用自动确认,但这是不同的设置。