blob: bcb696bfe53e347c241d537d366733e02793b524 [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;
b.liubcf86c92024-08-19 19:48:28 +080025
wangyouqiang16aadb02024-04-12 15:47:13 +080026static 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 }
b.liubcf86c92024-08-19 19:48:28 +080089
wangyouqiang16aadb02024-04-12 15:47:13 +080090 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{
b.liubcf86c92024-08-19 19:48:28 +080098 mbtk_log_init("radio", "MBTK_SDK_READY");
99
100 MBTK_SOURCE_INFO_PRINT("mbtk_sdk_ready");
101
wangyouqiang16aadb02024-04-12 15:47:13 +0800102 if(mbtk_ready_status != MBTK_READY_INIT)
103 {
104 LOGE("[SDK_READY] sdk has check.");
105 return MBTK_RESULT_FAIL;
106 }
107
b.liubb590492024-06-13 16:42:08 +0800108#ifdef MBTK_DUMP_SUPPORT
109 mbtk_debug_open(NULL, TRUE);
110#endif
111
wangyouqiang16aadb02024-04-12 15:47:13 +0800112 LOGE("[SDK_READY] sdk check init.");
113 pthread_t sdk_ready_pid;
114 pthread_attr_t thread_attr;
115 pthread_attr_init(&thread_attr);
116 if(pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED))
117 {
118 LOGE("[SDK_READY] pthread_attr_setdetachstate() fail.");
119 return MBTK_RESULT_FAIL;
120 }
b.liubcf86c92024-08-19 19:48:28 +0800121
wangyouqiang16aadb02024-04-12 15:47:13 +0800122 if(pthread_create(&sdk_ready_pid, &thread_attr, sdk_ready_check_pthread, NULL))
123 {
124 LOGE("[SDK_READY] pthread_create() fail.");
125 }
126
127 pthread_attr_destroy(&thread_attr);
128
129 LOGE("[SDK_READY] sdk check start.");
130 while(1)
131 {
132 sleep(24 * 60 * 60);
133 }
134
135 LOGE("[SDK_READY]!!!mbtk_sdk_ready exit!!!");
136 return MBTK_RESULT_SUCCESS;
137}
138#endif