blob: cbb584432245c4f032f1b91b52bd9209db1cb2b3 [file] [log] [blame]
r.xiaoec113d12024-01-12 02:13:28 -08001#include "lynq-qser-autosuspend.h"
2
3#include <stdio.h>
4#include <unistd.h>
5#include <stddef.h>
6#include "mbtk_type.h"
7#include "mbtk_log.h"
8
r.xiaoffbe6ce2024-01-22 19:01:01 -08009/*白名单配置备注
10例如AT*POWERIND=31,就相当于设置NETWORK、SIM、SMS、CS CALL、PS DATA变化时都不主动上报,
11其中PS DATA目前暂时不支持,只是保留了这个标志位(ARS人员回复当前平台结论)
12AP power state: 1~31 means suspend, bitmap: bit0 - NETWORK;bit1 - SIM;bit2 - SMS;bit3 - CS CALL;bit4 - PS DATA
130 means resume all.
14目标文件"/system/etc/powerind"
15该值上电默认值是1,既平台默认是NW不主动上报
16
17白名单的状态由四位数字组成,从左往右判断
18第一位代表是否屏蔽电话唤醒,
19第二位代表是否屏蔽网络注册状态唤醒,
20第三位代表是否屏蔽数据业务唤醒,
21第四位代表是否屏蔽短信唤醒。
r.xiao7000d212024-01-31 23:45:27 -080022
23其中 0 代表屏蔽,1 代表不屏蔽。
24
r.xiaoffbe6ce2024-01-22 19:01:01 -080025第一位:1:打开电话唤醒,其他:屏蔽电话唤醒
26第二位:1:打开网络注册状态唤醒,其他:屏蔽网络注册状态唤醒
27第三位:1:打开数据业务唤醒,其他:屏蔽数据业务唤醒
28第四位:1:打开短信唤醒,其他屏蔽短信唤醒
r.xiaoffbe6ce2024-01-22 19:01:01 -080029
r.xiao7000d212024-01-31 23:45:27 -080030注意:从左往右开始判断
31平台原因:所以默认状态位1011
r.xiaoffbe6ce2024-01-22 19:01:01 -080032*/
r.xiaoec113d12024-01-12 02:13:28 -080033
34static void qser_lpm_handler(qser_lpm_edge_t edge_state)
35{
36 printf("this is qser_lpm_handler, edge_state=%d\n", edge_state);
37}
38
39
40int main(int argc, char *argv[])
41{
42 char operator[10];
43 int opt;
44 int lv_voll = 0;
45 int fd_t;
r.xiaob9cf0e62024-02-02 04:11:48 -080046 mbtk_log_init("radio", "SLEEP_TEST");
r.xiaoec113d12024-01-12 02:13:28 -080047
48 while(1)
49 {
50 printf("=========sleep main=========\n"
51 "\t0 exit\n"
52 "\t1 autosuspend enable\n"
53 "\t2 wakelock create\n"
54 "\t3 wakelock lock\n"
55 "\t4 wakelock unlock\n"
56 "\t5 wakelock destroy\n"
57 "\t6 whitelist set\n"
58 "\t7 whitelist get\n"
r.xiaocfd7c682024-01-22 03:59:46 -080059 "\t8 lpm init\n"
60 "\t9 lpm destroy\n"
r.xiaoec113d12024-01-12 02:13:28 -080061 "operator: >> \n");
62
63 fgets(operator, sizeof(operator), stdin);
64 fflush(stdin);
65 opt = atoi(operator);
66 switch (opt)
67 {
68 case 0:
69 printf("main exit\n");
70 return 0;
71 case 1:
72 {
r.xiao7000d212024-01-31 23:45:27 -080073 int en;
74 printf(">>>>>Input 0 or 1<<<<<\n");
75 char tmp_en[4]={0};
76 memset(tmp_en, 0x00, sizeof(tmp_en));
77 fgets(tmp_en, sizeof(tmp_en)-1, stdin);
78 fflush(stdin);
79 en = atoi(tmp_en);
r.xiaoec113d12024-01-12 02:13:28 -080080 if (en == 0 || en == 1)
81 {
82 qser_autosuspend_enable(en);
83 }
84 else
r.xiaocfd7c682024-01-22 03:59:46 -080085 printf(">>>>>re Input 0 or 1 error<<<<<\n");
r.xiaoec113d12024-01-12 02:13:28 -080086 }
r.xiao7000d212024-01-31 23:45:27 -080087 break;
r.xiaoec113d12024-01-12 02:13:28 -080088 case 2:
89 {
r.xiao7000d212024-01-31 23:45:27 -080090 printf(">>>>>Input name<<<<<\n");
91 char t_name[64]={0};
92 int len_name;
93 char tmp_c[64]={0};
94 memset(tmp_c, 0x00, sizeof(tmp_c));
95 fgets(tmp_c, sizeof(tmp_c)-1, stdin);
96 fflush(stdin);
97 len_name = strlen(tmp_c)-1;
98 strncpy(t_name, tmp_c, len_name);
99 printf(">>>>>name=[%s] name_len=[%d]<<<<<\n",t_name, len_name);
r.xiaoec113d12024-01-12 02:13:28 -0800100
r.xiao7000d212024-01-31 23:45:27 -0800101 fd_t = qser_wakelock_create(t_name, len_name);
102 printf(">>>>>Output ID NUM =[%d]<<<<<\n",fd_t);
r.xiaoec113d12024-01-12 02:13:28 -0800103 }
r.xiao7000d212024-01-31 23:45:27 -0800104 break;
r.xiaoec113d12024-01-12 02:13:28 -0800105 case 3:
r.xiao7000d212024-01-31 23:45:27 -0800106 {
107 printf(">>>>>Input ID NUM<<<<<\n");
108 char tmp_l[127]={0};
109 fgets(tmp_l, sizeof(tmp_l), stdin);
110 fflush(stdin);
111 fd_t = atoi(tmp_l);
112 qser_wakelock_lock(fd_t);
113 }
r.xiaoec113d12024-01-12 02:13:28 -0800114 break;
115 case 4:
r.xiao7000d212024-01-31 23:45:27 -0800116 {
117 printf(">>>>>Input ID NUM<<<<<\n");
118 char tmp_ul[127]={0};
119 memset(tmp_ul, 0x00, sizeof(tmp_ul));
120 fgets(tmp_ul, sizeof(tmp_ul)-1, stdin);
121 fflush(stdin);
122 fd_t = atoi(tmp_ul);
123 qser_wakelock_unlock(fd_t);
124 }
r.xiaoec113d12024-01-12 02:13:28 -0800125 break;
126 case 5:
r.xiao7000d212024-01-31 23:45:27 -0800127 printf(">>>>>Input ID NUM<<<<<\n");
128 char tmp_d[127]={0};
129 memset(tmp_d, 0x00, sizeof(tmp_d));
130 fgets(tmp_d, sizeof(tmp_d)-1, stdin);
131 fflush(stdin);
132 fd_t = atoi(tmp_d);
133 qser_wakelock_destroy(fd_t);
r.xiaoec113d12024-01-12 02:13:28 -0800134 break;
135 case 6:
136 {
r.xiao7000d212024-01-31 23:45:27 -0800137 printf(">>>>>Input whitelish NUM 4位(eg:1010) <<<<<\n");
138 char whitelish[16]={0};
139 int len_whitelish;
140 char tmp[16]={0};
141 memset(tmp, 0x00, sizeof(tmp));
142 fgets(tmp, sizeof(tmp)-1, stdin);
143 fflush(stdin);
144 len_whitelish = strlen(tmp)-1;
r.xiaocfd7c682024-01-22 03:59:46 -0800145
r.xiao7000d212024-01-31 23:45:27 -0800146 strncpy(whitelish, tmp, len_whitelish);
147 printf(">>>set tmp =[%s] list = [%s] len_whitelish =[%d]\n",tmp, whitelish,len_whitelish);
148
149 qser_whitelist_set(whitelish);
r.xiaoec113d12024-01-12 02:13:28 -0800150 }
151 break;
152 case 7:
153 {
r.xiao7000d212024-01-31 23:45:27 -0800154 char whitelish_get[10]={0};
r.xiaocfd7c682024-01-22 03:59:46 -0800155
r.xiao7000d212024-01-31 23:45:27 -0800156 qser_whitelist_get(whitelish_get);
157 printf(">>>get list = [%s]\n", whitelish_get);
r.xiaoec113d12024-01-12 02:13:28 -0800158 }
159 break;
160 case 8:
161 {
r.xiao7000d212024-01-31 23:45:27 -0800162 qser_pm_cfg_t *qser_lpm_cfg = NULL;
163 qser_lpm_cfg = (qser_pm_cfg_t *)malloc(sizeof(qser_pm_cfg_t));
164 qser_lpm_cfg->wakeupin.wakeupin_pin = 50;
165 qser_lpm_cfg->wakeupin.wakeupin_edge = E_QL_LPM_FALLING;
166 qser_lpm_init(qser_lpm_handler, qser_lpm_cfg);
167 free(qser_lpm_cfg);
r.xiaoec113d12024-01-12 02:13:28 -0800168 }
169 break;
170 case 9:
171 qser_lpm_deinit();
172 break;
173
174 default:
175 break;
176 }
177
178 }
179
180 return 0;
181}
182