2016-12-25 6 views
0

В программе example-unicast.c через функцию packetbuf я могу отправить строку с узла отправителя на узел получателя. Теперь вместо отправки строки я хочу отправить целочисленный массив данных. Я пытался использовать этот пакетbuf_copy() Я использую contiki 3.0. благодарим вас заранее.Как я могу отправить целочисленный массив в одноадресном примере contiki?

ответ

0

packetbuf_copyfrom() работы с другими типами массивов, а не только со строками:

int array[0] = {1, 2, 3, 4}; 
packetbuf_copyfrom(array, sizeof(array));  
... 
unicast_send(&uc, &addr); 

На стороне приемника, используйте packetbuf_dataptr() или packetbuf_copyto() для доступа к данным.

0

Вы можете использовать uip_udp_packet_send(struct uip_udp_conn *c, const void *data, int len). Код будет выглядеть следующим образом:

#define UDP_PORT 1223 
uint8_t array[4] = {1, 2, 3, 4}; 
struct uip_udp_conn *unicastcon; 
unicastcon= udp_new(&receiver_ipaddr,UIP_HTONS(UDP_PORT), NULL); 
udp_bind(unicastcon, UIP_HTONS(UDP_PORT)); 
uip_udp_packet_send(unicastcon,array,sizeof(array));