blob: 9ba5185b753846961bcac58e9a08f79e4d619cea [file] [log] [blame]
liubin281ac462023-07-19 14:22:54 +08001/**
2 * \file gnss_test.c
3 * \brief A Documented file.
4 *
5 * Detailed description
6 * \Author: Sniper <e190@163.com>
7 * \Version: 1.0.0
8 * \Date: 2022-03-26
9 */
10#include <stdio.h>
11#include <stdlib.h>
12#include <string.h>
13#include <unistd.h>
14#include <pthread.h>
15#include <errno.h>
16#include <termios.h>
17#include <unistd.h>
18#include <fcntl.h>
19#include <signal.h>
20#include <sys/types.h>
21#include <unistd.h>
22#include <pthread.h>
23#include <termios.h>
24#include <sys/ioctl.h>
25#include "mbtk_type.h"
26#include "lynq/lynq_gnss.h"
27//#include "mbtk_gnss.h"
28
29void gnss_handler_cb
30(
31 uint32 h_loc,
32 int e_msg_id,
33 void *pv_data,
34 void *context_ptr
35) {
36 printf("e_msg_id=%d\n", e_msg_id);
37 switch(e_msg_id)
38 {
39 case E_LYNQ_LOC_MSG_ID_STATUS_INFO:
40 break;
41 case E_LYNQ_LOC_MSG_ID_LOCATION_INFO:
42 break;
43 case E_LYNQ_LOC_MSG_ID_SV_INFO:
44 break;
45 case E_LYNQ_LOC_MSG_ID_NMEA_INFO:
46 {
47 LYNQ_LOC_NMEA_INFO_T *pt_nmea = (LYNQ_LOC_NMEA_INFO_T *)pv_data;
48
49 printf("NMEA info: timestamp=%lld, length=%d, nmea=%s\n",
50 pt_nmea->timestamp, pt_nmea->length, pt_nmea->nmea);
51 break;
52 }
53 case E_LYNQ_LOC_MSG_ID_CAPABILITIES_INFO:
54 break;
55 case E_LYNQ_LOC_MSG_ID_AGPS_STATUS:
56 break;
57 case E_LYNQ_LOC_MSG_ID_NI_NOTIFICATION:
58 break;
59 case E_LYNQ_LOC_MSG_ID_XTRA_REPORT_SERVER:
60 break;
61 }
62}
63#if 1
64int main(int argc, char *argv[])
65{
66 int ret;
67
68 ret = lynq_gnss_enable_glonass();
69 if(ret < 0) {
70 printf("lynq_gnss_init FAIL. ret:%d\n",ret);
71 return -1;
72 }
73
74 ret = lynq_gnss_init();
75 if(ret < 0) {
76 printf("lynq_gnss_init FAIL. ret:%d\n",ret);
77 return -1;
78 }
79
80 lynq_gnss_callback_reg(gnss_handler_cb);
81
82 ret = lynq_gnss_agps_dataconnopen();
83 if(ret < 0) {
84 printf("lynq_gnss_agps_dataconnopen FAIL. ret:%d\n", ret);
85 return -1;
86 }
87
88 ret = lynq_gnss_start();
89 if(ret < 0) {
90 printf("lynq_gnss_start FAIL. ret:%d\n",ret);
91 return -1;
92 }
93 sleep(10);
94 ret = lynq_gnss_stop();
95 if(ret < 0) {
96 printf("lynq_gnss_stop FAIL. ret:%d\n",ret);
97 return -1;
98 }
99 ret = lynq_gnss_deinit();
100 if(ret < 0) {
101 printf("lynq_gnss_deinit FAIL. ret:%d\n",ret);
102 return -1;
103 }
104 return 0;
105}
106
107#else
108
109int main(int argc, char *argv[])
110{
111 int ret;
112 int opt;
113 char dev_file[12] = {0};
114
115 while(1)
116 {
117 printf("=========gnss main=========\n"
118 "\t0 exit\n"
119 "\t1 gnss init\n"
120 "\t2 gnss add callback function\n"
121 "\t3 gnss start\n"
122 "\t4 gnss stop\n"
123 "\t5 gnss deinit\n"
124 "\t6 agps down\n"
125 "please input operator: >> ");
126 scanf("%d", &opt);
127 switch (opt)
128 {
129 case 0:
130 printf("main exit\n");
131 return 0;
132 case 1:
133 ret = lynq_gnss_init();
134 if(ret < 0)
135 {
136 printf("lynq_gnss_init FAIL. ret:%d\n",ret);
137 return -1;
138 }
139 opt = 0;
140 break;
141 case 2:
142 {
143
144 lynq_gnss_callback_reg(gnss_handler_cb);
145 break;
146 }
147 case 3:
148 {
149 lynq_gnss_start();
150 break;
151 }
152 case 4:
153 {
154 lynq_gnss_stop();
155 break;
156 }
157 case 5:
158 {
159 lynq_gnss_deinit();
160 break;
161 }
162 case 6:
163 {
164 ret = lynq_gnss_agps_dataconnopen();
165 if(ret < 0)
166 {
167 printf("lynq_gnss_agps_dataconnopen FAIL. ret:%d\n", ret);
168 return -1;
169 }
170 break;
171 }
172 default:
173 break;
174 }
175 }
176
177 return 0;
178}
179#endif