mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
examples: port microcoap example to sock
This commit is contained in:
parent
f6413ee5f5
commit
27bb45fa79
@ -25,7 +25,7 @@ USEMODULE += gnrc_rpl
|
|||||||
USEMODULE += gnrc_icmpv6_echo
|
USEMODULE += gnrc_icmpv6_echo
|
||||||
|
|
||||||
#
|
#
|
||||||
USEMODULE += gnrc_conn_udp
|
USEMODULE += gnrc_sock_udp
|
||||||
|
|
||||||
USEPKG += microcoap
|
USEPKG += microcoap
|
||||||
CFLAGS += -DMICROCOAP_DEBUG
|
CFLAGS += -DMICROCOAP_DEBUG
|
||||||
|
@ -21,9 +21,6 @@
|
|||||||
#include "msg.h"
|
#include "msg.h"
|
||||||
#include "xtimer.h"
|
#include "xtimer.h"
|
||||||
|
|
||||||
#define MAIN_QUEUE_SIZE (8)
|
|
||||||
static msg_t _main_msg_queue[MAIN_QUEUE_SIZE];
|
|
||||||
|
|
||||||
void microcoap_server_loop(void);
|
void microcoap_server_loop(void);
|
||||||
|
|
||||||
/* import "ifconfig" shell command, used for printing addresses */
|
/* import "ifconfig" shell command, used for printing addresses */
|
||||||
@ -33,9 +30,6 @@ int main(void)
|
|||||||
{
|
{
|
||||||
puts("RIOT microcoap example application");
|
puts("RIOT microcoap example application");
|
||||||
|
|
||||||
/* microcoap_server uses conn which uses gnrc which needs a msg queue */
|
|
||||||
msg_init_queue(_main_msg_queue, MAIN_QUEUE_SIZE);
|
|
||||||
|
|
||||||
puts("Waiting for address autoconfiguration...");
|
puts("Waiting for address autoconfiguration...");
|
||||||
xtimer_sleep(3);
|
xtimer_sleep(3);
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "net/af.h"
|
#include "net/af.h"
|
||||||
#include "net/conn/udp.h"
|
#include "net/sock/udp.h"
|
||||||
|
|
||||||
#ifdef MICROCOAP_DEBUG
|
#ifdef MICROCOAP_DEBUG
|
||||||
#define ENABLE_DEBUG (1)
|
#define ENABLE_DEBUG (1)
|
||||||
@ -33,18 +33,18 @@ coap_rw_buffer_t scratch_buf = { scratch_raw, sizeof(scratch_raw) };
|
|||||||
void microcoap_server_loop(void)
|
void microcoap_server_loop(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint8_t laddr[16] = { 0 };
|
static const sock_udp_ep_t local = { .family = AF_INET6,
|
||||||
uint8_t raddr[16] = { 0 };
|
.port = COAP_SERVER_PORT };
|
||||||
size_t raddr_len;
|
sock_udp_ep_t remote;
|
||||||
uint16_t rport;
|
|
||||||
|
|
||||||
conn_udp_t conn;
|
sock_udp_t sock;
|
||||||
|
|
||||||
int rc = conn_udp_create(&conn, laddr, sizeof(laddr), AF_INET6, COAP_SERVER_PORT);
|
int rc = sock_udp_create(&sock, &local, NULL, 0);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
DEBUG("Waiting for incoming UDP packet...\n");
|
DEBUG("Waiting for incoming UDP packet...\n");
|
||||||
rc = conn_udp_recvfrom(&conn, (char *)_udp_buf, sizeof(_udp_buf), raddr, &raddr_len, &rport);
|
rc = sock_udp_recv(&sock, (char *)_udp_buf, sizeof(_udp_buf),
|
||||||
|
SOCK_NO_TIMEOUT, &remote);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
DEBUG("Error in conn_udp_recvfrom(). rc=%u\n", rc);
|
DEBUG("Error in conn_udp_recvfrom(). rc=%u\n", rc);
|
||||||
continue;
|
continue;
|
||||||
@ -82,7 +82,7 @@ void microcoap_server_loop(void)
|
|||||||
coap_dumpPacket(&rsppkt);
|
coap_dumpPacket(&rsppkt);
|
||||||
|
|
||||||
/* send reply via UDP */
|
/* send reply via UDP */
|
||||||
rc = conn_udp_sendto(_udp_buf, rsplen, NULL, 0, raddr, raddr_len, AF_INET6, COAP_SERVER_PORT, rport);
|
rc = sock_udp_send(&sock, _udp_buf, rsplen, &remote);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
DEBUG("Error sending CoAP reply via udp; %u\n", rc);
|
DEBUG("Error sending CoAP reply via udp; %u\n", rc);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user