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