blob: 34b741276e2e91c17e67f9397246271856ad7fd8 [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
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 printf(">>>>>Input 0 or 1<<<<<\n");
74 char tmp_en[4]={0};
75 memset(tmp_en, 0x00, sizeof(tmp_en));
76 fgets(tmp_en, sizeof(tmp_en)-1, stdin);
77 fflush(stdin);
r.xiaod3256ae2024-02-28 23:20:55 -080078
79 if (tmp_en[0] == '0' || tmp_en[0] == '1')
80 qser_autosuspend_enable(tmp_en[0]);
81 else
82 printf(">>>>>re Input 0 or 1 error<<<<<\n");
r.xiaoec113d12024-01-12 02:13:28 -080083 }
r.xiao7000d212024-01-31 23:45:27 -080084 break;
r.xiaoec113d12024-01-12 02:13:28 -080085 case 2:
86 {
r.xiao7000d212024-01-31 23:45:27 -080087 printf(">>>>>Input name<<<<<\n");
88 char t_name[64]={0};
89 int len_name;
90 char tmp_c[64]={0};
91 memset(tmp_c, 0x00, sizeof(tmp_c));
92 fgets(tmp_c, sizeof(tmp_c)-1, stdin);
93 fflush(stdin);
94 len_name = strlen(tmp_c)-1;
95 strncpy(t_name, tmp_c, len_name);
96 printf(">>>>>name=[%s] name_len=[%d]<<<<<\n",t_name, len_name);
r.xiaoec113d12024-01-12 02:13:28 -080097
r.xiao7000d212024-01-31 23:45:27 -080098 fd_t = qser_wakelock_create(t_name, len_name);
99 printf(">>>>>Output ID NUM =[%d]<<<<<\n",fd_t);
r.xiaoec113d12024-01-12 02:13:28 -0800100 }
r.xiao7000d212024-01-31 23:45:27 -0800101 break;
r.xiaoec113d12024-01-12 02:13:28 -0800102 case 3:
r.xiao7000d212024-01-31 23:45:27 -0800103 {
104 printf(">>>>>Input ID NUM<<<<<\n");
105 char tmp_l[127]={0};
106 fgets(tmp_l, sizeof(tmp_l), stdin);
107 fflush(stdin);
108 fd_t = atoi(tmp_l);
109 qser_wakelock_lock(fd_t);
110 }
r.xiaoec113d12024-01-12 02:13:28 -0800111 break;
112 case 4:
r.xiao7000d212024-01-31 23:45:27 -0800113 {
114 printf(">>>>>Input ID NUM<<<<<\n");
115 char tmp_ul[127]={0};
116 memset(tmp_ul, 0x00, sizeof(tmp_ul));
117 fgets(tmp_ul, sizeof(tmp_ul)-1, stdin);
118 fflush(stdin);
119 fd_t = atoi(tmp_ul);
120 qser_wakelock_unlock(fd_t);
121 }
r.xiaoec113d12024-01-12 02:13:28 -0800122 break;
123 case 5:
r.xiao7000d212024-01-31 23:45:27 -0800124 printf(">>>>>Input ID NUM<<<<<\n");
125 char tmp_d[127]={0};
126 memset(tmp_d, 0x00, sizeof(tmp_d));
127 fgets(tmp_d, sizeof(tmp_d)-1, stdin);
128 fflush(stdin);
129 fd_t = atoi(tmp_d);
130 qser_wakelock_destroy(fd_t);
r.xiaoec113d12024-01-12 02:13:28 -0800131 break;
132 case 6:
133 {
r.xiao7000d212024-01-31 23:45:27 -0800134 printf(">>>>>Input whitelish NUM 4位(eg:1010) <<<<<\n");
135 char whitelish[16]={0};
136 int len_whitelish;
137 char tmp[16]={0};
138 memset(tmp, 0x00, sizeof(tmp));
139 fgets(tmp, sizeof(tmp)-1, stdin);
140 fflush(stdin);
141 len_whitelish = strlen(tmp)-1;
r.xiaocfd7c682024-01-22 03:59:46 -0800142
r.xiao7000d212024-01-31 23:45:27 -0800143 strncpy(whitelish, tmp, len_whitelish);
144 printf(">>>set tmp =[%s] list = [%s] len_whitelish =[%d]\n",tmp, whitelish,len_whitelish);
145
146 qser_whitelist_set(whitelish);
r.xiaoec113d12024-01-12 02:13:28 -0800147 }
148 break;
149 case 7:
150 {
r.xiao7000d212024-01-31 23:45:27 -0800151 char whitelish_get[10]={0};
r.xiaocfd7c682024-01-22 03:59:46 -0800152
r.xiao7000d212024-01-31 23:45:27 -0800153 qser_whitelist_get(whitelish_get);
154 printf(">>>get list = [%s]\n", whitelish_get);
r.xiaoec113d12024-01-12 02:13:28 -0800155 }
156 break;
157 case 8:
158 {
r.xiao7000d212024-01-31 23:45:27 -0800159 qser_pm_cfg_t *qser_lpm_cfg = NULL;
160 qser_lpm_cfg = (qser_pm_cfg_t *)malloc(sizeof(qser_pm_cfg_t));
161 qser_lpm_cfg->wakeupin.wakeupin_pin = 50;
162 qser_lpm_cfg->wakeupin.wakeupin_edge = E_QL_LPM_FALLING;
163 qser_lpm_init(qser_lpm_handler, qser_lpm_cfg);
164 free(qser_lpm_cfg);
r.xiaoec113d12024-01-12 02:13:28 -0800165 }
166 break;
167 case 9:
168 qser_lpm_deinit();
169 break;
170
171 default:
172 break;
173 }
174
175 }
176
177 return 0;
178}
179