blob: 76cbcdcea53189337bc6b26e61f81aec949f5d67 [file] [log] [blame]
#ifndef _RTK_FUN_H_
#define _RTK_FUN_H_
#define RTK_SUPPORT
#define ENABLE_RTKFUN //RTK�ĺ����ӿ�
#define ENABLE_RTKCHANGEFREQ //
#include "hardware/gps_mtk.h"
#include "hardware/gps.h"
typedef enum
{
rtk_log_info,
rtk_log_warn,
rtk_log_err
} rtk_log_level;
typedef struct
{
unsigned char bPosFlag; //��ǰ��״̬��0����Ч�� 1�����㣻 2��RTD(SBAS)�� 4��RTK fix�� 5��RTK float�� 6��Dead Reckoing�� 7��Fix pos mode�� 8��Sim mode
unsigned char bTrackNo; //����������
unsigned char bSatNo; //����������
unsigned char bRtkFlag; //RTKԭʼ��״̬(0:ʧ�� 1:���� 3:����̶� 4:�̶� 5:���� 12:���� 13:����ƽ�� 14:�Ƶ�)
double fDiffAge; //�������
unsigned int uGpsWeek; //GPSʱ����
double fWeekSeconds;//GPSʱ��������
double fUTC; //UTCʱ�������1970-01-01 00:00:00��ʼ����
double fLeapSeconds;//����
double fPosX; //X����(m)(WGS84)
double fPosY; //Y����(m)(WGS84)
double fPosZ; //Z����(m)(WGS84)
float fPosXDelta; //X����ı�׼���
float fPosYDelta; //Y����ı�׼���
float fPosZDelta; //Z����ı�׼���
double fLat; //γ�ȣ���λ�ȣ�
double fLong; //���ȣ���λ�ȣ�
double fAlt; //���θߣ���λm��
double fHeightOfGeoid;//�߳��쳣����λm��
float fLatStd; //γ�ȱ�׼��
float fLongStd; //���ȱ�׼��
float fAltStd; //���θ� ��׼��
double fVelX; //X������ٶȣ�m/s��
double fVelY; //Y������ٶ�
double fVelZ; //Z������ٶ�
float fVelXDelta; //X�����ٶȱ�׼��
float fVelYDelta; //Y�����ٶȱ�׼��
float fVelZDelta; //Z�����ٶȱ�׼��
float fVelN; //�������ٶȣ�m/s)
float fVelE; //�������ٶȣ�m/s)
float fVelU; //�췽���ٶȣ�m/s)
float fVelNDelta; //�������ٶȱ�׼�m/s)
float fVelEDelta; //�������ٶȱ�׼�m/s)
float fVelUDelta; //�췽���ٶȱ�׼�m/s)
float fHorSpeed; //�Ե��ٶȣ�m/s)
float fHorSpeedDelta;//�Ե��ٶȱ�׼�m/s)
float fTrueHeading;//���溽��,�켣����ǣ��ȣ����˶�����
float fTrueHeadingDelta;//�켣����DZ�׼��ȣ�
float fHeading2Ant; //˫���ߺ����ݲ�֧�֣����켣����Ǹ�ֵ��
float fHeading2AntDelta; //˫���ߺ��򾫶ȣ��ݲ�֧�֣����켣����ǵı�׼�ֵ��
float fRangeRms; //α�ྫ��
float fPhaseRms; //�ز�����
float fHDOP; //HDOP
float fPDOP; //PDOP
float fVDOP; //VDOP
float fCN0; //��ǰ���붨λ���ǵľ�ֵCN0(dBHz)
double fClkTime; //��ӦMTK���ڲ�gps_clock�е�time_ns�ֶ�
int iBaseStatus;//ͬrtk_base_sdkstatus��������״̬
//RTK����״̬
//0x00000001��ʾ�޻�վ����
//0x00000002��ʾ��Ч���ǵ���10��
//0x00000004��ʾ��Ч��������Ⱦ�ֵ������ֵ��Ĭ��24��
//0x00000008��ʾRTK�������ʧ�ܣ�����ʧ�ܰ������ǹ��٣��۲������������ȵͣ���������ȣ�
//0x00000010��ʾRTKδ������㣨δ�������ԭ������޻�վ���ݡ��л�վ���ݵ��ӳٴ���200��PVT��λʧ�ܡ�ʱ���ж��쳣�ȣ�
int iRtkStatus;
}rtk_result_info;
typedef void (*rtk_out_debuginfo)(const char * pBuff, const int length, const int ilevel);
typedef void (*rtk_out_postdata)(const unsigned char * pBuff, const int length);
typedef void (*rtk_out_basesdkstatus)(const int status);
typedef void (*rtk_out_status)(const int status);
typedef void (*rtk_out_result)(const rtk_result_info * prtk);
typedef void (*rtk_out_result_nmea)(const char * strnmea, const int length);
#ifdef __cplusplus
extern "C" {
#endif
//rtk��ʼ��
extern void rtk_init();
//ͨ�������û����������½
extern void rtk_set_UserInfo(const char* user, const char* pwd);
//�����豸ID��½
extern void rtk_set_DeviceID(const char* device_id);
//�����ƶ�վMTK��NMEA����(GGA/RMC/VTG/GSA/GSV/GST)
extern void rtk_rove_addnmea(const unsigned char * pBuff, const int iBuffLen);
//�����ƶ�վMTK�Ĺ۲���
extern void rtk_rove_addrawmess(GnssData_ext* data);
//�����ƶ�վMTK��ԭʼ������֡
extern int rtk_rove_addrawnav(GnssNavigationMessage * msg);
//rtk��������Ϣ
extern void rtk_result_cb(rtk_out_result pRtk);
//rtk��Nmea���Ľ��(GGA/RMC/VTG/GSA/GSV/GST)
extern void rtk_result_nmea_cb(rtk_out_result_nmea pNmea);
//rtk�Ĵ�ӡ��Ϣ,������Ϊ��
extern void rtk_config_log(rtk_out_debuginfo pLog);
//rtk��������,��������
extern void rtk_config_post(rtk_out_postdata pOut);
//��վ ��������ݣ�������״̬(�������SDK״̬��)
extern void rtk_base_sdkstatus(rtk_out_basesdkstatus pBaseStatus);
//rtk�����Ƿ�ر�ijϵͳ
//bSys------1(GPS) 2(GLO) 3(GAL) 4(QZS) 5(BD2) 6(BD3)
//bLock-----l(Lock) 0:(unLock)
extern void rtk_config_lockout(const unsigned char bSys, const unsigned char bLock);
//��ȡRTK�汾�����20�ֽڣ�
extern void rtk_version(char * strVer);
//rtk�Ƿ��������
//0:����������Ĭ��״̬��
//1:�������ߣ�rtk�ӿڲ��ٽ����������룬����sdk���������ͽ������ݣ�ֹͣ������
//2:���뵥�㶨λ״̬��rtk�ӿڽ��������������������sdkֹͣ����
extern void rtk_gotosleep(const unsigned char bMode);
//��ȡ��ǰ���õ�DeviceID�����128�ֽڣ�
extern void rtk_get_DeviceID(char* device_id);
//���÷�����IP��ַ�ӿ�
//server_ip:��������ַ
extern void rtk_setServerIP(const char* server_ip);
//����RTK�Ľ�����Ҫ��͵�����ȣ�Ĭ��24
extern void rtk_setCN0(const unsigned char bCN0);
//����RTK״̬��ӿڣ��������SDK��״̬��+RTK״̬�룬RTK״̬�����¶���)
//���������ԭʼ�۲�����Ƶ�ʸ���RTK״̬�룬״̬��ύ����֣�����ԭʼ����������ÿ�����һ��״̬���������ߺ������
//4001:��ԭʼ��������(����3�뼰����)
//4002:��NMEA��������(����3�뼰����)
//4003:���������������
//4004:PVTδ��λ
//4005:�����ź���(����Ⱦ�ֵ <30)
//4006:�����ź�һ��(����Ⱦ�ֵ30~35)
//4007:�����źź�(����Ⱦ�ֵ35~40)
//4008:�����ź�ǿ(����Ⱦ�ֵ >40)
extern void rtk_status_update(rtk_out_status pRtkStatus);
#ifdef __cplusplus
}
#endif
#endif /* _RTK_FUN_H_ */