53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
|
#ifndef COAP_H
|
||
|
#define COAP_H
|
||
|
|
||
|
#include "Arduino.h"
|
||
|
|
||
|
namespace coap {
|
||
|
|
||
|
enum Type {
|
||
|
CONFIRMABLE = 0,
|
||
|
NON_CONFIRMABLE = 1,
|
||
|
ACKNOWELEDGMENT = 2,
|
||
|
RESET = 3
|
||
|
};
|
||
|
enum Code {
|
||
|
EMPTY = 0x00, /* 0.00 */
|
||
|
GET = 0x01, /* 0.01 */
|
||
|
POST = 0x02, /* 0.02 */
|
||
|
PUT = 0x03, /* 0.03 */
|
||
|
DELETE = 0x04, /* 0.04 */
|
||
|
CONTENT = 0x45, /* 2.05 */
|
||
|
NOT_FOUND = 0x84,/*4.04 */
|
||
|
METHOD_NOT_ALLOWED = 0x85 /* 4.05 */
|
||
|
};
|
||
|
|
||
|
class CoapMessage {
|
||
|
private:
|
||
|
char vertkl;
|
||
|
char code;
|
||
|
char id[2];
|
||
|
public:
|
||
|
uint8_t getVersion();
|
||
|
uint8_t getType();
|
||
|
uint8_t getTKL();
|
||
|
uint8_t getCode();
|
||
|
const char* getMID();
|
||
|
const char* getPayload();
|
||
|
|
||
|
int getOptionDelta(const unsigned char* option);
|
||
|
int getOptionLength(const unsigned char* option);
|
||
|
const char* getOptionValue(const unsigned char* option);
|
||
|
int getOptionValueOffset(const unsigned char* option);
|
||
|
const unsigned char* getOptions();
|
||
|
|
||
|
void getUriPath(char* output_buffer, const char* last);
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
int coap_server(char* output_buffer, const char* input_buffer, int len);
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|