The friendly Operating System for the Internet of Things
gcoap.h File Reference

gcoap definition More...

Detailed Description

Author
Ken Bannister kb2ma.nosp@m.@run.nosp@m.box.c.nosp@m.om

Definition in file gcoap.h.

#include "net/sock/udp.h"
#include "nanocoap.h"
#include "xtimer.h"
+ Include dependency graph for gcoap.h:

Go to the source code of this file.

Data Structures

struct  gcoap_listener
 A modular collection of resources for a server. More...
 
struct  gcoap_request_memo_t
 Memo to handle a response for a request. More...
 
struct  gcoap_state_t
 Container for the state of gcoap itself. More...
 

Macros

#define GCOAP_MSG_QUEUE_SIZE   (4)
 Size for module message queue.
 
#define GCOAP_PORT   (5683)
 Server port; use RFC 7252 default if not defined.
 
#define GCOAP_PDU_BUF_SIZE   (128)
 Size of the buffer used to build a CoAP request or response. More...
 
#define GCOAP_REQ_OPTIONS_BUF   (8)
 Size of the buffer used to write options, other than Uri-Path, in a request. More...
 
#define GCOAP_RESP_OPTIONS_BUF   (8)
 Size of the buffer used to write options in a response. More...
 
#define GCOAP_REQ_WAITING_MAX   (2)
 Maximum number of requests awaiting a response.
 
#define GCOAP_TOKENLEN_MAX   (8)
 Maximum length in bytes for a token.
 
#define GCOAP_HEADER_MAXLEN   (sizeof(coap_hdr_t) + GCOAP_TOKENLEN_MAX)
 Maximum length in bytes for a header, including the token.
 
#define GCOAP_TOKENLEN   (2)
 Length in bytes for a token; use 2 if not defined.
 
#define GCOAP_PAYLOAD_MARKER   (0xFF)
 Marks the boundary between header and payload.
 
#define GCOAP_RECV_TIMEOUT   (1 * US_PER_SEC)
 Time in usec that the event loop waits for an incoming CoAP message.
 
#define GCOAP_NON_TIMEOUT   (5000000U)
 Default time to wait for a non-confirmable response, in usec. More...
 
#define GCOAP_MSG_TYPE_TIMEOUT   (0x1501)
 Identifies waiting timed out for a response to a sent message. More...
 
#define GCOAP_MSG_TYPE_INTR   (0x1502)
 Identifies a request to interrupt listening for an incoming message on a sock. More...
 
States for the memo used to track waiting for a response
#define GCOAP_MEMO_UNUSED   (0)
 This memo is unused.
 
#define GCOAP_MEMO_WAIT   (1)
 Request sent; awaiting response.
 
#define GCOAP_MEMO_RESP   (2)
 Got response.
 
#define GCOAP_MEMO_TIMEOUT   (3)
 Timeout waiting for response.
 
#define GCOAP_MEMO_ERR   (4)
 Error processing response packet.
 

Typedefs

typedef struct gcoap_listener gcoap_listener_t
 A modular collection of resources for a server.
 
typedef void(* gcoap_resp_handler_t) (unsigned req_state, coap_pkt_t *pdu)
 Handler function for a server response, including the state for the originating request. More...
 

Functions

kernel_pid_t gcoap_init (void)
 Initializes the gcoap thread and device. More...
 
void gcoap_register_listener (gcoap_listener_t *listener)
 Starts listening for resource paths. More...
 
int gcoap_req_init (coap_pkt_t *pdu, uint8_t *buf, size_t len, unsigned code, char *path)
 Initializes a CoAP request PDU on a buffer. More...
 
ssize_t gcoap_finish (coap_pkt_t *pdu, size_t payload_len, unsigned format)
 Finishes formatting a CoAP PDU after the payload has been written. More...
 
static ssize_t gcoap_request (coap_pkt_t *pdu, uint8_t *buf, size_t len, unsigned code, char *path)
 Writes a complete CoAP request PDU when there is not a payload. More...
 
size_t gcoap_req_send2 (uint8_t *buf, size_t len, sock_udp_ep_t *remote, gcoap_resp_handler_t resp_handler)
 Sends a buffer containing a CoAP request to the provided endpoint. More...
 
size_t gcoap_req_send (uint8_t *buf, size_t len, ipv6_addr_t *addr, uint16_t port, gcoap_resp_handler_t resp_handler)
 Sends a buffer containing a CoAP request to the provided host/port. More...
 
int gcoap_resp_init (coap_pkt_t *pdu, uint8_t *buf, size_t len, unsigned code)
 Initializes a CoAP response packet on a buffer. More...
 
static ssize_t gcoap_response (coap_pkt_t *pdu, uint8_t *buf, size_t len, unsigned code)
 Writes a complete CoAP response PDU when there is no payload. More...
 
void gcoap_op_state (uint8_t *open_reqs)
 Provides important operational statistics. More...