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