C Device Virtualization API Reference for Oracle Internet of Things Cloud Service Client Software Library. Release 21.1.1.0.0-3. E70343-26
|
00001 /* 00002 * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. 00003 * 00004 * This software is dual-licensed to you under the MIT License (MIT) and 00005 * the Universal Permissive License (UPL). See the LICENSE file in the root 00006 * directory for license terms. You may choose either license, or both. 00007 */ 00008 00014 #ifndef IOTCS_DEVICE_VIRTUAL_H 00015 #define IOTCS_DEVICE_VIRTUAL_H 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 #include "iotcs.h" 00022 #include "advanced/iotcs_message.h" 00023 00028 typedef struct iotcs_virtual_device_handle_t* iotcs_virtual_device_handle; 00029 00034 typedef struct iotcs_named_value_t { 00035 const char *name; 00036 iotcs_typed_value typed_value; 00037 struct iotcs_named_value_t *next; 00038 } iotcs_named_value; 00045 typedef struct iotcs_virtual_device_change_event_t { 00046 iotcs_named_value named_value; 00047 iotcs_virtual_device_handle virtual_device_handle; 00048 } iotcs_virtual_device_change_event; 00055 typedef struct iotcs_virtual_device_error_event_t { 00056 iotcs_named_value named_value; 00057 iotcs_virtual_device_handle virtual_device_handle; 00058 const char *message; 00059 } iotcs_virtual_device_error_event; 00066 typedef void (*iotcs_virtual_device_changed_callback)(iotcs_virtual_device_change_event *event); 00067 00074 typedef void (*iotcs_action_callback)(iotcs_virtual_device_handle virtual_device_handle, 00075 iotcs_typed_value argument); 00076 00081 typedef void (*iotcs_virtual_device_on_action_callback)(iotcs_virtual_device_handle device_handle, char *action, iotcs_named_value *argument); 00082 00083 00091 typedef void (*iotcs_virtual_device_error_callback)(iotcs_virtual_device_error_event *event); 00092 00097 typedef struct iotcs_device_model_handle_t* iotcs_device_model_handle; 00098 00103 typedef struct iotcs_alert_handle_t* iotcs_alert_handle; 00104 00109 typedef struct iotcs_data_handle_t* iotcs_data_handle; 00110 00119 iotcs_result iotcs_get_device_model(const char *device_model, iotcs_device_model_handle *device_model_handle); 00120 00126 const char * iotcs_get_device_model_name(iotcs_device_model_handle device_model_handle); 00127 00133 const char * iotcs_get_device_model_description(iotcs_device_model_handle device_model_handle); 00134 00140 const char * iotcs_get_device_model_urn(iotcs_device_model_handle device_model_handle); 00141 00146 void iotcs_free_device_model(iotcs_device_model_handle device_model_handle); 00147 00158 iotcs_result iotcs_create_virtual_device_handle(const char *endpoint_id, iotcs_device_model_handle device_model_handle, iotcs_virtual_device_handle *virtual_device_handle); 00159 00164 void iotcs_free_virtual_device_handle(iotcs_virtual_device_handle virtual_device_handle); 00165 00179 iotcs_result iotcs_virtual_device_set(iotcs_virtual_device_handle virtual_device_handle, const char* attribute_name, const void* value, size_t length); 00180 00181 #if defined IOTCS_IMPLICIT_EDGE_COMPUTING || defined IOTCS_DOXYGEN 00182 00195 iotcs_result iotcs_virtual_device_offer_boolean(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_bool value); 00196 00210 iotcs_result iotcs_virtual_device_offer_integer(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, int value); 00211 00225 iotcs_result iotcs_virtual_device_offer_float(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, float value); 00226 00240 iotcs_result iotcs_virtual_device_offer_date_time(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_date_time value); 00241 #endif 00242 00253 iotcs_result iotcs_virtual_device_get_string(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, const char **value); 00254 00267 iotcs_result iotcs_virtual_device_set_string(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, const char *value); 00268 00279 iotcs_result iotcs_virtual_device_get_integer(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, int *value); 00280 00293 iotcs_result iotcs_virtual_device_set_integer(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, int value); 00294 00305 iotcs_result iotcs_virtual_device_get_float(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, float *value); 00306 00319 iotcs_result iotcs_virtual_device_set_float(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, float value); 00320 00331 iotcs_result iotcs_virtual_device_get_boolean(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_bool *value); 00332 00345 iotcs_result iotcs_virtual_device_set_boolean(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_bool value); 00346 00357 iotcs_result iotcs_virtual_device_get_date_time(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_date_time *value); 00358 00371 iotcs_result iotcs_virtual_device_set_date_time(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_date_time value); 00372 00378 void iotcs_virtual_device_set_on_change(iotcs_virtual_device_handle virtual_device_handle, iotcs_virtual_device_changed_callback callback); 00379 00389 iotcs_result iotcs_virtual_device_attribute_set_on_change(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_virtual_device_changed_callback callback); 00390 00396 void iotcs_virtual_device_set_on_error(iotcs_virtual_device_handle virtual_device_handle, iotcs_virtual_device_error_callback callback); 00397 00407 iotcs_result iotcs_virtual_device_attribute_set_on_error(iotcs_virtual_device_handle virtual_device_handle, const char *attribute_name, iotcs_virtual_device_error_callback callback); 00408 00418 iotcs_result iotcs_virtual_device_set_callback(iotcs_virtual_device_handle virtual_device_handle, const char *action_name, iotcs_action_callback callback); 00419 00429 iotcs_result iotcs_virtual_device_set_on_action_callback(iotcs_virtual_device_handle virtual_device_handle, const char *action_name, iotcs_virtual_device_on_action_callback callback); 00430 00440 iotcs_result iotcs_virtual_device_set_global_on_action_callback(iotcs_virtual_device_handle virtual_device_handle, iotcs_virtual_device_on_action_callback callback); 00441 00446 void iotcs_virtual_device_start_update(iotcs_virtual_device_handle virtual_device_handle); 00447 00452 void iotcs_virtual_device_finish_update(iotcs_virtual_device_handle virtual_device_handle); 00453 00464 iotcs_result iotcs_virtual_device_create_alert_handle(iotcs_virtual_device_handle virtual_device_handle, const char *alert_name, iotcs_alert_handle *alert_handle); 00465 00470 void iotcs_virtual_device_free_alert_handle(iotcs_alert_handle alert_handle); 00471 00484 iotcs_result iotcs_alert_raise(iotcs_alert_handle alert_handle); 00485 00492 void iotcs_alert_set_on_error(iotcs_alert_handle alert_handle, iotcs_virtual_device_error_callback callback); 00493 00505 iotcs_result iotcs_alert_set(iotcs_alert_handle alert_handle, const char* field, const void* value, size_t length); 00506 00516 iotcs_result iotcs_alert_set_string(iotcs_alert_handle alert_handle, const char *field, const char *value); 00517 00527 iotcs_result iotcs_alert_set_integer(iotcs_alert_handle alert_handle, const char *field, int value); 00528 00538 iotcs_result iotcs_alert_set_float(iotcs_alert_handle alert_handle, const char *field, float value); 00539 00549 iotcs_result iotcs_alert_set_boolean(iotcs_alert_handle alert_handle, const char *field, iotcs_bool value); 00550 00560 iotcs_result iotcs_alert_set_date_time(iotcs_alert_handle alert_handle, const char *field, iotcs_date_time value); 00561 00571 iotcs_result iotcs_alert_set_storage_object(iotcs_alert_handle alert_handle, const char *field, 00572 iotcs_storage_object_handle value); 00573 00574 #if !defined IOTCS_DOXYGEN 00575 00584 iotcs_result iotcs_alert_set_external_object(iotcs_alert_handle alert_handle, const char *field, 00585 iotcs_external_object_handle value); 00586 #endif 00587 00598 iotcs_result iotcs_virtual_device_create_data_handle(iotcs_virtual_device_handle virtual_device_handle, const char *data_name, iotcs_data_handle *data_handle); 00599 00612 iotcs_result iotcs_virtual_device_set_storage_object(iotcs_virtual_device_handle virtual_device_handle, 00613 const char *attribute_name, iotcs_storage_object_handle value); 00614 00615 #if !defined IOTCS_DOXYGEN 00616 00628 iotcs_result iotcs_virtual_device_set_external_object(iotcs_virtual_device_handle virtual_device_handle, 00629 const char *attribute_name, iotcs_external_object_handle value); 00630 #endif 00631 00644 iotcs_result iotcs_virtual_device_get_storage_object(iotcs_virtual_device_handle virtual_device_handle, 00645 const char *attribute_name, iotcs_storage_object_handle *value); 00646 00647 #if !defined IOTCS_DOXYGEN 00648 00660 iotcs_result iotcs_virtual_device_get_external_object(iotcs_virtual_device_handle virtual_device_handle, 00661 const char *attribute_name, iotcs_external_object_handle *value); 00662 #endif 00663 00668 void iotcs_virtual_device_free_data_handle(iotcs_data_handle data_handle); 00669 00682 iotcs_result iotcs_data_submit(iotcs_data_handle data_handle); 00683 00695 iotcs_result iotcs_data_set(iotcs_data_handle data_handle, const char* field, const void* value, size_t length); 00696 00703 void iotcs_data_set_on_error(iotcs_data_handle data_handle, iotcs_virtual_device_error_callback callback); 00704 00714 iotcs_result iotcs_data_set_string(iotcs_data_handle data_handle, const char *field, const char *value); 00715 00725 iotcs_result iotcs_data_set_integer(iotcs_data_handle data_handle, const char *field, int value); 00726 00736 iotcs_result iotcs_data_set_float(iotcs_data_handle data_handle, const char *field, float value); 00737 00747 iotcs_result iotcs_data_set_boolean(iotcs_data_handle data_handle, const char *field, iotcs_bool value); 00748 00758 iotcs_result iotcs_data_set_date_time(iotcs_data_handle data_handle, const char *field, iotcs_date_time value); 00759 00770 iotcs_result iotcs_data_set_storage_object(iotcs_data_handle data_handle, const char *field, 00771 iotcs_storage_object_handle value); 00772 00773 #if !defined IOTCS_DOXYGEN 00774 00784 iotcs_result iotcs_data_set_external_object(iotcs_data_handle data_handle, const char *field, 00785 iotcs_external_object_handle value); 00786 #endif 00787 #ifdef __cplusplus 00788 } 00789 #endif 00790 00791 #endif /* IOTCS_DEVICE_VIRTUAL_H */ 00792