#ifndef WAKAAMA_CLIENT_H_ #define WAKAAMA_CLIENT_H_ #include #include #include "connection.h" #define OBJ_COUNT 4 extern "C" { extern lwm2m_object_t * get_object_device(void); extern void free_object_device(lwm2m_object_t * objectP); extern lwm2m_object_t * get_server_object(void); extern void free_server_object(lwm2m_object_t * object); extern lwm2m_object_t * get_security_object(const char * uri); extern void free_security_object(lwm2m_object_t * objectP); extern char * get_server_uri(lwm2m_object_t * objectP, uint16_t secObjInstID); extern lwm2m_object_t * get_test_object(void); extern void free_test_object(lwm2m_object_t * object); }; typedef struct { lwm2m_object_t * securityObjP; connection_t * connList; EthernetUDP * udp; } client_data_t; class ArduinoClient { public: ArduinoClient(const char *uri) : uri(uri) {}; void init(); ~ArduinoClient(); void doWorkStep(); private: const char * uri; const uint16_t localPort = 56830; const char * name = "arduino_lwm2m_client"; time_t step_delay = 60; int result; char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; client_data_t data; lwm2m_context_t * lwm2mH = nullptr; lwm2m_object_t * objArray[OBJ_COUNT]; }; #endif