1 /*
2 * Copyright (C) 2015-2018 Alibaba Group Holding Limited
3 */
4 #include "iotx_dm_internal.h"
5
6 #ifdef DEVICE_MODEL_ENABLED
7
8 static dm_opt_ctx g_dm_opt = { 0, 0, 1, 1, 1, 60 * 1000, 0 };
9
dm_opt_set(dm_opt_t opt,void * data)10 int dm_opt_set(dm_opt_t opt, void *data)
11 {
12 int res = SUCCESS_RETURN;
13
14 if (data == NULL) {
15 return FAIL_RETURN;
16 }
17
18 switch (opt) {
19 #if !defined(DEVICE_MODEL_RAWDATA_SOLO)
20 case DM_OPT_DOWNSTREAM_PROPERTY_POST_REPLY:
21 {
22 int opt = *(int *)(data);
23 g_dm_opt.prop_post_reply_opt = opt;
24 }
25 break;
26 case DM_OPT_DOWNSTREAM_EVENT_POST_REPLY:
27 {
28 int opt = *(int *)(data);
29 g_dm_opt.event_post_reply_opt = opt;
30 }
31 break;
32 case DM_OPT_UPSTREAM_PROPERTY_SET_REPLY:
33 {
34 int opt = *(int *)(data);
35 g_dm_opt.prop_set_reply_opt = opt;
36 }
37 break;
38 #endif
39 #ifdef DEVICE_MODEL_SHADOW
40 case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_GET_REPLY:
41 {
42 int opt = *(int *)(data);
43 g_dm_opt.prop_desired_get_reply_opt = opt;
44 }
45 break;
46 case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_DELETE_REPLY:
47 {
48 int opt = *(int *)(data);
49 g_dm_opt.prop_desired_delete_reply_opt = opt;
50 }
51 break;
52 #endif
53 case DM_OPT_FOTA_RETRY_TIMEOUT_MS:
54 {
55 int opt = *(int *)(data);
56 g_dm_opt.fota_retry_timeout_ms = opt;
57 }
58 break;
59 case DM_OPT_PROXY_PRODUCT_REGISTER:
60 {
61 int opt = *(int *)(data);
62 g_dm_opt.proxy_product_register = opt;
63 }
64 break;
65 default:
66 {
67 res = FAIL_RETURN;
68 }
69 break;
70 }
71
72 return res;
73 }
74
dm_opt_get(dm_opt_t opt,void * data)75 int dm_opt_get(dm_opt_t opt, void *data)
76 {
77 int res = SUCCESS_RETURN;
78
79 if (data == NULL) {
80 return FAIL_RETURN;
81 }
82
83 switch (opt) {
84 #if !defined(DEVICE_MODEL_RAWDATA_SOLO)
85 case DM_OPT_DOWNSTREAM_PROPERTY_POST_REPLY:
86 {
87 *(int *)(data) = g_dm_opt.prop_post_reply_opt;
88 }
89 break;
90 case DM_OPT_DOWNSTREAM_EVENT_POST_REPLY:
91 {
92 *(int *)(data) = g_dm_opt.event_post_reply_opt;
93 }
94 break;
95 case DM_OPT_UPSTREAM_PROPERTY_SET_REPLY:
96 {
97 *(int *)(data) = g_dm_opt.prop_set_reply_opt;
98 }
99 break;
100 #endif
101 #ifdef DEVICE_MODEL_SHADOW
102 case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_DELETE_REPLY:
103 {
104 *(int *)(data) = g_dm_opt.prop_desired_delete_reply_opt;
105 }
106 break;
107 case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_GET_REPLY:
108 {
109 *(int *)(data) = g_dm_opt.prop_desired_get_reply_opt;
110 }
111 break;
112 #endif
113 case DM_OPT_FOTA_RETRY_TIMEOUT_MS:
114 {
115 *(int *)(data) = g_dm_opt.fota_retry_timeout_ms;
116 }
117 break;
118 case DM_OPT_PROXY_PRODUCT_REGISTER:
119 {
120 *(int *)(data) = g_dm_opt.proxy_product_register;
121 }
122 break;
123 default:
124 {
125 res = FAIL_RETURN;
126 }
127 break;
128 }
129
130 return res;
131 }
132 #endif
133