blob: d473ab8dc4e61a256e2516bb3b3c54aecf6eb8ef [file] [log] [blame]
liubin281ac462023-07-19 14:22:54 +08001//**********************
2#include "ql/ql_dev.h"
3#include "mbtk_type.h"
4#include "mbtk_info_api.h"
5
6//**********************
7
8mbtk_info_handle_t* ql_info_handle = NULL;
9int ql_info_handle_num = 0;
10static bool inited = FALSE;
11
12//**********************
13QL_DEV_ERROR_CODE ql_dev_init()
14{
15 if(!inited && ql_info_handle == NULL)
16 {
17 ql_info_handle = mbtk_info_handle_get();
18 if(ql_info_handle)
19 {
20 ql_info_handle_num++;
21 inited = TRUE;
22 return QL_DEV_SUCCESS;
23 } else {
24 LOGE("mbtk_info_handle_get() fail.");
25 return QL_DEV_GENERIC_FAILURE;
26 }
27 } else {
28 if(!inited) {
29 ql_info_handle_num++;
30 inited = TRUE;
31 }
32 return QL_DEV_SUCCESS;
33 }
34}
35
36QL_DEV_ERROR_CODE ql_dev_release()
37{
38 if(ql_info_handle)
39 {
40 LOGD("ql_info_handle_num = %d", ql_info_handle_num);
41 if(ql_info_handle_num == 1) { // 最后一个引用,可释放。
42 int ret = mbtk_info_handle_free(&ql_info_handle);
43 if(ret) {
44 LOGE("mbtk_info_handle_free() fail.");
45 return QL_DEV_GENERIC_FAILURE;
46 }
47 else
48 {
49 ql_info_handle_num = 0;
50 ql_info_handle = NULL;
51 return QL_DEV_SUCCESS;
52 }
53 } else {
54 ql_info_handle_num--;
55 return QL_DEV_SUCCESS;
56 }
57 }
58 else
59 {
60 LOGE("DEV handle not inited.");
61 return QL_DEV_GENERIC_FAILURE;
62 }
63}
64
65QL_DEV_ERROR_CODE ql_dev_get_imei(char* imei)
66{
67 if(ql_info_handle == NULL || imei == NULL)
68 {
69 LOGE("ARG error.");
70 return QL_DEV_GENERIC_FAILURE;
71 }
72
73 if(mbtk_imei_get(ql_info_handle, imei)) {
74 return QL_DEV_GENERIC_FAILURE;
75 } else {
76 return QL_DEV_SUCCESS;
77 }
78}
79
80QL_DEV_ERROR_CODE ql_dev_get_firmware_version(char* version)
81{
82 if(ql_info_handle == NULL || version == NULL)
83 {
84 LOGE("ARG error.");
85 return QL_DEV_GENERIC_FAILURE;
86 }
87
88 if(mbtk_version_get(ql_info_handle, version)) {
89 return QL_DEV_GENERIC_FAILURE;
90 } else {
91 return QL_DEV_SUCCESS;
92 }
93}
94
95QL_DEV_ERROR_CODE ql_dev_get_model(char* model)
96{
97 if(ql_info_handle == NULL || model == NULL)
98 {
99 LOGE("ARG error.");
100 return QL_DEV_GENERIC_FAILURE;
101 }
102
103 if(mbtk_model_get(ql_info_handle, model)) {
104 return QL_DEV_GENERIC_FAILURE;
105 } else {
106 return QL_DEV_SUCCESS;
107 }
108}
109
110QL_DEV_ERROR_CODE ql_dev_get_sn(char* sn)
111{
112 if(ql_info_handle == NULL || sn == NULL)
113 {
114 LOGE("ARG error.");
115 return QL_DEV_GENERIC_FAILURE;
116 }
117
118 if(mbtk_sn_get(ql_info_handle, sn)) {
119 return QL_DEV_GENERIC_FAILURE;
120 } else {
121 return QL_DEV_SUCCESS;
122 }
123}
124
125QL_DEV_ERROR_CODE ql_dev_set_modem_fun(QL_DEV_MODEM_FUNCTION function, int rst)
126{
127 if(ql_info_handle == NULL)
128 {
129 LOGE("ARG error.");
130 return QL_DEV_GENERIC_FAILURE;
131 }
132 mbtk_modem_info_t modem;
133 modem.rst = rst;
134 switch (function)
135 {
136 case QL_DEV_MODEM_MIN_FUN:
137 modem.fun = MBTK_DEV_MODEM_MIN_FUN;
138 break;
139 case QL_DEV_MODEM_FULL_FUN:
140 modem.fun = MBTK_DEV_MODEM_FULL_FUN;
141 break;
142 case QL_DEV_MODEM_DISABLE_RECEIVE_RF_CIRCUITS:
143 modem.fun = MBTK_DEV_MODEM_DISABLE_RECEIVE_RF_CIRCUITS;
144 break;
145 case QL_DEV_MODEM_DISABLE_TRANSMIT_AND_RECEIVE_RF_CIRCUITS:
146 modem.fun = MBTK_DEV_MODEM_DISABLE_TRANSMIT_AND_RECEIVE_RF_CIRCUITS;
147 break;
148 case QL_DEV_MODEM_DISABLE_SIM:
149 modem.fun = MBTK_DEV_MODEM_DISABLE_SIM;
150 break;
151 case QL_DEV_MODEM_TURN_OFF_FULL_SECONDARY_RECEIVE:
152 modem.fun = MBTK_DEV_MODEM_TURN_OFF_FULL_SECONDARY_RECEIVE;
153 break;
154 default:
155 break;
156 }
157 if(mbtk_set_modem_fun(ql_info_handle, &modem)) {
158 return QL_DEV_GENERIC_FAILURE;
159 } else {
160 return QL_DEV_SUCCESS;
161 }
162}
163
164QL_DEV_ERROR_CODE ql_dev_get_modem_fun(int *function)
165{
166 if(ql_info_handle == NULL || function == NULL)
167 {
168 LOGE("ARG error.");
169 return QL_DEV_GENERIC_FAILURE;
170 }
171
172 if(mbtk_get_modem_fun(ql_info_handle, function)) {
173 return QL_DEV_GENERIC_FAILURE;
174 } else {
175 return QL_DEV_SUCCESS;
176 }
177}
178
179//**********************