问题:冷启动指令无效果
原因:8122 gnss保存了星历数据
解决方案:打开gnss时关闭星历保存
影响:影响gnss功能模块
Change-Id: If869301152e9cdf076351a1e17a1404e79af0059
diff --git a/mbtk/mbtk_gnssd/gnss_hd8122.c b/mbtk/mbtk_gnssd/gnss_hd8122.c
index e61bfe6..de0a5fa 100755
--- a/mbtk/mbtk_gnssd/gnss_hd8122.c
+++ b/mbtk/mbtk_gnssd/gnss_hd8122.c
@@ -573,6 +573,23 @@
return GNSS_ERR_OK;
}
+static gnss_err_enum gnss_8122_ephsave(int fd, uint8 status)
+{
+ uint8 buff[GNSS_PACK_BUFF_SIZE];
+ LOGD("EPHSAVE");
+ int len = pack_create(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_EPHSAVE, 1, (uint8*)(&status), buff, sizeof(buff));
+ if(len <= 0)
+ {
+ LOGE("pack_create() fail.");
+ return GNSS_ERR_ARG;
+ }
+ log_hex("PACK", buff, len);
+ gnss_write(fd, buff, len);
+ msg_insert(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_EPHSAVE);
+ return GNSS_ERR_OK;
+}
+
+
int gnss_8122_dev_open()
{
//return mbtk_gpio_value_set(GNSS_POWER_GPIO, MBTK_GPIO_DIRECT_OUT, 1);
@@ -601,6 +618,14 @@
return gnss_port_close(fd);
}
+int gnss_8122_init_set(int fd)
+{
+ sleep(1); //wait 8122 ready...
+ gnss_8122_ephsave(fd, (uint8)HD8122_EPHSAVE_STATUS_DISABLE);
+ gnss_8122_cfg_save(fd);
+ return GNSS_ERR_OK;
+}
+
int gnss_8122_fw_dl(int fd, const char *fw_name, const char *dev)
{
int uart_fd = OpenUart(dev);//PORT_NAME234