| rjw | 6ec5d28 | 2023-03-14 11:22:06 +0800 | [diff] [blame] | 1 | #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 |
|
| 12 | typedef enum
|
| 13 | {
|
| 14 | rtk_log_info,
|
| 15 | rtk_log_warn,
|
| 16 | rtk_log_err
|
| 17 | } rtk_log_level;
|
| 18 |
|
| 19 | typedef 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 |
|
| 92 | typedef void (*rtk_out_debuginfo)(const char * pBuff, const int length, const int ilevel);
|
| 93 | typedef void (*rtk_out_postdata)(const unsigned char * pBuff, const int length);
|
| 94 | typedef void (*rtk_out_basesdkstatus)(const int status);
|
| 95 | typedef void (*rtk_out_status)(const int status);
|
| 96 |
|
| 97 | typedef void (*rtk_out_result)(const rtk_result_info * prtk);
|
| 98 | typedef void (*rtk_out_result_nmea)(const char * strnmea, const int length);
|
| 99 |
|
| 100 | #ifdef __cplusplus
|
| 101 | extern "C" {
|
| 102 | #endif
|
| 103 |
|
| 104 | //rtk��ʼ��
|
| 105 | extern void rtk_init();
|
| 106 |
|
| 107 | //ͨ�������û����������½
|
| 108 | extern void rtk_set_UserInfo(const char* user, const char* pwd);
|
| 109 |
|
| 110 | //�����豸ID��½
|
| 111 | extern void rtk_set_DeviceID(const char* device_id);
|
| 112 |
|
| 113 | //�����ƶ�վMTK��NMEA����(GGA/RMC/VTG/GSA/GSV/GST)
|
| 114 | extern void rtk_rove_addnmea(const unsigned char * pBuff, const int iBuffLen);
|
| 115 |
|
| 116 | //�����ƶ�վMTK�Ĺ۲���
|
| 117 | extern void rtk_rove_addrawmess(GnssData_ext* data);
|
| 118 |
|
| 119 | //�����ƶ�վMTK��ԭʼ������֡
|
| 120 | extern int rtk_rove_addrawnav(GnssNavigationMessage * msg);
|
| 121 |
|
| 122 | //rtk��������Ϣ
|
| 123 | extern void rtk_result_cb(rtk_out_result pRtk);
|
| 124 |
|
| 125 | //rtk��Nmea���Ľ��(GGA/RMC/VTG/GSA/GSV/GST)
|
| 126 | extern void rtk_result_nmea_cb(rtk_out_result_nmea pNmea);
|
| 127 |
|
| 128 | //rtk�Ĵ�ӡ��Ϣ,������Ϊ��
|
| 129 | extern void rtk_config_log(rtk_out_debuginfo pLog);
|
| 130 |
|
| 131 | //rtk��������,��������
|
| 132 | extern void rtk_config_post(rtk_out_postdata pOut);
|
| 133 |
|
| 134 | //��վ ��������ݣ�������״̬(�������SDK״̬��)
|
| 135 | extern 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)
|
| 140 | extern void rtk_config_lockout(const unsigned char bSys, const unsigned char bLock);
|
| 141 |
|
| 142 | //��ȡRTK�汾�����20�ֽڣ�
|
| 143 | extern void rtk_version(char * strVer);
|
| 144 |
|
| 145 | //rtk�Ƿ��������
|
| 146 | //0:����������Ĭ��״̬��
|
| 147 | //1:�������ߣ�rtk�ӿڲ��ٽ����������룬����sdk���������ͽ������ݣ�ֹͣ������
|
| 148 | //2:���뵥�㶨λ״̬��rtk�ӿڽ��������������������sdkֹͣ����
|
| 149 | extern void rtk_gotosleep(const unsigned char bMode);
|
| 150 |
|
| 151 | //��ȡ��ǰ���õ�DeviceID�����128�ֽڣ�
|
| 152 | extern void rtk_get_DeviceID(char* device_id);
|
| 153 |
|
| 154 | //���÷�����IP��ַ�ӿ�
|
| 155 | //server_ip:��������ַ
|
| 156 | extern void rtk_setServerIP(const char* server_ip);
|
| 157 |
|
| 158 | //����RTK�Ľ�����Ҫ��͵�����ȣ�Ĭ��24
|
| 159 | extern 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)
|
| 171 | extern void rtk_status_update(rtk_out_status pRtkStatus);
|
| 172 |
|
| 173 |
|
| 174 | #ifdef __cplusplus
|
| 175 | }
|
| 176 | #endif
|
| 177 |
|
| 178 |
|
| 179 | #endif /* _RTK_FUN_H_ */
|