Contiki:广播整数数组

时间:2015-11-09 11:50:56

标签: c arrays embedded contiki

我想使用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文件。

任何人都有想法,我的错误可能在哪里?

谢谢!

1 个答案:

答案 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));