blob: 275ffef365cb2741353fa8c2b7281533d3f6953b [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001#include <stdio.h>
2#include <string.h>
3#include <strings.h>
4#include <stdlib.h>
5#include <errno.h>
6#include <termios.h>
7#include <unistd.h>
8#include <fcntl.h>
9#include <signal.h>
10#include <sys/types.h>
11#include <unistd.h>
12#include <pthread.h>
13#include <termios.h>
14#include <time.h>
15#include <sys/ioctl.h>
16#include <dlfcn.h>
17#include <stdint.h>
18#include "lynq-qser-gnss-demo.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24
25int (*qser_Gnss_Init)(uint32_t *h_gnss);
26int (*qser_Gnss_Deinit)(uint32_t);
27int (*qser_AddRxIndMsgHandler)(gnss_handler_func_t handler_ptr,uint32_t);
28int (*qser_Set_Indications)(uint32_t h_gnss,e_msg_id_t);
29int (*qser_Gnss_Start)(uint32_t h_gnss);
30int (*qser_Gnss_Stop)(uint32_t h_gnss);
31int (*qser_Gnss_Delete_Aiding_Data)(uint32_t,DELETE_AIDING_DATA_TYPE_T);
32int (*qser_Gnss_InjectTime)(uint32_t,LYNQ_INJECT_TIME_INTO_T *time_info);
33int (*qser_Gnss_Server_Configuration)(char *host, char *id, char *password);
34int (*qser_Gnss_download_tle)();
35int (*qser_Gnss_injectEphemeris)(uint32_t);
36int (*qser_Gnss_Set_Frequency)(uint32_t, int);
37void *dlHandle_gnss;
38
39int main(int argc, char *argv[])
40{
41 int ret;
42 int opt = 0;
43 char *lynqLib_gnss = (char*)"/lib/liblynq-qser-gnss.so";
44// char dev_file[12] = {0};
45 uint32_t ph_gnss;
46 dlHandle_gnss = dlopen(lynqLib_gnss, RTLD_NOW);
47 while(1)
48 {
49 printf("=========gnss main=========\n");
50 user_help();
51 if(1 != scanf("%d", &opt))
52 break;
53 while(getchar()!='\n');
54 switch (opt)
55 {
56 case -1:
57 {
58 printf("main exit\n");
59 return 0;
60 }
61
62 case 1:
63 {
64 qser_Gnss_Init=(int(*)(uint32_t *h_gnss))dlsym(dlHandle_gnss, "qser_Gnss_Init");
65 ret = qser_Gnss_Init(&ph_gnss);
66 if(ret < 0)
67 {
68 printf("mopen_gnss_client_init FAIL.\n");
69 return -1;
70 }
71 printf("mopen_gnss_client_init success , with address=%d\n", ph_gnss);
72 break;
73 }
74 case 2:
75 {
76 qser_Gnss_Deinit=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_Deinit");
77 ret =qser_Gnss_Deinit(ph_gnss);
78 if(ret < 0)
79 {
80 printf("mopen_gnss_client_Deinit FAIL.\n");
81 return -1;
82 }
83 printf("mopen_gnss_client_Deinit success \n");
84 break;
85 }
86 case 3:
87 {
88 qser_AddRxIndMsgHandler=(int(*)(gnss_handler_func_t,uint32_t))dlsym(dlHandle_gnss, "qser_AddRxIndMsgHandler");
89 ret = qser_AddRxIndMsgHandler((gnss_handler_func_t)&cb,ph_gnss);
90 if(ret < 0)
91 {
92 printf("lynq_AddRxIndMsgHandler fail\n");
93 qser_Gnss_Deinit(ph_gnss);
94 return -1;
95 }
96 printf("add success\n");
97 break;
98 }
99 case 4:
100 {
101 e_msg_id_t ptr2=E_MT_LOC_MSG_ID_LOCATION_INFO;
102 qser_Set_Indications=(int(*)(uint32_t h_gnss,e_msg_id_t))dlsym(dlHandle_gnss, "qser_Set_Indications");
103 ret = qser_Set_Indications(ph_gnss,ptr2);
104 if(ret < 0)
105 {
106 printf("lynq_Set_LOCATION_INFO fail\n");
107 qser_Gnss_Deinit(ph_gnss);
108 return -1;
109 }
110 printf("set location mode success\n");
111 break;
112 }
113 case 5:
114 {
115 e_msg_id_t ptr4=E_MT_LOC_MSG_ID_NMEA_INFO;
116 qser_Set_Indications=(int(*)(uint32_t h_gnss,e_msg_id_t))dlsym(dlHandle_gnss, "qser_Set_Indications");
117 ret = qser_Set_Indications(ph_gnss,ptr4);
118 if(ret < 0)
119 {
120 printf("lynq_Set_NMEA_INFO fail\n");
121 qser_Gnss_Deinit(ph_gnss);
122 return -1;
123 }
124 printf("set nmea mode success\n");
125 break;
126
127 }
128 case 6:
129 {
130 qser_Gnss_Start=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_Start");
131 ret = qser_Gnss_Start(ph_gnss);
132 if(ret < 0)
133 {
134 printf("lynq_Gnss_Start fail\n");
135 return -1;
136 }
137 printf("start success\n");
138 break;
139 }
140 case 7:
141 {
142 qser_Gnss_Stop=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_Stop");
143 ret = qser_Gnss_Stop(ph_gnss);
144 if(ret < 0)
145 {
146 printf("lynq_Gnss_Stop fail\n");
147 qser_Gnss_Deinit(ph_gnss);
148 return -1;
149 }
150 printf("stop success\n");
151 break;
152 }
153
154 case 8:
155 {
156 int opt_1;
157 DELETE_AIDING_DATA_TYPE_T ptr;
158 qser_Gnss_Delete_Aiding_Data=(int(*)(uint32_t,DELETE_AIDING_DATA_TYPE_T))dlsym(dlHandle_gnss, "qser_Gnss_Delete_Aiding_Data");
159 printf("=========delete aiding data type=========\n");
160 delete_type();
161 if(1 != scanf("%d", &opt_1))
162 break;
163 while(getchar()!='\n');
164 switch(opt_1)
165 {
166 case 0:
167 {
168 ptr = DELETE_NOTHING;//hot
169 break;
170 }
171 case 1:
172 {
173 ptr = DELETE_EPHEMERIS;//warm
174 break;
175 }
176 case 2:
177 {
178 ptr = DELETE_ALMANAC;
179 break;
180 }
181 case 3:
182 {
183 ptr = DELETE_POSITION_TIME;
184 break;
185 }
186 case 4:
187 {
188 ptr = DELETE_UTC;
189 break;
190 }
191 case 5:
192 {
193 ptr = DELETE_ALL;//cold
194 break;
195 }
196 default:
197 {
198 printf("input error\n");
199 return -1;
200 }
201 }
202 ret = qser_Gnss_Delete_Aiding_Data(ph_gnss,ptr);
203 if(ret < 0)
204 {
205 printf("lynq_Gnss_Delete_Aiding_Data %d fail\n",opt_1);
206 qser_Gnss_Deinit(ph_gnss);
207 return -1;
208 }
209 printf("lynq_Gnss_Delete_Aiding_Data %d success\n",opt_1);
210 break;
211 }
212 case 9:
213 {
214 LYNQ_INJECT_TIME_INTO_T time_test;
215 qser_Gnss_InjectTime=(int(*)(uint32_t,LYNQ_INJECT_TIME_INTO_T *time_info))dlsym(dlHandle_gnss, "qser_Gnss_InjectTime");
216 ret = qser_Gnss_InjectTime(ph_gnss,&time_test);
217 if(ret < 0)
218 {
219 printf("qser_Gnss_InjectTime fail\n");
220 qser_Gnss_Deinit(ph_gnss);
221 return -1;
222 }
223 printf("qser_Gnss_InjectTime success\n");
224 break;
225 }
226 case 10:
227 {
228 qser_Gnss_download_tle=(int(*)())dlsym(dlHandle_gnss, "qser_Gnss_download_tle");
229 ret = qser_Gnss_download_tle();
230 if(ret < 0)
231 {
232 printf("qser_Gnss_download_tle fail\n");
233 return -1;
234 }
235 printf("qser_Gnss_download_tle success\n");
236 break;
237 }
238 case 11:
239 {
240 int frequency;
241 qser_Gnss_Set_Frequency=(int(*)(uint32_t, int))dlsym(dlHandle_gnss, "qser_Gnss_Set_Frequency");
242 printf("=========delete aiding data type=========\n");
243 if(1 != scanf("%d", &frequency))
244 break;
245 ret = qser_Gnss_Set_Frequency(ph_gnss,frequency);
246 if(ret < 0)
247 {
248 printf("qser_Gnss_Set_Frequency fail\n");
249 return -1;
250 }
251 printf("frequency is %d\n",frequency);
252 printf("qser_Gnss_Set_Frequency success\n");
253 break;
254 }
255 case 12:
256 {
257 int (*qser_Gnss_injectEphemeris)(uint32_t);
258 qser_Gnss_injectEphemeris=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_injectEphemeris");
259 ret = qser_Gnss_injectEphemeris(ph_gnss);
260 if(ret < 0)
261 {
262 printf("qser_Gnss_injectEphemeris fail\n");
263 return -1;
264 }
265 printf("qser_Gnss_injectEphemeri ssuccess\n");
266 break;
267 }
268 case 13:
269 {
270 qser_Gnss_Server_Configuration=(int(*)(char *host, char *id, char *password))dlsym(dlHandle_gnss, "qser_Gnss_Server_Configuration");
271 ret = qser_Gnss_Server_Configuration(NULL,(char*)"lcz",(char*)"123456");
272 if(ret < 0)
273 {
274 printf("qser_Gnss_Server_Configuration fail\n");
275 return -1;
276 }
277 printf("qser_Gnss_Server_Configuration ssuccess\n");
278 break;
279 }
280 default:
281 {
282 printf("input error,please re-enter\n");
283 break;
284 }
285 }
286 }
287 return 0;
288}
289#ifdef __cplusplus
290}
291#endif