thing-if SDK
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kii_thing_if.h
Go to the documentation of this file.
1 #ifndef _KII_THING_IF_
2 #define _KII_THING_IF_
3 
4 #include <kii.h>
5 
6 #define EMESSAGE_SIZE 50
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #define KII_THING_IF_TASK_NAME_STATUS_UPDATE "status_update_task"
13 
15 typedef enum kii_thing_if_state_t {
23 
28 
31 
34 
42 
52 
63 
65 typedef struct kii_thing_if_error_t {
68 
75 
82  char error_code[64];
84 
92 typedef kii_bool_t
94  (const char* alias,
95  const char* action_name,
96  const char* action_params,
97  char error[EMESSAGE_SIZE + 1]);
98 
110 typedef kii_bool_t (*KII_THING_IF_WRITER)(kii_t* kii, const char* buff);
111 
174 typedef kii_bool_t
176  (kii_t* kii,
177  KII_THING_IF_WRITER writer);
178 
214 typedef kii_bool_t
216  (kii_t *kii,
217  const char* message,
218  size_t message_length);
219 
238  char* buffer;
239 
241  size_t buffer_size;
242 
244  char* mqtt_buffer;
245 
248 
251 
256 
264 
266 
284  char* buffer;
285 
287  size_t buffer_size;
288 
290  int period;
291 
297 
301 typedef struct kii_thing_if_system_cb_t {
304  KII_LOGGER log_cb;
314 
315 typedef struct kii_thing_if_t {
330 
356 kii_bool_t init_kii_thing_if(
357  kii_thing_if_t* kii_thing_if,
358  const char* app_id,
359  const char* app_key,
360  const char* app_host,
361  kii_thing_if_command_handler_resource_t* command_handler_resource,
362  kii_thing_if_state_updater_resource_t* state_updater_resource,
363  kii_thing_if_system_cb_t* system_cb,
364  KII_JSON_RESOURCE_CB resource_cb);
365 
382 kii_bool_t start(kii_thing_if_t* kii_thing_if);
383 
420  kii_thing_if_t* kii_thing_if,
421  const char* vendor_thing_id,
422  const char* password,
423  const char* thing_type,
424  const char* firmware_version,
425  const char* layout_position,
426  const char* thing_properties,
427  kii_thing_if_error_t* error);
428 
464 kii_bool_t onboard_with_thing_id(
465  kii_thing_if_t* kii_thing_if,
466  const char* thing_id,
467  const char* password,
468  const char* thing_type,
469  const char* firmware_version,
470  const char* layout_position,
471  const char* thing_properties,
472  kii_thing_if_error_t* error);
473 
474 
508  kii_thing_if_t* kii_thing_if,
509  const char* app_id,
510  const char* app_key,
511  const char* app_host,
512  const char* thing_id,
513  const char* access_token,
514  kii_thing_if_command_handler_resource_t* command_handler_resource,
515  kii_thing_if_state_updater_resource_t* state_updater_resource,
516  kii_thing_if_system_cb_t* system_cb,
517  KII_JSON_RESOURCE_CB resource_cb);
518 
535 kii_bool_t update_firmware_version(
536  kii_thing_if_t* kii_thing_if,
537  const char* firmware_version,
538  kii_thing_if_error_t* error);
539 
559 kii_bool_t get_firmware_version(
560  kii_thing_if_t* kii_thing_if,
561  char* firmware_version,
562  size_t firmware_version_len,
563  kii_thing_if_error_t* error);
564 
581 kii_bool_t update_thing_type(
582  kii_thing_if_t* kii_thing_if,
583  const char* thing_type,
584  kii_thing_if_error_t* error);
585 
605 kii_bool_t get_thing_type(
606  kii_thing_if_t* kii_thing_if,
607  char* thing_type,
608  size_t thing_type_len,
609  kii_thing_if_error_t* error);
610 
611 #ifdef __cplusplus
612 }
613 #endif
614 
615 #endif /* _KII_THING_IF_ */
616 
struct kii_thing_if_system_cb_t kii_thing_if_system_cb_t
Definition: kii_thing_if.h:65
char * mqtt_buffer
Definition: kii_thing_if.h:244
Definition: kii_thing_if.h:236
KII_THING_IF_CUSTOM_PUSH_HANDLER custom_push_handler
Definition: kii_thing_if.h:321
Definition: kii_thing_if.h:315
KII_SOCKET_RECV_CB socket_recv_cb
Definition: kii_thing_if.h:307
Definition: kii_thing_if.h:51
Definition: kii_thing_if.h:21
Definition: kii_thing_if.h:17
kii_bool_t start(kii_thing_if_t *kii_thing_if)
kii_bool_t(* KII_THING_IF_CUSTOM_PUSH_HANDLER)(kii_t *kii, const char *message, size_t message_length)
Definition: kii_thing_if.h:216
KII_SOCKET_CONNECT_CB mqtt_socket_connect_cb
Definition: kii_thing_if.h:309
KII_THING_IF_STATE_HANDLER state_handler
Definition: kii_thing_if.h:255
Definition: kii_thing_if.h:61
kii_thing_if_error_code_t code
Definition: kii_thing_if.h:67
int http_status_code
Definition: kii_thing_if.h:74
Definition: kii_thing_if.h:41
kii_thing_if_error_code_t
Definition: kii_thing_if.h:25
int period
Definition: kii_thing_if.h:290
void(* KII_DELAY_MS)(unsigned int msec)
Definition: kii_task_callback.h:23
char error_code[64]
Definition: kii_thing_if.h:82
KII_SOCKET_SEND_CB socket_send_cb
Definition: kii_thing_if.h:306
size_t buffer_size
Definition: kii_thing_if.h:241
KII_SOCKET_CONNECT_CB socket_connect_cb
Definition: kii_thing_if.h:305
int state_update_period
Definition: kii_thing_if.h:323
#define EMESSAGE_SIZE
Definition: kii_thing_if.h:6
char * buffer
Definition: kii_thing_if.h:238
Definition: kii_thing_if.h:30
KII_SOCKET_CLOSE_CB socket_close_cb
Definition: kii_thing_if.h:308
kii_bool_t(* KII_THING_IF_STATE_HANDLER)(kii_t *kii, KII_THING_IF_WRITER writer)
Definition: kii_thing_if.h:176
kii_thing_if_state_t
Definition: kii_thing_if.h:15
size_t mqtt_buffer_size
Definition: kii_thing_if.h:247
Definition: kii_thing_if.h:19
kii_bool_t get_thing_type(kii_thing_if_t *kii_thing_if, char *thing_type, size_t thing_type_len, kii_thing_if_error_t *error)
kii_t command_handler
Definition: kii_thing_if.h:316
kii_bool_t onboard_with_thing_id(kii_thing_if_t *kii_thing_if, const char *thing_id, const char *password, const char *thing_type, const char *firmware_version, const char *layout_position, const char *thing_properties, kii_thing_if_error_t *error)
kii_bool_t(* KII_THING_IF_WRITER)(kii_t *kii, const char *buff)
Definition: kii_thing_if.h:110
kii_socket_code_t(* KII_SOCKET_CONNECT_CB)(kii_socket_context_t *socket_context, const char *host, unsigned int port)
Definition: kii_socket_callback.h:64
kii_socket_code_t(* KII_SOCKET_CLOSE_CB)(kii_socket_context_t *socket_context)
Definition: kii_socket_callback.h:115
kii_socket_code_t(* KII_SOCKET_SEND_CB)(kii_socket_context_t *socket_context, const char *buffer, size_t length)
Definition: kii_socket_callback.h:81
KII_THING_IF_ACTION_HANDLER action_handler
Definition: kii_thing_if.h:250
kii_t state_updater
Definition: kii_thing_if.h:317
KII_THING_IF_STATE_HANDLER state_handler_for_period
Definition: kii_thing_if.h:319
Definition: kii_thing_if.h:33
KII_SOCKET_SEND_CB mqtt_socket_send_cb
Definition: kii_thing_if.h:310
struct kii_thing_if_error_t kii_thing_if_error_t
kii_bool_t init_kii_thing_if_with_onboarded_thing(kii_thing_if_t *kii_thing_if, const char *app_id, const char *app_key, const char *app_host, const char *thing_id, const char *access_token, kii_thing_if_command_handler_resource_t *command_handler_resource, kii_thing_if_state_updater_resource_t *state_updater_resource, kii_thing_if_system_cb_t *system_cb, KII_JSON_RESOURCE_CB resource_cb)
KII_THING_IF_ACTION_HANDLER action_handler
Definition: kii_thing_if.h:318
KII_THING_IF_CUSTOM_PUSH_HANDLER custom_push_handler
Definition: kii_thing_if.h:263
KII_DELAY_MS delay_ms_cb
Definition: kii_thing_if.h:303
size_t buffer_size
Definition: kii_thing_if.h:287
kii_socket_code_t(* KII_SOCKET_RECV_CB)(kii_socket_context_t *socket_context, char *buffer, size_t length_to_read, size_t *out_actual_length)
Definition: kii_socket_callback.h:100
KII_TASK_CREATE task_create_cb
Definition: kii_thing_if.h:302
Definition: kii_thing_if.h:27
char * buffer
Definition: kii_thing_if.h:284
kii_bool_t update_thing_type(kii_thing_if_t *kii_thing_if, const char *thing_type, kii_thing_if_error_t *error)
KII_SOCKET_CLOSE_CB mqtt_socket_close_cb
Definition: kii_thing_if.h:312
kii_bool_t(* KII_THING_IF_ACTION_HANDLER)(const char *alias, const char *action_name, const char *action_params, char error[EMESSAGE_SIZE+1])
Definition: kii_thing_if.h:94
kii_bool_t init_kii_thing_if(kii_thing_if_t *kii_thing_if, const char *app_id, const char *app_key, const char *app_host, kii_thing_if_command_handler_resource_t *command_handler_resource, kii_thing_if_state_updater_resource_t *state_updater_resource, kii_thing_if_system_cb_t *system_cb, KII_JSON_RESOURCE_CB resource_cb)
struct kii_thing_if_t kii_thing_if_t
struct kii_thing_if_command_handler_resource_t kii_thing_if_command_handler_resource_t
KII_THING_IF_STATE_HANDLER state_handler_for_command_reaction
Definition: kii_thing_if.h:320
kii_thing_if_state_t state
Definition: kii_thing_if.h:328
kii_bool_t onboard_with_vendor_thing_id(kii_thing_if_t *kii_thing_if, const char *vendor_thing_id, const char *password, const char *thing_type, const char *firmware_version, const char *layout_position, const char *thing_properties, kii_thing_if_error_t *error)
kii_bool_t get_firmware_version(kii_thing_if_t *kii_thing_if, char *firmware_version, size_t firmware_version_len, kii_thing_if_error_t *error)
kii_task_code_t(* KII_TASK_CREATE)(const char *name, KII_TASK_ENTRY entry, void *param)
Definition: kii_task_callback.h:17
KII_LOGGER log_cb
Definition: kii_thing_if.h:304
KII_THING_IF_STATE_HANDLER state_handler
Definition: kii_thing_if.h:295
KII_SOCKET_RECV_CB mqtt_socket_recv_cb
Definition: kii_thing_if.h:311
Definition: kii_thing_if.h:282
kii_bool_t update_firmware_version(kii_thing_if_t *kii_thing_if, const char *firmware_version, kii_thing_if_error_t *error)
Definition: kii_thing_if.h:301
struct kii_thing_if_state_updater_resource_t kii_thing_if_state_updater_resource_t