Merge "Revert "[Feature][ZK-15][audio] Set the PA's volume gain level"" into MR3.0-merge
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-gnss/liblynq-gnss.bb b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-gnss/liblynq-gnss.bb
index bc8c208..011c71d 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-gnss/liblynq-gnss.bb
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-gnss/liblynq-gnss.bb
@@ -5,7 +5,7 @@
LICENSE = "MediaTekProprietary"
#LIC_FILES_CHKSUM = "file://LICENSE;md5=e1696b147d49d491bcb4da1a57173fff"
inherit workonsrc
-DEPENDS += "platform-libs gpshal6635 openssl curl liblynq-log"
+DEPENDS += "platform-libs gpshal6635 openssl curl liblynq-log liblynq-uci"
WORKONSRC = "${TOPDIR}/../src/lynq/lib/liblynq-gnss/"
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -62,4 +62,4 @@
addtask bachclean
do_bachclean () {
oe_runmake clean
-}
\ No newline at end of file
+}
diff --git a/src/lynq/lib/liblynq-gnss/makefile b/src/lynq/lib/liblynq-gnss/makefile
index f1ca7fc..95885d5 100755
--- a/src/lynq/lib/liblynq-gnss/makefile
+++ b/src/lynq/lib/liblynq-gnss/makefile
@@ -32,6 +32,7 @@
-lcutils \
-lgnsshal \
-lpthread \
+ -llynq-uci \
# -llynq-log \
$(warning libs=$(LOCAL_LIBS))
diff --git a/src/lynq/lib/liblynq-gnss/src/lynq_callback.c b/src/lynq/lib/liblynq-gnss/src/lynq_callback.c
index 2663332..37a4adc 100755
--- a/src/lynq/lib/liblynq-gnss/src/lynq_callback.c
+++ b/src/lynq/lib/liblynq-gnss/src/lynq_callback.c
@@ -3,11 +3,20 @@
#include<unistd.h>
#include<errno.h>
#include<string.h>
+#include <sys/time.h>
+#include <time.h>
#include"lynq_gnsshal.h"
#include"mtk_lbs_utility.h"
#include"lynq_gnss.h"
+#define NMEA_ACC "ACCURACY"
+#define NMEA_GSA "GSA"
+#define NMEA_RMC "RMC"
+#define NMEA_GGA "GGA"
+#define NMEA_VTG "VTG"
+#define NMEA_GSV "GSV"
+
extern lynq_gnss_cb* lynq_callbacks;
extern lynq_raw_gnss_cbs *lynq_meas_callbacks;
@@ -41,8 +50,46 @@
}
+extern int g_gnss_sync_enable_flag;
+extern int g_gnss_sync_done;
+
+static inline int update_systime_time(GpsUtcTime gpstime)
+{
+ struct timeval tv;
+ int ret = gettimeofday(&tv, NULL);
+ if (ret == -1) {
+ perror("gettimeofday");
+ return -1;
+ }
+ if (tv.tv_sec == gpstime / 1000)
+ {
+ return 0;
+ }
+ printf("Now: %ld.%06ld\n", tv.tv_sec, tv.tv_usec);
+ tv.tv_sec = gpstime / 1000;
+ tv.tv_usec = (gpstime % 1000) * 1000;
+ ret = settimeofday(&tv, NULL);
+ if (ret == -1) {
+ perror("settimeofday");
+ return -1;
+ }
+
+ return 0;
+}
+
void lynq_gps_nmea_callback(GpsUtcTime timestamp, const char* nmea, int length)
{
+ if (g_gnss_sync_enable_flag == 1 && g_gnss_sync_done == 0)
+ {
+ if( strncmp(nmea+3,NMEA_RMC,strlen(NMEA_RMC)) == 0 && nmea[18] == 'A')
+ {
+ if (update_systime_time(timestamp) == 0)
+ {
+ g_gnss_sync_done = 1;
+ }
+ }
+ }
+
lynq_callbacks->lynq_nmea_cb(timestamp,nmea,length);
}
@@ -157,13 +204,6 @@
}
-#define NMEA_ACC "ACCURACY"
-#define NMEA_GSA "GSA"
-#define NMEA_RMC "RMC"
-#define NMEA_GGA "GGA"
-#define NMEA_VTG "VTG"
-#define NMEA_GSV "GSV"
-
void lynq_at_gps_nmea_callback(GpsUtcTime timestamp, const char* nmea, int length)
{
if (at_gpsnmea_status == 1)
diff --git a/src/lynq/lib/liblynq-gnss/src/lynq_gnss.c b/src/lynq/lib/liblynq-gnss/src/lynq_gnss.c
index 7ae6c4f..0fbf749 100755
--- a/src/lynq/lib/liblynq-gnss/src/lynq_gnss.c
+++ b/src/lynq/lib/liblynq-gnss/src/lynq_gnss.c
@@ -24,6 +24,7 @@
#include "mtk_lbs_utility.h"
#include "lynq_prop.h"
#include "mnldinf_utility.h"
+#include "include/lynq_uci.h"
#define LOG_TAG "LYNQ_GNSS"
@@ -44,6 +45,9 @@
static int g_lynq_gnss_calback_flag = 0;
+int g_gnss_sync_enable_flag = 0;
+int g_gnss_sync_done = 0;
+
enum
{
Gnss_ok = 0,
@@ -131,6 +135,10 @@
int lynq_gnss_start(void)
{
+ char gnss_sync_enable[24] = "";
+ lynq_get_value("lynq_uci", "lynq_sync_time", "lynq_gnss_sync_time_enable" , gnss_sync_enable);
+ g_gnss_sync_enable_flag = atoi(gnss_sync_enable);
+ g_gnss_sync_done = 0;
//memset(&lynq_debug_data, 0, sizeof(DebugData));
gpshal_set_gps_state_intent(GPSHAL_STATE_START);
gpshal2mnl_gps_start();