blob: 76cbcdcea53189337bc6b26e61f81aec949f5d67 [file] [log] [blame]
rjw6ec5d282023-03-14 11:22:06 +08001#ifndef _RTK_FUN_H_
2#define _RTK_FUN_H_
3
4#define RTK_SUPPORT
5#define ENABLE_RTKFUN //RTK�ĺ����ӿ�
6#define ENABLE_RTKCHANGEFREQ //
7
8#include "hardware/gps_mtk.h"
9#include "hardware/gps.h"
10
11
12typedef enum
13{
14 rtk_log_info,
15 rtk_log_warn,
16 rtk_log_err
17} rtk_log_level;
18
19typedef struct
20{
21 unsigned char bPosFlag; //��ǰ��״̬��0����Ч�� 1�����㣻 2��RTD(SBAS)�� 4��RTK fix�� 5��RTK float�� 6��Dead Reckoing�� 7��Fix pos mode�� 8��Sim mode
22 unsigned char bTrackNo; //����������
23 unsigned char bSatNo; //����������
24
25 unsigned char bRtkFlag; //RTKԭʼ��״̬(0:ʧ�� 1:���� 3:����̶� 4:�̶� 5:���� 12:���� 13:����ƽ�� 14:�Ƶ�)
26 double fDiffAge; //�������
27 unsigned int uGpsWeek; //GPSʱ����
28 double fWeekSeconds;//GPSʱ��������
29 double fUTC; //UTCʱ�������1970-01-01 00:00:00��ʼ����
30 double fLeapSeconds;//����
31
32
33 double fPosX; //X����(m)(WGS84)
34 double fPosY; //Y����(m)(WGS84)
35 double fPosZ; //Z����(m)(WGS84)
36 float fPosXDelta; //X����ı�׼���
37 float fPosYDelta; //Y����ı�׼���
38 float fPosZDelta; //Z����ı�׼���
39
40 double fLat; //γ�ȣ���λ�ȣ�
41 double fLong; //���ȣ���λ�ȣ�
42 double fAlt; //���θߣ���λm��
43 double fHeightOfGeoid;//�߳��쳣����λm��
44 float fLatStd; //γ�ȱ�׼��
45 float fLongStd; //���ȱ�׼��
46 float fAltStd; //���θ� ��׼��
47
48 double fVelX; //X������ٶȣ�m/s��
49 double fVelY; //Y������ٶ�
50 double fVelZ; //Z������ٶ�
51 float fVelXDelta; //X�����ٶȱ�׼��
52 float fVelYDelta; //Y�����ٶȱ�׼��
53 float fVelZDelta; //Z�����ٶȱ�׼��
54
55 float fVelN; //�������ٶȣ�m/s)
56 float fVelE; //�������ٶȣ�m/s)
57 float fVelU; //�췽���ٶȣ�m/s)
58 float fVelNDelta; //�������ٶȱ�׼�m/s)
59 float fVelEDelta; //�������ٶȱ�׼�m/s)
60 float fVelUDelta; //�췽���ٶȱ�׼�m/s)
61
62 float fHorSpeed; //�Ե��ٶȣ�m/s)
63 float fHorSpeedDelta;//�Ե��ٶȱ�׼�m/s)
64
65 float fTrueHeading;//���溽��,�켣����ǣ��ȣ����˶�����
66 float fTrueHeadingDelta;//�켣����DZ�׼��ȣ�
67
68 float fHeading2Ant; //˫���ߺ����ݲ�֧�֣����켣����Ǹ�ֵ��
69 float fHeading2AntDelta; //˫���ߺ��򾫶ȣ��ݲ�֧�֣����켣����ǵı�׼�ֵ��
70
71 float fRangeRms; //α�ྫ��
72 float fPhaseRms; //�ز�����
73
74 float fHDOP; //HDOP
75 float fPDOP; //PDOP
76 float fVDOP; //VDOP
77 float fCN0; //��ǰ���붨λ���ǵľ�ֵCN0(dBHz)
78
79 double fClkTime; //��ӦMTK���ڲ�gps_clock�е�time_ns�ֶ�
80
81 int iBaseStatus;//ͬrtk_base_sdkstatus��������״̬
82 //RTK����״̬
83 //0x00000001��ʾ�޻�վ����
84 //0x00000002��ʾ��Ч���ǵ���10��
85 //0x00000004��ʾ��Ч��������Ⱦ�ֵ������ֵ��Ĭ��24��
86 //0x00000008��ʾRTK�������ʧ�ܣ�����ʧ�ܰ������ǹ��٣��۲������������ȵͣ���������ȣ�
87 //0x00000010��ʾRTKδ������㣨δ�������ԭ������޻�վ���ݡ��л�վ���ݵ��ӳٴ���200��PVT��λʧ�ܡ�ʱ���ж��쳣�ȣ�
88 int iRtkStatus;
89
90}rtk_result_info;
91
92typedef void (*rtk_out_debuginfo)(const char * pBuff, const int length, const int ilevel);
93typedef void (*rtk_out_postdata)(const unsigned char * pBuff, const int length);
94typedef void (*rtk_out_basesdkstatus)(const int status);
95typedef void (*rtk_out_status)(const int status);
96
97typedef void (*rtk_out_result)(const rtk_result_info * prtk);
98typedef void (*rtk_out_result_nmea)(const char * strnmea, const int length);
99
100#ifdef __cplusplus
101extern "C" {
102#endif
103
104//rtk��ʼ��
105extern void rtk_init();
106
107//ͨ�������û����������½
108extern void rtk_set_UserInfo(const char* user, const char* pwd);
109
110//�����豸ID��½
111extern void rtk_set_DeviceID(const char* device_id);
112
113//�����ƶ�վMTK��NMEA����(GGA/RMC/VTG/GSA/GSV/GST)
114extern void rtk_rove_addnmea(const unsigned char * pBuff, const int iBuffLen);
115
116//�����ƶ�վMTK�Ĺ۲���
117extern void rtk_rove_addrawmess(GnssData_ext* data);
118
119//�����ƶ�վMTK��ԭʼ������֡
120extern int rtk_rove_addrawnav(GnssNavigationMessage * msg);
121
122//rtk��������Ϣ
123extern void rtk_result_cb(rtk_out_result pRtk);
124
125//rtk��Nmea���Ľ��(GGA/RMC/VTG/GSA/GSV/GST)
126extern void rtk_result_nmea_cb(rtk_out_result_nmea pNmea);
127
128//rtk�Ĵ�ӡ��Ϣ,������Ϊ��
129extern void rtk_config_log(rtk_out_debuginfo pLog);
130
131//rtk��������,��������
132extern void rtk_config_post(rtk_out_postdata pOut);
133
134//��վ ��������ݣ�������״̬(�������SDK״̬��)
135extern void rtk_base_sdkstatus(rtk_out_basesdkstatus pBaseStatus);
136
137//rtk�����Ƿ�ر�ijϵͳ
138//bSys------1(GPS) 2(GLO) 3(GAL) 4(QZS) 5(BD2) 6(BD3)
139//bLock-----l(Lock) 0:(unLock)
140extern void rtk_config_lockout(const unsigned char bSys, const unsigned char bLock);
141
142//��ȡRTK�汾�����20�ֽڣ�
143extern void rtk_version(char * strVer);
144
145//rtk�Ƿ��������
146//0:����������Ĭ��״̬��
147//1:�������ߣ�rtk�ӿڲ��ٽ����������룬����sdk���������ͽ������ݣ�ֹͣ������
148//2:���뵥�㶨λ״̬��rtk�ӿڽ��������������������sdkֹͣ����
149extern void rtk_gotosleep(const unsigned char bMode);
150
151//��ȡ��ǰ���õ�DeviceID�����128�ֽڣ�
152extern void rtk_get_DeviceID(char* device_id);
153
154//���÷�����IP��ַ�ӿ�
155//server_ip:��������ַ
156extern void rtk_setServerIP(const char* server_ip);
157
158//����RTK�Ľ�����Ҫ��͵�����ȣ�Ĭ��24
159extern void rtk_setCN0(const unsigned char bCN0);
160
161//����RTK״̬��ӿڣ��������SDK��״̬��+RTK״̬�룬RTK״̬�����¶���)
162//���������ԭʼ�۲�����Ƶ�ʸ���RTK״̬�룬״̬��ύ����֣�����ԭʼ����������ÿ�����һ��״̬���������ߺ������
163//4001:��ԭʼ��������(����3�뼰����)
164//4002:��NMEA��������(����3�뼰����)
165//4003:���������������
166//4004:PVTδ��λ
167//4005:�����ź���(����Ⱦ�ֵ <30)
168//4006:�����ź�һ��(����Ⱦ�ֵ30~35)
169//4007:�����źź�(����Ⱦ�ֵ35~40)
170//4008:�����ź�ǿ(����Ⱦ�ֵ >40)
171extern void rtk_status_update(rtk_out_status pRtkStatus);
172
173
174#ifdef __cplusplus
175}
176#endif
177
178
179#endif /* _RTK_FUN_H_ */