如何在Contiki 2.7 仿真中更改参数?
How to change parameters in Contiki 2.7 simulation?
我开始在 Contiki 上学习 OS。我正在尝试分析不同部署场景下的一些参数,如能效、延迟、交付率等。首先,我应该更改一些参数,例如:
- 信道检查速率为 16/s(我使用 rpl-sink)
- RPL操作模式改为NO_DOWNWARD_ROUTE
- 发送间隔为5s
- UDP 应用程序数据包大小为 100 字节
你能告诉我如何在 Contiki 2.7 中更改这些参数吗?
我的答案供参考:
Channel check rate to 16/s (I use rpl-sink)
#undef NETSTACK_RDC_CHANNEL_CHECK_RATE
#define NETSTACK_RDC_CHANNEL_CHECK_RATE 16
RPL mode of operation to NO_DOWNWARD_ROUTE
这叫非存储模式。要启用它:
#define RPL_CONF_WITH_NON_STORING 1
Send interval to 5s
取决于应用;此参数没有标准名称。如果我们谈论 ipv6/rpl-collect/
,您应该 #define PERIOD 5
在 project-conf.h
。
UDP application packet size to 100 Bytes
payload构建于udp-sender.c
:
uip_udp_packet_sendto(client_conn, &msg, sizeof(msg),
&server_ipaddr, UIP_HTONS(UDP_SERVER_PORT));
因此,为了更改负载大小,您需要更改名为 msg
的本地定义的匿名 struct
变量的大小。例如,您可以向其中添加一些虚拟字段。
struct {
uint8_t seqno;
uint8_t for_alignment;
struct collect_view_data_msg msg;
char dummy[100 - 2 - sizeof(struct collect_view_data_msg)];
} msg;
我开始在 Contiki 上学习 OS。我正在尝试分析不同部署场景下的一些参数,如能效、延迟、交付率等。首先,我应该更改一些参数,例如:
- 信道检查速率为 16/s(我使用 rpl-sink)
- RPL操作模式改为NO_DOWNWARD_ROUTE
- 发送间隔为5s
- UDP 应用程序数据包大小为 100 字节
你能告诉我如何在 Contiki 2.7 中更改这些参数吗?
我的答案供参考:
Channel check rate to 16/s (I use rpl-sink)
#undef NETSTACK_RDC_CHANNEL_CHECK_RATE
#define NETSTACK_RDC_CHANNEL_CHECK_RATE 16
RPL mode of operation to NO_DOWNWARD_ROUTE
这叫非存储模式。要启用它:
#define RPL_CONF_WITH_NON_STORING 1
Send interval to 5s
取决于应用;此参数没有标准名称。如果我们谈论 ipv6/rpl-collect/
,您应该 #define PERIOD 5
在 project-conf.h
。
UDP application packet size to 100 Bytes
payload构建于udp-sender.c
:
uip_udp_packet_sendto(client_conn, &msg, sizeof(msg),
&server_ipaddr, UIP_HTONS(UDP_SERVER_PORT));
因此,为了更改负载大小,您需要更改名为 msg
的本地定义的匿名 struct
变量的大小。例如,您可以向其中添加一些虚拟字段。
struct {
uint8_t seqno;
uint8_t for_alignment;
struct collect_view_data_msg msg;
char dummy[100 - 2 - sizeof(struct collect_view_data_msg)];
} msg;