blob: 4bfbf4013dd0211cce337d5b4b473bbce0cf62d8 [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);
100 printf(">>>>>Output ID NUM =[%d]<<<<<\n",fd_t);
r.xiaoec113d12024-01-12 02:13:28 -0800101 }
r.xiao7000d212024-01-31 23:45:27 -0800102 break;
r.xiaoec113d12024-01-12 02:13:28 -0800103 case 3:
r.xiao7000d212024-01-31 23:45:27 -0800104 {
105 printf(">>>>>Input ID NUM<<<<<\n");
106 char tmp_l[127]={0};
107 fgets(tmp_l, sizeof(tmp_l), stdin);
108 fflush(stdin);
109 fd_t = atoi(tmp_l);
110 qser_wakelock_lock(fd_t);
111 }
r.xiaoec113d12024-01-12 02:13:28 -0800112 break;
113 case 4:
r.xiao7000d212024-01-31 23:45:27 -0800114 {
115 printf(">>>>>Input ID NUM<<<<<\n");
116 char tmp_ul[127]={0};
117 memset(tmp_ul, 0x00, sizeof(tmp_ul));
118 fgets(tmp_ul, sizeof(tmp_ul)-1, stdin);
119 fflush(stdin);
120 fd_t = atoi(tmp_ul);
121 qser_wakelock_unlock(fd_t);
122 }
r.xiaoec113d12024-01-12 02:13:28 -0800123 break;
124 case 5:
r.xiao7000d212024-01-31 23:45:27 -0800125 printf(">>>>>Input ID NUM<<<<<\n");
126 char tmp_d[127]={0};
127 memset(tmp_d, 0x00, sizeof(tmp_d));
128 fgets(tmp_d, sizeof(tmp_d)-1, stdin);
129 fflush(stdin);
130 fd_t = atoi(tmp_d);
131 qser_wakelock_destroy(fd_t);
r.xiaoec113d12024-01-12 02:13:28 -0800132 break;
133 case 6:
134 {
r.xiao7000d212024-01-31 23:45:27 -0800135 printf(">>>>>Input whitelish NUM 4位(eg:1010) <<<<<\n");
136 char whitelish[16]={0};
137 int len_whitelish;
138 char tmp[16]={0};
139 memset(tmp, 0x00, sizeof(tmp));
140 fgets(tmp, sizeof(tmp)-1, stdin);
141 fflush(stdin);
142 len_whitelish = strlen(tmp)-1;
r.xiaocfd7c682024-01-22 03:59:46 -0800143
r.xiao7000d212024-01-31 23:45:27 -0800144 strncpy(whitelish, tmp, len_whitelish);
145 printf(">>>set tmp =[%s] list = [%s] len_whitelish =[%d]\n",tmp, whitelish,len_whitelish);
146
147 qser_whitelist_set(whitelish);
r.xiaoec113d12024-01-12 02:13:28 -0800148 }
149 break;
150 case 7:
151 {
r.xiao7000d212024-01-31 23:45:27 -0800152 char whitelish_get[10]={0};
r.xiaocfd7c682024-01-22 03:59:46 -0800153
r.xiao7000d212024-01-31 23:45:27 -0800154 qser_whitelist_get(whitelish_get);
155 printf(">>>get list = [%s]\n", whitelish_get);
r.xiaoec113d12024-01-12 02:13:28 -0800156 }
157 break;
158 case 8:
159 {
r.xiao7000d212024-01-31 23:45:27 -0800160 qser_pm_cfg_t *qser_lpm_cfg = NULL;
161 qser_lpm_cfg = (qser_pm_cfg_t *)malloc(sizeof(qser_pm_cfg_t));
162 qser_lpm_cfg->wakeupin.wakeupin_pin = 50;
163 qser_lpm_cfg->wakeupin.wakeupin_edge = E_QL_LPM_FALLING;
164 qser_lpm_init(qser_lpm_handler, qser_lpm_cfg);
165 free(qser_lpm_cfg);
r.xiaoec113d12024-01-12 02:13:28 -0800166 }
167 break;
168 case 9:
169 qser_lpm_deinit();
170 break;
171
172 default:
173 break;
174 }
175
176 }
177
178 return 0;
179}
180