我想使用Contiki OS中的广播功能广播一个整数数组。但是,当给出整数数组作为输入时,packetbuf_copyfrom()函数似乎对我不起作用。当监控消息通过Cooja的“无线电消息工具”时,数据包似乎是空的。
This就像使用char数组作为参数和like that一样,尝试完全相同,只使用整数数组。
根据Contiki文档,函数需要一个void指针并调用memcpy函数,这对于整数来说应该不是问题吗?
int packetbuf_copyfrom(const void *from, uint16_t len)
{
uint16_t l;
packetbuf_clear();
l = len > PACKETBUF_SIZE? PACKETBUF_SIZE: len;
memcpy(packetbufptr, from, l);
buflen = l;
return l;
}
我正在使用
/contiki/examples/rime/example-broadcast.c
使用contiki 2.7在Cooja模拟器中使用Z1 Motes文件。
任何人都有想法,我的错误可能在哪里?
谢谢!
答案 0 :(得分:0)
我不知道Contiki,但只要你正确地调用packetbuf_copyfrom
,代码就好了。请注意,该工具尝试将数据包内容解码为ASCII,因此显示Hello67890
但整数不是ASCII,因此显示为........
。
将功能称为:
int myArray[10]= {1,2,3,4,5,6,7,8,9,0};
packetbuf_copyfrom(myArray, sizeof(myArray));