blob: 65161652ef9c0259c166bec6e3c21ffced4cfb9f [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001#include <stdlib.h>
2#include <stdio.h>
3#include <string.h>
4#include <sys/types.h>
5#include <unistd.h>
6#include <dlfcn.h>
7#include <stdint.h>
8
9
10#define INIT_SUCCESS 0
11#define RTC_DEINIT -1
12typedef struct
13{
14 int cmdIdx;
15 char *funcName;
16} st_api_test_case;
17
18
19//for server test
20st_api_test_case at_api_testcases[] =
21{
22 {0, (char*)"print_help"},
23 {1, (char*)"lynq_rtc_service_init"},
24 {2, (char*)"poweralarm"},
25 {3, (char*)"wakealarm"},
26 {4, (char*)"cancel_wakealarm"},
27 {5, (char*)"lynq_set_poweralarm"},
28 {6, (char*)"lynq_set_wakealarm"},
29 {7, (char*)"lynq_rtc_service_deinit"},
30 {-1, NULL}
31};
32
33 int init_flag = -1;
34 int src_id = -1;
35 void *dlHandle_poweralarm = NULL;
36
37typedef int (*lynq_wakealarm_add_cb)(unsigned int src_id, int rtc_id);
38
39int (*lynq_rtc_service_init)(void);
40int (*lynq_rtc_service_deinit)(void);
41int (*poweralarm)(char *buffer,int src_id);
42int (*wakealarm)(char *buffer,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify);
43int (*cancel_wakealarm)(int src_id,int rtc_id);
44int (*lynq_set_poweralarm)(unsigned long time_sec,int src_id);
45int (*lynq_set_wakealarm)(unsigned long time_sec,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify);
46
47
48
49void print_help(void)
50{
51 int i;
52 printf("Supported test cases:\n");
53 for(i = 0; ; i++)
54 {
55 if(at_api_testcases[i].cmdIdx == -1)
56 {
57 break;
58 }
59 printf("%d:\t%s\n", at_api_testcases[i].cmdIdx, at_api_testcases[i].funcName);
60 }
61}
62
63int lynq_wakealarm_add_callback(unsigned int src_id, int rtc_id)
64{
65 printf("wake alarm callback test \n");
66 return 0;
67}
68
69
70int main(int argc,char *argv[])
71{
72
73 int cmdIdx = 0;
74 printf("Enter main function\n");
75
76 const char *dlHandle_Path_poweralarm = "/lib/libpoweralarm.so";
77 dlHandle_poweralarm = dlopen(dlHandle_Path_poweralarm, RTLD_NOW);
78 if (dlHandle_poweralarm == NULL)
79 {
80 printf("dlopen dlHandle_fota failed: %s\n", dlerror());
81 return -1;
82 }
83
84 poweralarm = (int (*)(char *buffer,int src_ids))dlsym(dlHandle_poweralarm, "poweralarm");
85 if(poweralarm == NULL)
86 {
87 printf("poweralarm is null\n");
88 return -1;
89 }
90
91 wakealarm = (int (*)(char *buffer,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify))dlsym(dlHandle_poweralarm, "wakealarm");
92 if(wakealarm == NULL)
93 {
94 printf("wakealarm is null\n");
95 return -1;
96 }
97 lynq_set_poweralarm = (int (*)(unsigned long,int src_id))dlsym(dlHandle_poweralarm,"lynq_set_poweralarm");
98 if(lynq_set_poweralarm == NULL)
99 {
100 printf("lynq_set_poweralarm is null\n");
101 return -1;
102 }
103 lynq_set_wakealarm = (int (*)(unsigned long,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify))dlsym(dlHandle_poweralarm,"lynq_set_wakealarm");
104 if(lynq_set_wakealarm == NULL)
105 {
106 printf("lynq_set_wakealarm is null\n");
107 return -1;
108 }
109
110 cancel_wakealarm = (int (*)(int src_id,int rtc_id))dlsym(dlHandle_poweralarm, "cancel_wakealarm");
111 if(cancel_wakealarm == NULL)
112 {
113 printf("cancel_wakealarm is null\n");
114 return -1;
115 }
116
117 lynq_rtc_service_init = (int(*)())dlsym(dlHandle_poweralarm,"lynq_rtc_service_init");
118 if(lynq_rtc_service_init == NULL)
119 {
120 printf("lynq_rtc_service_init is null\n");
121 return -1;
122 }
123
124 lynq_rtc_service_deinit = (int (*)())dlsym(dlHandle_poweralarm,"lynq_rtc_service_deinit");
125 if(lynq_rtc_service_deinit == NULL)
126 {
127 printf("lynq_rtc_service_deinit is null \n");
128 return -1;
129 }
130
131 print_help();
132 while(1)
133 {
134
135 printf("\nplease input cmd index(-1 exit): ");
136 if(1 != scanf("%d", &cmdIdx) || cmdIdx == -1)
137 {
138 break;
139 }
140 switch(cmdIdx)
141 {
142 case 0:
143 print_help();
144 break;
145 case 1:
146 {
147 src_id = lynq_rtc_service_init();
148 if(src_id <= 0)
149 {
150
151 printf("RTC service init failed ");
152 return -1;
153 }
154 else
155 {
156 init_flag = INIT_SUCCESS;
157 }
158
159 break;
160 }
161 case 2:
162 {
163
164 if(init_flag != INIT_SUCCESS)
165 {
166 printf("*****ERROR must init rtc service ,Please reselect *******\n ");
167 }
168 else
169 {
170 int ret = 0;
171 char tmp_time[32] = {0};
172 printf("Set poweralarm time,e.g: 60 (seconds)\n");
173 if(1 != scanf("%s",tmp_time))
174 break;
175 ret = poweralarm(tmp_time,src_id);
176 if(ret != 0)
177 {
178 printf("set poweralarm failed\n");
179 return -1;
180 }
181 }
182 break;
183 }
184 case 3:
185 {
186 if(init_flag != INIT_SUCCESS)
187 {
188 printf("*****ERROR must init rtc service ,Please reselect *******\n ");
189 }
190 else
191 {
192 int ret = 0;
193 char tmp_time[32]={0};
194 int rtc_id = 0;
195 printf("Set wakealarm time ,e.g: 60 1 (seconds)\n");
196 if(2 != scanf("%s%d",tmp_time,&rtc_id))
197 break;
198
199 ret = wakealarm(tmp_time,src_id,rtc_id,lynq_wakealarm_add_callback);
200 if(ret != 0)
201 {
202 printf("set wakealarm failed\n");
203 return -1;
204 }
205 }
206 break;
207 }
208 case 4:
209 {
210 if(init_flag != INIT_SUCCESS)
211 {
212 printf("*****ERROR must init rtc service ,Please reselect *******\n ");
213 }
214 else
215 {
216 int ret = 0;
217 int rtc_id = 0;
218 printf("Please input you want cancel rtc timer rtc id\n");
219 if(1 != scanf("%d",&rtc_id))
220 break;
221 ret = cancel_wakealarm(src_id,rtc_id);
222 if(ret != 0)
223 {
224 printf("Cancel_wakealarm failed!!!");
225 return -1;
226 }
227 }
228 break;
229 }
230 case 5:
231 {
232 if(init_flag != INIT_SUCCESS)
233 {
234 printf("*****ERROR must init rtc service ,Please reselect *******\n ");
235 }
236 else
237 {
238 int ret = 0;
239 unsigned long time_sec = 0;
240 printf("Input time_sec you want poweralarm,e.g: 60 (seconds)\n");
241 if(1 != scanf("%lu",&time_sec))
242 break;
243 ret =lynq_set_poweralarm(time_sec,src_id);
244 printf("ret is %d\n",ret);
245 if(ret != 0)
246 {
247 printf("lynq_set_poweralarm failed\n");
248 return -1;
249 }
250 }
251 break;
252 }
253 case 6:
254 {
255 if(init_flag != INIT_SUCCESS)
256 {
257 printf("*****ERROR must init rtc service ,Please reselect *******\n ");
258 }
259 else
260 {
261 int ret = 0;
262 unsigned long time_sec = 0;
263 int rtc_id;
264 printf("Input time_sec you want wakealarm,e.g:60 1(seconds)\n");
265 if(2 != scanf("%lu%d",&time_sec,&rtc_id))
266 break;
267 ret =lynq_set_wakealarm(time_sec,src_id,rtc_id,lynq_wakealarm_add_callback);
268 if(ret != 0)
269 {
270 printf("lynq_set_wakealarm failed\n");
271 return -1;
272 }
273 }
274 break;
275 }
276 case 7:
277 {
278 if(init_flag != INIT_SUCCESS)
279 {
280 printf("*****ERROR must init rtc service ,Please reselect *******\n ");
281 }
282 else
283 {
284 int ret = -1;
285 printf("rtc servce deinit !!!!!!!!!!!!");
286 ret = lynq_rtc_service_deinit();
287 if(ret != 0)
288 {
289 printf("lynq rtc service deinit failed \n");
290 return -1;
291 }
292 else
293 {
294 init_flag = RTC_DEINIT;
295 }
296 }
297 break;
298 }
299
300 default:
301 break;
302 }
303 }
304
305 return 0;
306
307}
308