blob: fa2b7fe168b74096785e6e1dc524f711c3bd71d3 [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.
r.xiaod3256ae2024-02-28 23:20:55 -080014
r.xiaoffbe6ce2024-01-22 19:01:01 -080015该值上电默认值是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
r.xiaoba8483c2024-04-14 18:53:10 -070048 printf("=========sleep main=========\n"
49 "\t0 exit\n"
50 "\t1 autosuspend enable\n"
51 "\t2 wakelock create\n"
52 "\t3 wakelock lock\n"
53 "\t4 wakelock unlock\n"
54 "\t5 wakelock destroy\n"
55 "\t6 whitelist set\n"
56 "\t7 whitelist get\n"
57 "\t8 lpm init\n"
58 "\t9 lpm destroy\n"
59 "operator: >> \n");
60
r.xiaoec113d12024-01-12 02:13:28 -080061 while(1)
62 {
r.xiaoec113d12024-01-12 02:13:28 -080063
64 fgets(operator, sizeof(operator), stdin);
65 fflush(stdin);
66 opt = atoi(operator);
67 switch (opt)
68 {
69 case 0:
70 printf("main exit\n");
71 return 0;
72 case 1:
73 {
r.xiao7000d212024-01-31 23:45:27 -080074 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);
r.xiaod3256ae2024-02-28 23:20:55 -080079
80 if (tmp_en[0] == '0' || tmp_en[0] == '1')
81 qser_autosuspend_enable(tmp_en[0]);
82 else
83 printf(">>>>>re Input 0 or 1 error<<<<<\n");
r.xiaoec113d12024-01-12 02:13:28 -080084 }
r.xiao7000d212024-01-31 23:45:27 -080085 break;
r.xiaoec113d12024-01-12 02:13:28 -080086 case 2:
87 {
r.xiao7000d212024-01-31 23:45:27 -080088 printf(">>>>>Input name<<<<<\n");
89 char t_name[64]={0};
90 int len_name;
91 char tmp_c[64]={0};
92 memset(tmp_c, 0x00, sizeof(tmp_c));
93 fgets(tmp_c, sizeof(tmp_c)-1, stdin);
94 fflush(stdin);
95 len_name = strlen(tmp_c)-1;
96 strncpy(t_name, tmp_c, len_name);
97 printf(">>>>>name=[%s] name_len=[%d]<<<<<\n",t_name, len_name);
r.xiaoec113d12024-01-12 02:13:28 -080098
r.xiao7000d212024-01-31 23:45:27 -080099 fd_t = qser_wakelock_create(t_name, len_name);
r.xiao33e45bf2024-05-31 02:00:30 -0700100 if (fd_t == -1)
101 {
102 printf(">>>>>Output error =[%d]<<<<<\n",fd_t);
103 }
104 else
105 {
106 printf(">>>>>Output ID NUM =[%d]<<<<<\n",fd_t);
107 }
r.xiaoec113d12024-01-12 02:13:28 -0800108 }
r.xiao7000d212024-01-31 23:45:27 -0800109 break;
r.xiaoec113d12024-01-12 02:13:28 -0800110 case 3:
r.xiao7000d212024-01-31 23:45:27 -0800111 {
112 printf(">>>>>Input ID NUM<<<<<\n");
113 char tmp_l[127]={0};
114 fgets(tmp_l, sizeof(tmp_l), stdin);
115 fflush(stdin);
116 fd_t = atoi(tmp_l);
r.xiao33e45bf2024-05-31 02:00:30 -0700117 fd_t = qser_wakelock_lock(fd_t);
118 if (fd_t == -1)
119 {
120 printf(">>>>>Output error =[%d]<<<<<\n",fd_t);
121 }
122 else
123 {
124 printf(">>>>>Output succuess<<<<<\n");
125 }
r.xiao7000d212024-01-31 23:45:27 -0800126 }
r.xiaoec113d12024-01-12 02:13:28 -0800127 break;
128 case 4:
r.xiao7000d212024-01-31 23:45:27 -0800129 {
130 printf(">>>>>Input ID NUM<<<<<\n");
131 char tmp_ul[127]={0};
132 memset(tmp_ul, 0x00, sizeof(tmp_ul));
133 fgets(tmp_ul, sizeof(tmp_ul)-1, stdin);
134 fflush(stdin);
135 fd_t = atoi(tmp_ul);
r.xiao33e45bf2024-05-31 02:00:30 -0700136 fd_t = qser_wakelock_unlock(fd_t);
137 if (fd_t == -1)
138 {
139 printf(">>>>>Output error =[%d]<<<<<\n",fd_t);
140 }
141 else
142 {
143 printf(">>>>>Output succuess<<<<<\n");
144 }
r.xiao7000d212024-01-31 23:45:27 -0800145 }
r.xiaoec113d12024-01-12 02:13:28 -0800146 break;
147 case 5:
r.xiao33e45bf2024-05-31 02:00:30 -0700148 {
r.xiao7000d212024-01-31 23:45:27 -0800149 printf(">>>>>Input ID NUM<<<<<\n");
150 char tmp_d[127]={0};
151 memset(tmp_d, 0x00, sizeof(tmp_d));
152 fgets(tmp_d, sizeof(tmp_d)-1, stdin);
153 fflush(stdin);
154 fd_t = atoi(tmp_d);
r.xiao33e45bf2024-05-31 02:00:30 -0700155 fd_t = qser_wakelock_destroy(fd_t);
156 if (fd_t == -1)
157 {
158 printf(">>>>>Output error =[%d]<<<<<\n",fd_t);
159 }
160 else
161 {
162 printf(">>>>>Output succuess<<<<<\n");
163 }
164 }
r.xiaoec113d12024-01-12 02:13:28 -0800165 break;
166 case 6:
167 {
r.xiao7000d212024-01-31 23:45:27 -0800168 printf(">>>>>Input whitelish NUM 4位(eg:1010) <<<<<\n");
169 char whitelish[16]={0};
170 int len_whitelish;
171 char tmp[16]={0};
172 memset(tmp, 0x00, sizeof(tmp));
173 fgets(tmp, sizeof(tmp)-1, stdin);
174 fflush(stdin);
175 len_whitelish = strlen(tmp)-1;
r.xiaocfd7c682024-01-22 03:59:46 -0800176
r.xiao7000d212024-01-31 23:45:27 -0800177 strncpy(whitelish, tmp, len_whitelish);
178 printf(">>>set tmp =[%s] list = [%s] len_whitelish =[%d]\n",tmp, whitelish,len_whitelish);
179
180 qser_whitelist_set(whitelish);
r.xiaoec113d12024-01-12 02:13:28 -0800181 }
182 break;
183 case 7:
184 {
r.xiao7000d212024-01-31 23:45:27 -0800185 char whitelish_get[10]={0};
r.xiaocfd7c682024-01-22 03:59:46 -0800186
r.xiao7000d212024-01-31 23:45:27 -0800187 qser_whitelist_get(whitelish_get);
188 printf(">>>get list = [%s]\n", whitelish_get);
r.xiaoec113d12024-01-12 02:13:28 -0800189 }
190 break;
191 case 8:
192 {
r.xiao7000d212024-01-31 23:45:27 -0800193 qser_pm_cfg_t *qser_lpm_cfg = NULL;
194 qser_lpm_cfg = (qser_pm_cfg_t *)malloc(sizeof(qser_pm_cfg_t));
195 qser_lpm_cfg->wakeupin.wakeupin_pin = 50;
196 qser_lpm_cfg->wakeupin.wakeupin_edge = E_QL_LPM_FALLING;
197 qser_lpm_init(qser_lpm_handler, qser_lpm_cfg);
198 free(qser_lpm_cfg);
r.xiaoec113d12024-01-12 02:13:28 -0800199 }
200 break;
201 case 9:
202 qser_lpm_deinit();
203 break;
204
205 default:
206 break;
207 }
208
209 }
210
211 return 0;
212}
213