Add 8122 gnss download(Not OK)
Change-Id: Ib276104c1f5f3c0e0284791602fe409a629bde8f
diff --git a/mbtk/mbtk_gnssd/gnss_hd8122.c b/mbtk/mbtk_gnssd/gnss_hd8122.c
index 58048f1..2ae29c1 100755
--- a/mbtk/mbtk_gnssd/gnss_hd8122.c
+++ b/mbtk/mbtk_gnssd/gnss_hd8122.c
@@ -26,12 +26,14 @@
#include "mbtk_utils.h"
#include "gnss_utils.h"
#include "gnss_hd8122.h"
+#include "hd8122_dl/hd8040_upgrade.h"
#define UART_BITRATE_NMEA_DEF_FW 115200 // Default bitrate.
#define GNSS_POWER_GPIO 43
#define GNSS_SET_TIMEOUT 3000 // 3s
#define GNSS_PACK_BUFF_SIZE 1024
#define GNSS_MSG_NUM_MAX 30
+#define READ_LEN_MAX 1024 //BOOT_UPGRADE_BUFF_MAX_1
static pthread_cond_t read_cond;
@@ -43,13 +45,18 @@
static hd8122_msg_id_t msg_array[GNSS_MSG_NUM_MAX];
int gnss_write(int fd, const void *data, int data_len);
+int OpenUart(char* UART_DEV);
+int uart_close(int fd);
+int fw_update_boot(int uart_fd, uint8_t *data, uint32_t len);
-static uint16 fletcher16(const uint8_t* data, int data_len) {
+static uint16 fletcher16(const uint8_t* data, int data_len)
+{
uint32_t sum1 = 0;
uint32_t sum2 = 0;
int index;
- for (index = 0; index < data_len; ++index ) {
+ for (index = 0; index < data_len; ++index )
+ {
sum1 += data[index];
sum2 += sum1;
}
@@ -59,7 +66,8 @@
static void gnss_set_timer_cb(int signo)
{
- if(setting_busy) {
+ if(setting_busy)
+ {
pthread_mutex_lock(&read_mutex);
pthread_cond_signal(&read_cond);
pthread_mutex_unlock(&read_mutex);
@@ -71,7 +79,8 @@
static void msg_init()
{
unsigned int i = 0;
- while(i < ARRAY_SIZE(msg_array)) {
+ while(i < ARRAY_SIZE(msg_array))
+ {
msg_array[i].enable = FALSE;
i++;
}
@@ -80,16 +89,20 @@
static int msg_insert(uint8 gid, uint8 sid)
{
unsigned int i = 0;
- while(i < ARRAY_SIZE(msg_array)) {
+ while(i < ARRAY_SIZE(msg_array))
+ {
if(!msg_array[i].enable)
break;
i++;
}
- if(i == ARRAY_SIZE(msg_array)) {
+ if(i == ARRAY_SIZE(msg_array))
+ {
LOGE("Msg full : %d", i);
return -1;
- } else {
+ }
+ else
+ {
msg_array[i].enable = TRUE;
msg_array[i].gid = gid;
msg_array[i].sid = sid;
@@ -100,16 +113,20 @@
static int msg_find(uint8 gid, uint8 sid)
{
unsigned int i = 0;
- while(i < ARRAY_SIZE(msg_array)) {
+ while(i < ARRAY_SIZE(msg_array))
+ {
if(msg_array[i].enable && gid == msg_array[i].gid && sid == msg_array[i].sid)
break;
i++;
}
- if(i == ARRAY_SIZE(msg_array)) {
+ if(i == ARRAY_SIZE(msg_array))
+ {
LOGE("No found %d - %d", gid, sid);
return -1;
- } else {
+ }
+ else
+ {
return i;
}
}
@@ -117,12 +134,15 @@
static int msg_remove(uint8 gid, uint8 sid)
{
int i = msg_find(gid, sid);
- if(i >= 0) {
+ if(i >= 0)
+ {
msg_array[i].enable = FALSE;
msg_array[i].gid = 0;
msg_array[i].sid = 0;
return 0;
- } else {
+ }
+ else
+ {
return -1;
}
}
@@ -131,7 +151,8 @@
{
unsigned int i = 0;
int count = 0;
- while(i < ARRAY_SIZE(msg_array)) {
+ while(i < ARRAY_SIZE(msg_array))
+ {
if(msg_array[i].enable)
count++;
i++;
@@ -139,9 +160,63 @@
return count;
}
+static uint32_t read_bin_file(uint8_t *path, uint8_t *buff)
+{
+ int fp = -1;
+ int ret = 0;
+ int i = 0;
+ int size = 0;
+
+ if (NULL == path || NULL == buff)
+ {
+ LOGE("ARG error");
+ return 0;
+ }
+
+ fp = open((char *)path, O_RDONLY);
+ if(fp < 0)
+ {
+ LOGE( "open file failed ! errno is %d", errno);
+ return 0;
+ }
+
+ size = lseek(fp, 0x00, SEEK_END);
+ if(size <= 0)
+ {
+ LOGE( "file is empty.");
+ return 0;
+ }
+
+ LOGD( "file size is:%d", size);
+ lseek(fp, 0x00, SEEK_SET);
+ while(1)
+ {
+ ret = read(fp, buff, READ_LEN_MAX);
+ i += ret;
+ if(ret == READ_LEN_MAX)
+ {
+ buff += READ_LEN_MAX;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ LOGD("file size is:%d,i:%d", size, i);
+ close(fp);
+ if(size != i)
+ {
+ return 0;
+ }
+ return size;
+}
+
+
static int pack_create(hd8122_id_type_enum id_type, uint8 id, uint16 data_len, const uint8 *data, uint8 *pack, int pack_len)
{
- if(pack == NULL || pack_len < HD8122_PACK_LEN_MIN) {
+ if(pack == NULL || pack_len < HD8122_PACK_LEN_MIN)
+ {
return -1;
}
memset(pack, 0, pack_len);
@@ -150,7 +225,8 @@
*data_ptr++ = (uint8)id_type;
*data_ptr++ = id;
data_ptr += uint16_2_byte(data_len, data_ptr, false);
- if(data_len > 0) {
+ if(data_len > 0)
+ {
memcpy(data_ptr, data, data_len);
data_ptr += data_len;
}
@@ -163,40 +239,52 @@
// f1 d9 05 00 02 00 06 01 0f 38
static int msg_array_change(const uint8 *pack, int pack_len, hd8122_id_ack_enum *ack_nak)
{
- if(pack_len == 0 || pack_len % 10) {
+ if(pack_len == 0 || pack_len % 10)
+ {
LOGE("pack_len(%d) error.", pack_len);
return -1;
}
int count = pack_len / 10;
int i = 0;
- while(i < count) {
+ while(i < count)
+ {
const uint8 *ptr = pack + i * 10;
- if(ptr[0] != 0xf1 || ptr[1] != 0xd9) {
+ if(ptr[0] != 0xf1 || ptr[1] != 0xd9)
+ {
LOGE("Pack head error : %02x %02x", ptr[0], ptr[1]);
return -1;
}
- if(ptr[2] != 0x05) {
+ if(ptr[2] != 0x05)
+ {
LOGE("Type not 0x05 : %02x", ptr[2]);
return -1;
}
int index = msg_find(ptr[6], ptr[7]);
- if(index >= 0) {
- if(ptr[3] == 0x01) {
+ if(index >= 0)
+ {
+ if(ptr[3] == 0x01)
+ {
msg_array[index].ack_nak = HD8122_ID_ACK_ACK;
- } else if(ptr[3] == 0x00) {
+ }
+ else if(ptr[3] == 0x00)
+ {
msg_array[index].ack_nak = HD8122_ID_ACK_NAK;
// There is a nak as a failure.
*ack_nak = HD8122_ID_ACK_NAK;
- } else {
+ }
+ else
+ {
LOGE("ID not 0x00 or 0x01 : %02x", ptr[3]);
return -1;
}
msg_array[index].enable = FALSE;
- } else {
+ }
+ else
+ {
LOGE("Unknown gid - %d, sid - %d", ptr[6], ptr[7]);
return -1;
}
@@ -206,17 +294,22 @@
return 0;
}
-static void gnss_cmd_rsp_process(const void *data, int data_len) {
+static void gnss_cmd_rsp_process(const void *data, int data_len)
+{
const char *ptr = (const char*)data;
log_hex("RSP", data, data_len);
hd8122_id_ack_enum ack_nak = HD8122_ID_ACK_ACK;
- if(!msg_array_change((const uint8*)data, data_len, &ack_nak)) {
+ if(!msg_array_change((const uint8*)data, data_len, &ack_nak))
+ {
if(setting_waitting && msg_count() == 0)
{
- if(ack_nak == HD8122_ID_ACK_ACK) {
+ if(ack_nak == HD8122_ID_ACK_ACK)
+ {
gnss_set_result = GNSS_ERR_OK;
- } else {
+ }
+ else
+ {
gnss_set_result = GNSS_ERR_UNKNOWN;
}
@@ -227,7 +320,9 @@
pthread_mutex_unlock(&read_mutex);
setting_waitting = FALSE;
}
- } else {
+ }
+ else
+ {
LOGW("Unknown rsp data.");
}
}
@@ -237,7 +332,8 @@
uint8 buff[GNSS_PACK_BUFF_SIZE];
LOGD("RESET");
int len = pack_create(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_SIMPLERST, 1, (uint8*)(&reset), buff, sizeof(buff));
- if(len <= 0) {
+ if(len <= 0)
+ {
LOGE("pack_create() fail.");
return GNSS_ERR_ARG;
}
@@ -253,7 +349,8 @@
//uint8 mode_str[4];
//uint32_2_byte(mode, mode_str, TRUE);
int len = pack_create(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_NAVSAT, 4, (uint8*)(&mode), buff, sizeof(buff));
- if(len <= 0) {
+ if(len <= 0)
+ {
LOGE("pack_create() fail.");
return GNSS_ERR_ARG;
}
@@ -272,7 +369,8 @@
data[1] = id;
data[2] = period;
int len = pack_create(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_MSG, 3, data, buff, sizeof(buff));
- if(len <= 0) {
+ if(len <= 0)
+ {
LOGE("pack_create() fail.");
return GNSS_ERR_ARG;
}
@@ -289,7 +387,8 @@
//uint8 elev_buff[4];
//uint32_2_byte((uint32)elev, elev_buff, TRUE);
int len = pack_create(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_ELEV, 8, (uint8*)elev, buff, sizeof(buff));
- if(len <= 0) {
+ if(len <= 0)
+ {
LOGE("pack_create() fail.");
return GNSS_ERR_ARG;
}
@@ -303,7 +402,8 @@
uint8 buff[GNSS_PACK_BUFF_SIZE];
LOGD("NMEA-VER");
int len = pack_create(HD8122_ID_TYPE_CFG, HD8122_ID_CFG_NMEAVER, 1, (uint8*)(&ver), buff, sizeof(buff));
- if(len <= 0) {
+ if(len <= 0)
+ {
LOGE("pack_create() fail.");
return GNSS_ERR_ARG;
}
@@ -336,24 +436,68 @@
return gnss_port_close(fd);
}
-int gnss_8122_fw_dl(int fd, const char *dev)
+int gnss_8122_fw_dl(int fd, const char *fw_name, const char *dev)
{
- return 0;
+ int uart_fd = OpenUart(dev);//PORT_NAME234
+ if (uart_fd < 0)
+ {
+ LOGE("open uart failed %d[%d]", uart_fd, errno);
+ return GNSS_ERR_OPEN_DEV;
+ }
+
+ uint8_t *g_bin_buff = (uint8_t*)malloc(500*1024);
+ if(g_bin_buff == NULL) {
+ LOGE("malloc() fail : %d", errno);
+ return GNSS_ERR_UNKNOWN;
+ }
+ memset(g_bin_buff, 0, 500*1024);
+ uint32_t len = read_bin_file(fw_name, g_bin_buff);
+ if (len <= 0)
+ {
+ LOGE("Read file failed ,len = %d", len);
+ return GNSS_ERR_DL_FW;
+ }
+ if(gnss_8122_dev_open()) {
+ LOGE("open gnss device fail:%d", errno);
+ return GNSS_ERR_DL_FW;
+ }
+ int ret = fw_update_boot(uart_fd, g_bin_buff, len);
+ free(g_bin_buff);
+ if (ret < 0)
+ {
+ LOGE("fw_update_boot() fail : %d", ret);
+ return GNSS_ERR_DL_FW;
+ }
+ uart_close(uart_fd);
+ if(ret == HDBD_UPG_SUCESS)
+ {
+ LOGD("upgrade sucess!");
+ return GNSS_ERR_OK;
+ }
+ else
+ {
+ LOGD("upgrade FAIL, fail style:%d", ret);
+ return GNSS_ERR_DL_FW;
+ }
}
void gnss_8122_set_cb(const void *data, int data_len)
{
const char *buff = (const char*)data;
- if(setting_busy) { // Has setting cmd process.
+ if(setting_busy) // Has setting cmd process.
+ {
gnss_cmd_rsp_process(data, data_len);
}
}
gnss_err_enum gnss_8122_set(int fd, const char *cmd, void *cmd_rsp, int cmd_rsp_len)
{
- if(setting_busy) {
+ if(setting_busy)
+ {
return GNSS_ERR_SET_BUSY;
- } else {
+ }
+ else
+ {
bool should_wait_rsp = TRUE;
setting_busy = TRUE;
gnss_set_rsp_ptr = cmd_rsp;
@@ -361,148 +505,195 @@
msg_init();
mbtk_timer_set(gnss_set_timer_cb, GNSS_SET_TIMEOUT);
- if(memcmp(cmd, "$RESET", 6) == 0) { // $RESET,<mode>
+ if(memcmp(cmd, "$RESET", 6) == 0) // $RESET,<mode>
+ {
gnss_reset_type_enum mode = (gnss_reset_type_enum)atoi(cmd + 7);
- if(mode == GNSS_RESET_TYPE_HOT) {
+ if(mode == GNSS_RESET_TYPE_HOT)
+ {
gnss_set_result = gnss_8122_reset(fd, 3);
- } else if(mode == GNSS_RESET_TYPE_WARM) {
+ }
+ else if(mode == GNSS_RESET_TYPE_WARM)
+ {
gnss_set_result = gnss_8122_reset(fd, 2);
- } else if(mode == GNSS_RESET_TYPE_COLD) {
+ }
+ else if(mode == GNSS_RESET_TYPE_COLD)
+ {
gnss_set_result = gnss_8122_reset(fd, 1);
- } else {
+ }
+ else
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
should_wait_rsp = FALSE;
- } else if(memcmp(cmd, "$SYSCFG", 7) == 0) { // $SYSCFG,<mode>
+ }
+ else if(memcmp(cmd, "$SYSCFG", 7) == 0) // $SYSCFG,<mode>
+ {
uint32 mode = 0;
mode = (uint32)atoi(cmd + 8);
uint32 new_mode = 0;
- if(((GNSS_SET_SYSCFG_GPS | GNSS_SET_SYSCFG_BDS | GNSS_SET_SYSCFG_GLO | GNSS_SET_SYSCFG_GAL) & mode) != mode) {
+ if(((GNSS_SET_SYSCFG_GPS | GNSS_SET_SYSCFG_BDS | GNSS_SET_SYSCFG_GLO | GNSS_SET_SYSCFG_GAL) & mode) != mode)
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
- if(mode & GNSS_SET_SYSCFG_GPS) { // GPS
+ if(mode & GNSS_SET_SYSCFG_GPS) // GPS
+ {
new_mode |= 0x00000001;
}
- if(mode & GNSS_SET_SYSCFG_BDS) { // BDS
+ if(mode & GNSS_SET_SYSCFG_BDS) // BDS
+ {
new_mode |= 0x00000002;
}
- if(mode & GNSS_SET_SYSCFG_GLO) { // GLO
+ if(mode & GNSS_SET_SYSCFG_GLO) // GLO
+ {
new_mode |= 0x00000004;
}
- if(mode & GNSS_SET_SYSCFG_GAL) { // GAL
+ if(mode & GNSS_SET_SYSCFG_GAL) // GAL
+ {
new_mode |= 0x00000010;
}
gnss_set_result = gnss_8122_syscfg(fd, new_mode);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
should_wait_rsp = TRUE;
- } else if(memcmp(cmd, "$MSGCFG", 7) == 0) { // $MSGCFG,<mode>,<rate>
+ }
+ else if(memcmp(cmd, "$MSGCFG", 7) == 0) // $MSGCFG,<mode>,<rate>
+ {
uint32 mode;
int rate;
- if(2 == sscanf(cmd, "$MSGCFG,%d,%d", &mode, &rate)) {
+ if(2 == sscanf(cmd, "$MSGCFG,%d,%d", &mode, &rate))
+ {
int time = rate / 1000; // s
- if(time < 0) {
+ if(time < 0)
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
if(((GNSS_SET_MSGCFG_RMC | GNSS_SET_MSGCFG_VTG | GNSS_SET_MSGCFG_GGA | GNSS_SET_MSGCFG_GSA
- | GNSS_SET_MSGCFG_GRS | GNSS_SET_MSGCFG_GSV | GNSS_SET_MSGCFG_GLL | GNSS_SET_MSGCFG_ZDA
- | GNSS_SET_MSGCFG_GST | GNSS_SET_MSGCFG_TXT) & mode) != mode) {
+ | GNSS_SET_MSGCFG_GRS | GNSS_SET_MSGCFG_GSV | GNSS_SET_MSGCFG_GLL | GNSS_SET_MSGCFG_ZDA
+ | GNSS_SET_MSGCFG_GST | GNSS_SET_MSGCFG_TXT) & mode) != mode)
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
- if(mode & GNSS_SET_MSGCFG_RMC) {
+ if(mode & GNSS_SET_MSGCFG_RMC)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF8, 0x05, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_VTG) {
+ if(mode & GNSS_SET_MSGCFG_VTG)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x06, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_GGA) {
+ if(mode & GNSS_SET_MSGCFG_GGA)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x00, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_GSA) {
+ if(mode & GNSS_SET_MSGCFG_GSA)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x02, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_GRS) {
+ if(mode & GNSS_SET_MSGCFG_GRS)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x03, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_GSV) {
+ if(mode & GNSS_SET_MSGCFG_GSV)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x04, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_GLL) {
+ if(mode & GNSS_SET_MSGCFG_GLL)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x01, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_ZDA) {
+ if(mode & GNSS_SET_MSGCFG_ZDA)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x07, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_GST) {
+ if(mode & GNSS_SET_MSGCFG_GST)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x08, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- if(mode & GNSS_SET_MSGCFG_TXT) {
+ if(mode & GNSS_SET_MSGCFG_TXT)
+ {
gnss_set_result = gnss_8122_msgcfg(fd, 0xF0, 0x20, time);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
}
- } else {
+ }
+ else
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
should_wait_rsp = TRUE;
- } else if(memcmp(cmd, "$MINEL", 6) == 0) { // $MINEL,<elev>
+ }
+ else if(memcmp(cmd, "$MINEL", 6) == 0) // $MINEL,<elev>
+ {
#if 0
float elev = 0.0f;
elev = (float)atof(cmd + 7);
// LOGD("ELEV : %f", elev);
// log_hex("ELEV", &elev, sizeof(double));
- if(elev < -90.0f || elev > 90.0f) {
+ if(elev < -90.0f || elev > 90.0f)
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
@@ -510,7 +701,8 @@
elevs[0] = elev;
elevs[1] = elev;
gnss_set_result = gnss_8122_minel(fd, elevs);
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
should_wait_rsp = FALSE;
@@ -518,20 +710,30 @@
gnss_set_result = GNSS_ERR_UNSUPPORT;
goto set_fail;
#endif
- } else if(memcmp(cmd, "$NMEACFG", 8) == 0) { // $NMEACFG,<ver>
+ }
+ else if(memcmp(cmd, "$NMEACFG", 8) == 0) // $NMEACFG,<ver>
+ {
#if 0
gnss_memaver_type_enum version = (gnss_memaver_type_enum)atoi(cmd + 9);
- if(version == GNSS_MEMAVER_TYPE_3_0) {
+ if(version == GNSS_MEMAVER_TYPE_3_0)
+ {
gnss_set_result = gnss_8122_nmeaver(fd, 1);
- } else if(version == GNSS_MEMAVER_TYPE_4_0) {
+ }
+ else if(version == GNSS_MEMAVER_TYPE_4_0)
+ {
gnss_set_result = gnss_8122_nmeaver(fd, 2);
- } else if(version == GNSS_MEMAVER_TYPE_4_1) {
+ }
+ else if(version == GNSS_MEMAVER_TYPE_4_1)
+ {
gnss_set_result = gnss_8122_nmeaver(fd, 3);
- } else {
+ }
+ else
+ {
gnss_set_result = GNSS_ERR_ARG;
goto set_fail;
}
- if(gnss_set_result != GNSS_ERR_OK) {
+ if(gnss_set_result != GNSS_ERR_OK)
+ {
goto set_fail;
}
should_wait_rsp = FALSE;
@@ -547,19 +749,22 @@
goto set_fail;
}
-set_success:
- if(should_wait_rsp) {
+ set_success:
+ if(should_wait_rsp)
+ {
setting_waitting = TRUE;
pthread_mutex_lock(&read_mutex);
pthread_cond_wait(&read_cond, &read_mutex);
pthread_mutex_unlock(&read_mutex);
- } else {
+ }
+ else
+ {
mbtk_timer_clear();
}
setting_busy = FALSE;
return gnss_set_result;
-set_fail:
+ set_fail:
setting_busy = FALSE;
mbtk_timer_clear();
return gnss_set_result;