Add GNSS N50DB support.
Change-Id: Id65a69a0a7c149ef1e75db01e544f94b4f178d45
diff --git a/mbtk/mbtk_gnssd/gnss_main.c b/mbtk/mbtk_gnssd/gnss_main.c
index c4f2d8d..7c6191b 100755
--- a/mbtk/mbtk_gnssd/gnss_main.c
+++ b/mbtk/mbtk_gnssd/gnss_main.c
@@ -18,7 +18,7 @@
#include "gnss_6228.h"
#include "gnss_hd8122.h"
#include "gnss_asr5311.h"
-
+#include "gnss_n50db.h"
#define GNSS_DEBUG 1
#define GNSS_UBUS_ENABLE 1
@@ -72,7 +72,7 @@
static void help()
{
- LOGD("mbtk_gnssd <6228/8122/5311> <gnss_dev> <0/1>");
+ LOGD("mbtk_gnssd <6228/8122/5311/N50DB> <gnss_dev> <0/1>");
}
static int arg_check(int argc, char *argv[])
@@ -83,7 +83,8 @@
}
// Only support 6228/8122/5311.
- if(strcmp(argv[1], GNSS_ID_6228) && strcmp(argv[1], GNSS_ID_8122) && strcmp(argv[1], GNSS_ID_5311)) {
+ if(strcmp(argv[1], GNSS_ID_6228) && strcmp(argv[1], GNSS_ID_8122) && strcmp(argv[1], GNSS_ID_5311)
+ && strcmp(argv[1], GNSS_ID_N50DB)) {
LOGE("argv[1] = %s", argv[1]);
goto check_fail;
}
@@ -367,7 +368,10 @@
#endif
if(!nmea_check(nmea, data_len)) {
- LOGD("NO-NMEA:%s", nmea);
+ // No print "$HOSTSLEEP".
+ if(memcmp(nmea, "$HOSTSLEEP", strlen("$HOSTSLEEP"))) {
+ LOGD("NO-NMEA:%s", nmea);
+ }
#if GNSS_DEBUG
log_save(nmea_log_fd, "/**/", 4);
log_save(nmea_log_fd, nmea, data_len);
@@ -450,7 +454,9 @@
gnss_nmea_process(nmea_buff, nmea_buff_len);
} else if(nmea_buff_len > 0) {
nmea_buff[nmea_buff_len] = '\0';
- LOGD("NO-NMEA:%s", nmea_buff);
+ if(memcmp(nmea_buff, "$HOSTSLEEP", strlen("$HOSTSLEEP"))) {
+ LOGD("NO-NMEA:%s", nmea_buff);
+ }
#if GNSS_DEBUG
log_save(nmea_log_fd, "/**/", 4);
log_save(nmea_log_fd, nmea_buff, nmea_buff_len);
@@ -867,6 +873,7 @@
int gnss_dl_fw(const char* fw_name, void *rsp, int rsp_len)
{
+ // Only 8122 support download fw.
if(gnss_info.gnss_id != GNSS_TYPE_8122) {
return GNSS_ERR_UNSUPPORT;
}
@@ -884,7 +891,7 @@
return gnss_info.gnss_fw_dl(gnss_info.fd, fw_name, gnss_info.dev_name);
}
} else {
- return GNSS_ERR_UNKNOWN;
+ return GNSS_ERR_UNSUPPORT;
}
}
@@ -1041,6 +1048,19 @@
gnss_info.gnss_dl_read_cb = NULL;
gnss_info.gnss_set = gnss_5311_set;
gnss_info.gnss_set_cb = gnss_5311_set_cb;
+ } else if(!strcmp(argv[1], GNSS_ID_N50DB)) {
+ gnss_info.gnss_id = GNSS_TYPE_N50DB;
+ gnss_info.auto_open = (bool)atoi(argv[3]);
+ gnss_info.auto_dl_fw = FALSE;
+ gnss_info.dl_befor_open = FALSE;
+ gnss_info.gnss_dev_open = gnss_n50db_dev_open;
+ gnss_info.gnss_dev_close = gnss_n50db_dev_close;
+ gnss_info.gnss_open = gnss_n50db_open;
+ gnss_info.gnss_close = gnss_n50db_close;
+ gnss_info.gnss_fw_dl = gnss_n50db_fw_dl;
+ gnss_info.gnss_dl_read_cb = NULL;
+ gnss_info.gnss_set = gnss_n50db_set;
+ gnss_info.gnss_set_cb = gnss_n50db_set_cb;
} else {
LOGE("No support : %s", argv[1]);
return -1;