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