blob: 01aa10ea08b827667431fb329380d421ace30677 [file] [log] [blame]
lichengzhangf4fa50b2023-08-10 04:10:11 -07001#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);
33void *dlHandle_gnss;
34
35int main(int argc, char *argv[])
36{
37 int ret;
38 int opt = 0;
39 char *lynqLib_gnss = "/lib/liblynq-qser-gnss.so";
40 char dev_file[12] = {0};
41 uint32_t ph_gnss;
42 dlHandle_gnss = dlopen(lynqLib_gnss, RTLD_NOW);
43 while(1)
44 {
45 printf("=========gnss main=========\n");
46 user_help();
47 scanf("%d", &opt);
48 switch (opt)
49 {
50 case -1:
51 {
52 printf("main exit\n");
53 return 0;
54 }
55
56 case 1:
57 {
58 qser_Gnss_Init=(int(*)(uint32_t *h_gnss))dlsym(dlHandle_gnss, "qser_Gnss_Init");
59 ret = qser_Gnss_Init(&ph_gnss);
60 if(ret < 0)
61 {
62 printf("mopen_gnss_client_init FAIL.\n");
63 return -1;
64 }
65 printf("mopen_gnss_client_init success , with address=%d\n", ph_gnss);
66 break;
67 }
68 case 2:
69 {
70 qser_Gnss_Deinit=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_Deinit");
71 ret =qser_Gnss_Deinit(ph_gnss);
72 if(ret < 0)
73 {
74 printf("mopen_gnss_client_init FAIL.\n");
75 return -1;
76 }
77 printf("mopen_gnss_client_Deinit success ");
78 return 0;
79 }
80 case 3:
81 {
82 qser_AddRxIndMsgHandler=(int(*)(gnss_handler_func_t,uint32_t))dlsym(dlHandle_gnss, "qser_AddRxIndMsgHandler");
83 ret = qser_AddRxIndMsgHandler((gnss_handler_func_t)&cb,ph_gnss);
84 if(ret < 0)
85 {
86 printf("lynq_AddRxIndMsgHandler\n");
87 qser_Gnss_Deinit(ph_gnss);
88 return -1;
89 }
90 printf("add success\n");
91 break;
92 }
93 case 4:
94 {
95 e_msg_id_t ptr2=E_MT_LOC_MSG_ID_LOCATION_INFO;
96 qser_Set_Indications=(int(*)(uint32_t h_gnss,e_msg_id_t))dlsym(dlHandle_gnss, "qser_Set_Indications");
97 ret = qser_Set_Indications(ph_gnss,ptr2);
98 if(ret < 0)
99 {
100 printf("lynq_Set_LOCATION_INFO fail\n");
101 qser_Gnss_Deinit(ph_gnss);
102 return -1;
103 }
104 printf("set location mode success\n");
105 break;
106 }
107 case 5:
108 {
109 e_msg_id_t ptr4=E_MT_LOC_MSG_ID_NMEA_INFO;
110 qser_Set_Indications=(int(*)(uint32_t h_gnss,e_msg_id_t))dlsym(dlHandle_gnss, "qser_Set_Indications");
111 ret = qser_Set_Indications(ph_gnss,ptr4);
112 if(ret < 0)
113 {
114 printf("lynq_Set_NMEA_INFO fail\n");
115 qser_Gnss_Deinit(ph_gnss);
116 return -1;
117 }
118 printf("set nmea mode success\n");
119 break;
120
121 }
122 case 6:
123 {
124 qser_Gnss_Start=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_Start");
125 ret = qser_Gnss_Start(ph_gnss);
126 if(ret < 0)
127 {
128 printf("lynq_Gnss_Start fail\n");
129 return -1;
130 }
131 printf("start success\n");
132 break;
133 }
134 case 7:
135 {
136 qser_Gnss_Stop=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_Stop");
137 ret = qser_Gnss_Stop(ph_gnss);
138 if(ret < 0)
139 {
140 printf("lynq_Gnss_Stop fail\n");
141 qser_Gnss_Deinit(ph_gnss);
142 return -1;
143 }
144 break;
145 printf("stop success\n");
146 }
147
148 case 8:
149 {
150 int opt_1;
151 DELETE_AIDING_DATA_TYPE_T ptr;
152 qser_Gnss_Delete_Aiding_Data=(int(*)(uint32_t,DELETE_AIDING_DATA_TYPE_T))dlsym(dlHandle_gnss, "qser_Gnss_Delete_Aiding_Data");
153 printf("=========delete aiding data type=========\n");
154 delete_type();
155 scanf("%d", &opt_1);
156 switch(opt_1)
157 {
158 case 0:
159 {
160 ptr = DELETE_NOTHING;//hot
161 }
162 case 1:
163 {
164 ptr = DELETE_EPHEMERIS;//warm
165 }
166 case 2:
167 {
168 ptr = DELETE_ALMANAC;
169 }
170 case 3:
171 {
172 ptr = DELETE_POSITION_TIME;
173 }
174 case 4:
175 {
176 ptr = DELETE_UTC;
177 }
178 case 5:
179 {
180 ptr = DELETE_ALL;//cold
181 }
182 }
183 ret = qser_Gnss_Delete_Aiding_Data(ph_gnss,ptr);
184 if(ret < 0)
185 {
186 printf("lynq_Gnss_Delete_Aiding_Data %d fail\n",opt_1);
187 qser_Gnss_Deinit(ph_gnss);
188 return -1;
189 }
190 printf("lynq_Gnss_Delete_Aiding_Data %d success\n",opt_1);
191 break;
192 }
193 case 9:
194 {
195 LYNQ_INJECT_TIME_INTO_T time_test;
196 qser_Gnss_InjectTime=(int(*)(uint32_t,LYNQ_INJECT_TIME_INTO_T *time_info))dlsym(dlHandle_gnss, "qser_Gnss_InjectTime");
197 ret = qser_Gnss_InjectTime(ph_gnss,&time_test);
198 if(ret < 0)
199 {
200 printf("lynq_Gnss_InjectTime fail\n");
201 qser_Gnss_Deinit(ph_gnss);
202 return -1;
203 }
204 printf("lynq_Gnss_InjectTime success\n");
205 break;
206 }
207 }
208 }
209 return 0;
210}
211#ifdef __cplusplus
212}
213#endif