[Feature][T8TSK-175][GNSS]Add third part rtk lib

Change-Id: I84550d7320b392a610b44de89c161fe5334ef078
diff --git a/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf b/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf
index 2cd277c..e6d3f7b 100755
--- a/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf
+++ b/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf
@@ -81,3 +81,9 @@
 
 #OPENSSH_CFG value:"PLATFORM","GSW"
 MOBILETEK_OPENSSH_CFG = "PLATFORM"
+
+#OEMAPP_CFG value:"PLATFORM","GSW"
+MOBILETEK_OEMAPP_CFG = "PLATFORM"
+
+#MOBILETEK_RTK_CFG:"enable","disable"
+MOBILETEK_RTK_CFG = "disable"
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/libRTKFUN.so b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/libRTKFUN.so
new file mode 100755
index 0000000..b1a15aa
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/libRTKFUN.so
Binary files differ
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/libcmcc_sdk.so b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/libcmcc_sdk.so
new file mode 100755
index 0000000..b56dd84
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/libcmcc_sdk.so
Binary files differ
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/rtk_fun.h b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/rtk_fun.h
new file mode 100755
index 0000000..76cbcdc
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/files/rtk_fun.h
@@ -0,0 +1,179 @@
+#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_ */

diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/liblynq-rtk.bb b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/liblynq-rtk.bb
new file mode 100755
index 0000000..168fef5
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-rtk/liblynq-rtk.bb
@@ -0,0 +1,41 @@
+inherit pkgconfig externalsrc package

+SUMMARY = "RTK Library"

+LICENSE = "CLOSED"

+#LIC_FILES_CHKSUM = "file://LICENSE;md5=e1696b147d49d491bcb4da1a57173fff"

+

+SRC_URI = "file://libRTKFUN.so \

+           file://libcmcc_sdk.so \

+           file://rtk_fun.h"

+

+TARGET_CC_ARCH += "${LDFLAGS}"

+

+FILES_${PN} = "${base_libdir}/*.so \

+               ${base_bindir}\

+               ${base_sbindir} \"

+

+FILES_${PN} += "${libdir}/libRTKFUN.so"

+FILES_${PN} += "${libdir}/libcmcc_sdk.so"

+

+FILES_${PN}-dev = "${includedir} \

+                    ${libdir/*.so}"

+

+TOOLCHAIN_HOST_TASK_append = " nativesdk-python-core"

+

+INSANE_SKIP_${PN} += "ldflags"

+INSANE_SKIP_${PN}-dev += "ldflags"

+INSANE_SKIP_${PN} += "dev-so"

+INSANE_SKIP_${PN} += "already-stripped"

+INSANE_SKIP_${PN} += "installed-vs-shipped"

+

+

+INHIBIT_PACKAGE_STRIP = "1"

+INHIBIT_SYSROOT_STRIP = "1"

+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"

+

+do_install () {

+    install -d ${D}${libdir}

+    install -d ${D}${includedir}

+    cp -arf ${S}/../rtk_fun.h ${D}${includedir}/

+    install -m 0755 ${S}/../libRTKFUN.so ${D}${libdir}/

+    install -m 0755 ${S}/../libcmcc_sdk.so ${D}${libdir}/

+}

diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb b/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
index 2f72c2a..de43261 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
@@ -63,4 +63,8 @@
 RDEPENDS_packagegroup-lync-mt2735 += "\
         ${@bb.utils.contains('MOBILETEK_USB_CFG', 'GSW', ' lynq-ndis-uevent', '', d)} \
 "
+
+RDEPENDS_packagegroup-lync-mt2735 += "\
+        ${@bb.utils.contains('MOBILETEK_RTK_CFG', 'enable', ' liblynq-rtk', '', d)} \
+"