blob: bed49c74a62f388373b74c9dd0490c05d34ab681 [file] [log] [blame]
b.liuae2dce52024-08-15 11:09:58 +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_ril_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 bool ril_inited = FALSE;
28#if 1
29static mbtk_ready_status_type modem_check(void)
30{
31 char imei[16]= {0};
32 int cme_err = 0;
33
34 mbtk_ril_err_enum ret;
35 if(!ril_inited) {
36 ret = mbtk_ril_init();
37 if(ret != MBTK_RIL_ERR_SUCCESS) {
38 return MBTK_READY_RIL_FAIL;
39 }
40 ril_inited = TRUE;
41 }
42
43 ret = mbtk_imei_get(imei);
44 //LOGE("[SDK_READY] imei = [%s], cme_err = [%d]", imei, cme_err);
45 if(ret != MBTK_RIL_ERR_SUCCESS || strlen(imei) == 0)
46 {
47 return MBTK_READY_RIL_FAIL;
48 }
49
50 return MBTK_READY_SUCCESS;
51}
52#endif
53
54static void* sdk_ready_check_pthread(void *arg)
55{
56 UNUSED(arg);
57 LOGE("[SDK_READY] sdk_ready_check_pthread entry.");
58
59 mbtk_ready_status_type now_ready_status = MBTK_READY_INIT;
60 char buf[2] = {0};
61 int sleep_time = 30;
62 while(1)
63 {
64 now_ready_status = modem_check();
65 if(now_ready_status != mbtk_ready_status)
66 {
67 buf[0] = '0' + now_ready_status;
68 property_set("persist.mbtk.sdk.state", buf);
69 mbtk_ready_status = now_ready_status;
70 }
71
72 if(now_ready_status != MBTK_READY_SUCCESS)
73 {
74 sleep_time += 2;
75 }
76 else
77 {
78 sleep_time = 30;
79 }
80
81 sleep(sleep_time);
82 }
83 LOGE("[SDK_READY] sdk_ready_check_pthread exit.");
84 return NULL;
85}
86
87int main(int argc, char *argv[])
88{
b.liubcf86c92024-08-19 19:48:28 +080089 mbtk_log_init("radio", "MBTK_SDK_READY");
90
91 MBTK_SOURCE_INFO_PRINT("mbtk_sdk_ready");
92
b.liuae2dce52024-08-15 11:09:58 +080093 if(mbtk_ready_status != MBTK_READY_INIT)
94 {
95 LOGE("[SDK_READY] sdk has check.");
96 return MBTK_RESULT_FAIL;
97 }
98
99#ifdef MBTK_DUMP_SUPPORT
100 mbtk_debug_open(NULL, TRUE);
101#endif
102
103 LOGE("[SDK_READY] sdk check init.");
104 pthread_t sdk_ready_pid;
105 pthread_attr_t thread_attr;
106 pthread_attr_init(&thread_attr);
107 if(pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED))
108 {
109 LOGE("[SDK_READY] pthread_attr_setdetachstate() fail.");
110 return MBTK_RESULT_FAIL;
111 }
112
113 if(pthread_create(&sdk_ready_pid, &thread_attr, sdk_ready_check_pthread, NULL))
114 {
115 LOGE("[SDK_READY] pthread_create() fail.");
116 }
117
118 pthread_attr_destroy(&thread_attr);
119
120 LOGE("[SDK_READY] sdk check start.");
121 while(1)
122 {
123 sleep(24 * 60 * 60);
124 }
125
126 LOGE("[SDK_READY]!!!mbtk_sdk_ready exit!!!");
127 return MBTK_RESULT_SUCCESS;
128}
129#endif