blob: 12a3c616288c5f8a865c69020f71d50c056b4643 [file] [log] [blame]
wangyouqiang16aadb02024-04-12 15:47:13 +08001#if 1
2#include <stdio.h>
3//#include <stdlib.h>
4//#include <unistd.h>
5#include <errno.h>
6#include <pthread.h>
7//#include <string.h>
8#include <fcntl.h>
9//#include <signal.h>
10
11#include "mbtk_log.h"
12#include "mbtk_info_api.h"
13
14#define MBTK_RESULT_FAIL -1
15#define MBTK_RESULT_SUCCESS 0
16
17typedef enum{
18 MBTK_READY_INIT = -1,
19 MBTK_READY_SUCCESS,
20 MBTK_READY_MODEM_FAIL,
21 MBTK_READY_RESPONSE_FAIL,
22 MBTK_READY_SOCKET_FAIL,
23 MBTK_READY_RIL_FAIL
24}mbtk_ready_status_type;
25
26static mbtk_ready_status_type mbtk_ready_status = MBTK_READY_INIT;
27static mbtk_info_handle_t* mbtk_handle = NULL;
28#if 1
29static mbtk_ready_status_type modem_check(void)
30{
31 char imei[16]= {0};
32 int cme_err = 0;
33
34 if(mbtk_handle == NULL)
35 {
36 mbtk_handle = mbtk_info_handle_get();
37 if(mbtk_handle == NULL)
38 {
39 LOGE("[SDK_READY] mbtk_info_handle_get fail.");
40 return MBTK_READY_RIL_FAIL;
41 }
42 }
43
44 mbtk_handle->info_err = 0;
45 cme_err = mbtk_imei_get(mbtk_handle, imei);
46 //LOGE("[SDK_READY] imei = [%s], cme_err = [%d]", imei, cme_err);
47 if(cme_err == 0 && strlen(imei) == 0)
48 {
49 mbtk_info_handle_free(&mbtk_handle);
50 mbtk_handle = NULL;
51 return MBTK_READY_RIL_FAIL;
52 }
53 if(cme_err != 0 || strlen(imei) == 0)
54 {
55 mbtk_info_handle_free(&mbtk_handle);
56 mbtk_handle = NULL;
57 return MBTK_READY_MODEM_FAIL;
58 }
59 return MBTK_READY_SUCCESS;
60}
61#endif
62
63static void* sdk_ready_check_pthread(void *arg)
64{
65 UNUSED(arg);
66 LOGE("[SDK_READY] sdk_ready_check_pthread entry.");
67
68 mbtk_ready_status_type now_ready_status = MBTK_READY_INIT;
69 char buf[2] = {0};
70 int sleep_time = 30;
71 while(1)
72 {
73 now_ready_status = modem_check();
74 if(now_ready_status != mbtk_ready_status)
75 {
76 buf[0] = '0' + now_ready_status;
77 property_set("persist.mbtk.sdk.state", buf);
78 mbtk_ready_status = now_ready_status;
79 }
80
81 if(now_ready_status != MBTK_READY_SUCCESS)
82 {
83 sleep_time += 2;
84 }
85 else
86 {
87 sleep_time = 30;
88 }
89
90 sleep(sleep_time);
91 }
92 LOGE("[SDK_READY] sdk_ready_check_pthread exit.");
93 return NULL;
94}
95
96int main(int argc, char *argv[])
97{
98 if(mbtk_ready_status != MBTK_READY_INIT)
99 {
100 LOGE("[SDK_READY] sdk has check.");
101 return MBTK_RESULT_FAIL;
102 }
103
b.liubb590492024-06-13 16:42:08 +0800104#ifdef MBTK_DUMP_SUPPORT
105 mbtk_debug_open(NULL, TRUE);
106#endif
107
wangyouqiang16aadb02024-04-12 15:47:13 +0800108 LOGE("[SDK_READY] sdk check init.");
109 pthread_t sdk_ready_pid;
110 pthread_attr_t thread_attr;
111 pthread_attr_init(&thread_attr);
112 if(pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED))
113 {
114 LOGE("[SDK_READY] pthread_attr_setdetachstate() fail.");
115 return MBTK_RESULT_FAIL;
116 }
117
118 if(pthread_create(&sdk_ready_pid, &thread_attr, sdk_ready_check_pthread, NULL))
119 {
120 LOGE("[SDK_READY] pthread_create() fail.");
121 }
122
123 pthread_attr_destroy(&thread_attr);
124
125 LOGE("[SDK_READY] sdk check start.");
126 while(1)
127 {
128 sleep(24 * 60 * 60);
129 }
130
131 LOGE("[SDK_READY]!!!mbtk_sdk_ready exit!!!");
132 return MBTK_RESULT_SUCCESS;
133}
134#endif