Merge "[Bugfix][T106BUG-376][rtc]rtc wakeup cant work"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb
index f4c89f4..71e2bcf 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb
@@ -17,6 +17,9 @@
BB_INCLUDE_ADD = "--sysroot=${STAGING_DIR_HOST}"
BB_LDFLAGS_ADD = "--sysroot=${STAGING_DIR_HOST} -Wl,--hash-style=gnu"
#Parameters passed to do_compile()
+EXTRA_OEMAKE = "'RAT_CONFIG_C2K_SUPPORT = ${RAT_CONFIG_C2K_SUPPORT}'\
+ 'MTK_MULTI_SIM_SUPPORT = ${MTK_MULTI_SIM_SUPPORT}'\
+ 'TARGET_PLATFORM = ${TARGET_PLATFORM}'"
FILES_${PN} = "${base_libdir}/*.so "
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.cpp
index 01aa10e..d3d8e89 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.cpp
@@ -30,6 +30,10 @@
int (*qser_Gnss_Stop)(uint32_t h_gnss);
int (*qser_Gnss_Delete_Aiding_Data)(uint32_t,DELETE_AIDING_DATA_TYPE_T);
int (*qser_Gnss_InjectTime)(uint32_t,LYNQ_INJECT_TIME_INTO_T *time_info);
+int (*qser_Gnss_Server_Configuration)(char *host, char *id, char *password);
+int (*qser_Gnss_download_tle)();
+int (*qser_Gnss_injectEphemeris)(uint32_t);
+int (*qser_Gnss_Set_Frequency)(uint32_t, int);
void *dlHandle_gnss;
int main(int argc, char *argv[])
@@ -71,11 +75,11 @@
ret =qser_Gnss_Deinit(ph_gnss);
if(ret < 0)
{
- printf("mopen_gnss_client_init FAIL.\n");
+ printf("mopen_gnss_client_Deinit FAIL.\n");
return -1;
}
- printf("mopen_gnss_client_Deinit success ");
- return 0;
+ printf("mopen_gnss_client_Deinit success \n");
+ break;
}
case 3:
{
@@ -83,7 +87,7 @@
ret = qser_AddRxIndMsgHandler((gnss_handler_func_t)&cb,ph_gnss);
if(ret < 0)
{
- printf("lynq_AddRxIndMsgHandler\n");
+ printf("lynq_AddRxIndMsgHandler fail\n");
qser_Gnss_Deinit(ph_gnss);
return -1;
}
@@ -141,8 +145,8 @@
qser_Gnss_Deinit(ph_gnss);
return -1;
}
- break;
printf("stop success\n");
+ break;
}
case 8:
@@ -158,26 +162,32 @@
case 0:
{
ptr = DELETE_NOTHING;//hot
+ break;
}
case 1:
{
ptr = DELETE_EPHEMERIS;//warm
+ break;
}
case 2:
{
ptr = DELETE_ALMANAC;
+ break;
}
case 3:
{
ptr = DELETE_POSITION_TIME;
+ break;
}
case 4:
{
ptr = DELETE_UTC;
+ break;
}
case 5:
{
ptr = DELETE_ALL;//cold
+ break;
}
}
ret = qser_Gnss_Delete_Aiding_Data(ph_gnss,ptr);
@@ -197,11 +207,64 @@
ret = qser_Gnss_InjectTime(ph_gnss,&time_test);
if(ret < 0)
{
- printf("lynq_Gnss_InjectTime fail\n");
+ printf("qser_Gnss_InjectTime fail\n");
qser_Gnss_Deinit(ph_gnss);
return -1;
}
- printf("lynq_Gnss_InjectTime success\n");
+ printf("qser_Gnss_InjectTime success\n");
+ break;
+ }
+ case 10:
+ {
+ qser_Gnss_download_tle=(int(*)())dlsym(dlHandle_gnss, "qser_Gnss_download_tle");
+ ret = qser_Gnss_download_tle();
+ if(ret < 0)
+ {
+ printf("qser_Gnss_download_tle fail\n");
+ return -1;
+ }
+ printf("qser_Gnss_download_tle success\n");
+ break;
+ }
+ case 11:
+ {
+ int frequency;
+ qser_Gnss_Set_Frequency=(int(*)(uint32_t, int))dlsym(dlHandle_gnss, "qser_Gnss_Set_Frequency");
+ printf("=========delete aiding data type=========\n");
+ scanf("%d", &frequency);
+ ret = qser_Gnss_Set_Frequency(ph_gnss,frequency);
+ if(ret < 0)
+ {
+ printf("qser_Gnss_Set_Frequency fail\n");
+ return -1;
+ }
+ printf("frequency is %d\n",frequency);
+ printf("qser_Gnss_Set_Frequency success\n");
+ break;
+ }
+ case 12:
+ {
+ int (*qser_Gnss_injectEphemeris)(uint32_t);
+ qser_Gnss_injectEphemeris=(int(*)(uint32_t))dlsym(dlHandle_gnss, "qser_Gnss_injectEphemeris");
+ ret = qser_Gnss_injectEphemeris(ph_gnss);
+ if(ret < 0)
+ {
+ printf("qser_Gnss_injectEphemeris fail\n");
+ return -1;
+ }
+ printf("qser_Gnss_injectEphemeri ssuccess\n");
+ break;
+ }
+ case 13:
+ {
+ qser_Gnss_Server_Configuration=(int(*)(char *host, char *id, char *password))dlsym(dlHandle_gnss, "qser_Gnss_Server_Configuration");
+ ret = qser_Gnss_Server_Configuration(NULL,"lcz","123456");
+ if(ret < 0)
+ {
+ printf("qser_Gnss_Server_Configuration fail\n");
+ return -1;
+ }
+ printf("qser_Gnss_Server_Configuration ssuccess\n");
break;
}
}
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.h b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.h
index c472cf5..3dc7552 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.h
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-gnss-demo/files/lynq-qser-gnss-demo.h
@@ -110,6 +110,10 @@
"\t7 gnss stop\n"
"\t8 gnss Delete_Aiding_Data and reset\n"
"\t9 gnss injecttime\n"
+ "\t10 gnss download tle\n"
+ "\t11 gnss set frequency\n"
+ "\t12 gnss inject ephemeris\n"
+ "\t13 gnss server_configuration\n"
"please input operator: >> ");
}
void delete_type(void)
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp
index abcea42..732225b 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp
@@ -12,6 +12,7 @@
#define BUF_SIZE 32
#define BUF_PIN 8
+#define VER_SIZE 128
typedef uint32_t sim_client_handle_type;
@@ -49,6 +50,11 @@
int (*qser_sim_enablepin)(sim_client_handle_type h_sim, QSER_SIM_ENABLE_PIN_INFO_T *pt_info);
int (*qser_sim_disablepin)(sim_client_handle_type h_sim, QSER_SIM_DISABLE_PIN_INFO_T *pt_info);
int (*qser_sim_getcardstatus)(sim_client_handle_type h_sim, QSER_SIM_SLOT_ID_TYPE_T simId, QSER_SIM_CARD_STATUS_INFO_T *pt_info);
+int (*qser_sim_getimei)(sim_client_handle_type h_sim, char *imei);
+int (*qser_get_imei_and_sv)(sim_client_handle_type h_sim,char *imei, char*sv);
+int (*qser_reset_modem)(sim_client_handle_type h_sim);
+int (*qser_get_version)(sim_client_handle_type h_sim, char *buf);
+int (*qser_reset_sim)(sim_client_handle_type h_sim);
typedef struct
@@ -70,7 +76,12 @@
{7, "qser_enable_pin"},
{8, "qser_disable_pin"},
{9, "qser_get_sim_status"},
- {10, "qser_deinit_sim"},
+ {10, "qser_get_imei"},
+ {11, "qser_get_imei_and_sv"},
+ {12, "qser_reset_modem"},
+ {13, "qser_get_version"},
+ {14, "qser_reset_sim"},
+ {15, "qser_deinit_sim"},
{-1, NULL}
};
@@ -405,6 +416,105 @@
//qser_deinit_sim
case 10:
{
+ char imei[BUF_SIZE]="";
+ qser_sim_getimei = (int(*)(sim_client_handle_type h_sim, char *imei))dlsym(dlHandle_sim,"qser_sim_getimei");
+ if(NULL != qser_sim_getimei)
+ {
+ res = qser_sim_getimei(h_sim, imei);
+ if(res == 0)
+ {
+ printf("get imei success!!!\n");
+ }else{
+ printf("get imei error, res = %d\n", res);
+ }
+ }else{
+ printf("qser_sim_getimei dlsym error\n");
+ }
+ flag_init = 0;
+ break;
+ }
+ //qser_get_imei_and_sv
+ case 11:
+ {
+ char imei[BUF_SIZE]="";
+ char sv[BUF_SIZE]="";
+ qser_get_imei_and_sv = (int(*)(sim_client_handle_type h_sim, char *imei, char *sv))dlsym(dlHandle_sim,"qser_get_imei_and_sv");
+ if(NULL != qser_get_imei_and_sv)
+ {
+ res = qser_get_imei_and_sv(h_sim, imei, sv);
+ if(res == 0)
+ {
+ printf("get imei and sv success!!!\n");
+ }else{
+ printf("get imei and sv error, res = %d\n", res);
+ }
+ }else{
+ printf("qser_get_imei_and_sv dlsym error\n");
+ }
+ flag_init = 0;
+ break;
+ }
+ //qser_reset_modem
+ case 12:
+ {
+ qser_reset_modem = (int(*)(sim_client_handle_type h_sim))dlsym(dlHandle_sim,"qser_reset_modem");
+ if(NULL != qser_reset_modem)
+ {
+ res = qser_reset_modem(h_sim);
+ if(res == 0)
+ {
+ printf("reset modem success!!!\n");
+ }else{
+ printf("reset modem error, res = %d\n", res);
+ }
+ }else{
+ printf("qser_reset_modem dlsym error\n");
+ }
+ flag_init = 0;
+ break;
+ }
+ //qser_get_version
+ case 13:
+ {
+ char buf[VER_SIZE]="";
+ qser_get_version = (int(*)(sim_client_handle_type h_sim, char *buf))dlsym(dlHandle_sim,"qser_get_version");
+ if(NULL != qser_get_version)
+ {
+ res = qser_get_version(h_sim, buf);
+ if(res == 0)
+ {
+ printf("get version success!!!\n");
+ }else{
+ printf("get version error, res = %d\n", res);
+ }
+ }else{
+ printf("qser_get_version dlsym error\n");
+ }
+ flag_init = 0;
+ break;
+ }
+ //qser_reset_sim
+ case 14:
+ {
+ qser_reset_sim = (int(*)(sim_client_handle_type h_sim))dlsym(dlHandle_sim,"qser_reset_sim");
+ if(NULL != qser_reset_sim)
+ {
+ res = qser_reset_sim(h_sim);
+ if(res == 0)
+ {
+ printf("reset sim success!!!\n");
+ }else{
+ printf("reset sim error, res = %d\n", res);
+ }
+ }else{
+ printf("qser_reset_sim dlsym error\n");
+ }
+ flag_init = 0;
+ break;
+ }
+ //qser_deinit_sim
+ case 15:
+ {
qser_sim_client_deinit = (int(*)(sim_client_handle_type h_sim))dlsym(dlHandle_sim,"qser_sim_client_deinit");
if(NULL != qser_sim_client_deinit)
{
@@ -413,7 +523,7 @@
{
printf("sim deinit success is!!!\n");
}else{
- printf("get imsi error, res = %d\n", res);
+ printf("sim deint errors, res = %d\n", res);
}
}else{
printf("qser_sim_client_deinit dlsym error\n");
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h
index b98377e..9eead07 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h
@@ -38,6 +38,15 @@
float azimuth; /**< Azimuth of the SV in degrees. */
}QL_LOC_SV_INFO_T; /* Type */
+struct login_information /*Used To Stored User Information*/
+{
+ char* host;
+ char* id;
+ char* password;
+};
+
+static struct login_information *login_information_t = NULL;
+
#define QL_LOC_GPS_SUPPORT_SVS_MAX 32 /** Maximum number of satellites in view. */
typedef struct
{
@@ -114,6 +123,7 @@
int qser_Gnss_Stop(uint32_t h_gnss);
int qser_Gnss_Set_Frequency(uint32_t h_gnss, int frequency);
int qser_Gnss_Delete_Aiding_Data(uint32_t h_gnss,DELETE_AIDING_DATA_TYPE_T flags);
+int qser_Gnss_Server_Configuration(char *host, char *id, char *password);
int qser_Gnss_InjectTime(uint32_t h_gnss,LYNQ_INJECT_TIME_INTO_T *time_info);
int qser_firmware_update(uint32_t h_gnss);
int qser_Gnss_injectEphemeris(uint32_t h_gnss);
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h
index ce124b2..bb24b17 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h
@@ -302,7 +302,9 @@
int mopen_gnss_set_system_config(uint32 h_gnss, int mode);
int mopen_gnss_set_nema_config(uint32 h_gnss, int mode);
int mopen_gnss_download_tle(void);
+int hd_gnss_download_tle(char *host, char *id, char *password);
int mopen_gnss_injects_aidpos(uint32 h_gnss);
+int hd_gnss_injects_aidpos(uint32 h_gnss);
int mopen_gnss_firmware_update(uint32 ph_gnss);
int mbtk_at_gnss_start_ttff(int type, int timeout_sec, int count);
int lynq_gnss_send_cmd(uint32 h_gnss, const char *cmd, int cmd_len);
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp
index 52241a9..4b7bba9 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp
@@ -50,7 +50,19 @@
ret = lynq_gnss_client_init(h_gnss);
if(ret)
{
- printf("Init faild\n");
+ ALOGE("Init faild\n");
+ }
+ if(gpio21_value == 1)
+ {
+ login_information_t = (login_information*)malloc(sizeof(struct login_information));
+ if(NULL == login_information_t)
+ {
+ ALOGE("malloc memory error\n");
+ return -1;
+ }
+ login_information_t->host = NULL;
+ login_information_t->id = NULL;
+ login_information_t->password = NULL;
}
return 0;
}
@@ -60,7 +72,12 @@
ret = lynq_gnss_client_deinit(h_gnss);
if(ret)
{
- printf("Deinit faild\n");
+ ALOGE("Deinit faild\n");
+ }
+ if(login_information_t != NULL)
+ {
+ free(login_information_t);
+ login_information_t = NULL;
}
return 0;
}
@@ -70,13 +87,23 @@
struct mbtk_gnss_handle_t *gnss_handle = (struct mbtk_gnss_handle_t *)h_gnss;
if(0 == h_gnss && NULL == handler_ptr)
{
- printf("%s handler invalid.\n", __func__);
+ ALOGE("%s handler invalid.\n", __func__);
return -1;
}
gnss_handle->gnss_handler_func = handler_ptr;
return 0;
}
+/**
+ * @brief qser_Set_Indications
+ *
+ * @details Set Output Mode
+ *
+ * @param e_msg_id_t type
+ *
+ * @return
+ */
+
int qser_Set_Indications(uint32_t h_gnss,e_msg_id_t type)
{
struct mbtk_gnss_handle_t *gnss_handle = (struct mbtk_gnss_handle_t *)h_gnss;
@@ -102,6 +129,15 @@
return 0;
}
+/**
+ * @brief qser_Gnss_InjectTime
+ *
+ * @details injection time
+ *
+ * @param LYNQ_INJECT_TIME_INTO_T *time_info
+ *
+ * @return
+ */
/*need set system time in advance*/
int qser_Gnss_InjectTime(uint32_t h_gnss,LYNQ_INJECT_TIME_INTO_T *time_info)
@@ -126,7 +162,7 @@
ret = lynq_gnss_send_cmd(h_gnss, send_buf, sizeof(send_buf));
if(ret < 0)
{
- printf("send fail\n");
+ ALOGE("InjectTime send fail\n");
return -1;
}
lynq_gnss_get_aidinfo(h_gnss);
@@ -168,6 +204,15 @@
return 0;
}
+/**
+ * @brief qser_Gnss_Set_Frequency
+ *
+ * @details Change output frequency(just for 106E)
+ *
+ * @param frequency:1 2 5hz
+ *
+ * @return
+ */
static unsigned char save_configuration[] = {0xF1,0xD9,0x06,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x26,0x37};
static unsigned char one_frequency[] = {0xF1,0xD9,0x06,0x42,0x14,0x00,0x00,0x01,0x00,0x00,0xE8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0xF6};
static unsigned char two_frequency[] = {0xF1,0xD9,0x06,0x42,0x14,0x00,0x00,0x02,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0x88};
@@ -204,13 +249,13 @@
ret = write(gnss_handle->dev_fd, send_buf, buf_lenth);
if(ret < 0)
{
- printf("send faild");
+ ALOGE("modify cmd send faild\n");
return -1;
}
ret = write(gnss_handle->dev_fd, save_configuration, sizeof(save_configuration));
if(ret < 0)
{
- printf("send faild");
+ ALOGE("save configuration send faild\n");
return -1;
}
return 0;
@@ -274,10 +319,10 @@
ret = lynq_gnss_send_cmd(h_gnss, send_buf, strlen(send_buf));
if(ret < 0)
{
- printf("send faild");
+ ALOGE("Delete_Aiding_Data cmd send faild");
return -1;
}
- printf("reset OK!!!!!\n");
+ ALOGE("reset OK!!!!!\n");
ret = set_baudrate(gnss_handle->dev_fd, B9600);
if(-1 == ret)
@@ -299,24 +344,90 @@
return 0;
}
+/**
+ * @brief qser_Gnss_Server_Configuration
+ *
+ * @details Configure user information for 106E-AGPS
+ *
+ * @param host id password (if the parameter is NULL,use default Configure)
+ *
+ * @return
+ */
+
+int qser_Gnss_Server_Configuration(char *host, char *id, char *password)
+{
+ if(NULL == login_information_t)
+ {
+ ALOGE("don't have login information\n");
+ return -1;
+ }
+ login_information_t->host = host;
+ login_information_t->id = id;
+ login_information_t->password = password;
+ ALOGD("host:%s\nid:%s\npw:%s\n",login_information_t->host,login_information_t->id,login_information_t->password);
+ return 0;
+}
+
+/**
+ * @brief qser_Gnss_download_tle
+ *
+ * @details download_tle 106-AGPS tle,this interface not require init, but it must be able to dial up for internet access
+ * the download_tle will save in /mnt/userdata/agnss_tle
+ * @param NULL
+ *
+ * @return
+ */
+
int qser_Gnss_download_tle()
{
int ret;
- ret = mopen_gnss_download_tle();
- if(ret < 0)
+ if(gpio21_value == 0)
{
- return -1;
+ ret = mopen_gnss_download_tle();
+ if(ret < 0)
+ {
+ return -1;
+ }
+ }
+ else if(gpio21_value == 1)
+ {
+ ret = hd_gnss_download_tle(login_information_t->host, login_information_t->id, login_information_t->password);
+ if(ret < 0)
+ {
+ return -1;
+ }
}
return 0;
}
+/**
+ * @brief qser_Gnss_injectEphemeris
+ *
+ * @details inject Ephemeris
+ *
+ * @param
+ *
+ * @return
+ */
+
int qser_Gnss_injectEphemeris(uint32_t h_gnss)
{
int ret;
- ret = mopen_gnss_injects_aidpos(h_gnss);
- if(ret < 0)
+ if(gpio21_value == 0)
{
- return -1;
+ ret = mopen_gnss_injects_aidpos(h_gnss);
+ if(ret < 0)
+ {
+ return -1;
+ }
+ }
+ else if(gpio21_value == 1)
+ {
+ ret = hd_gnss_injects_aidpos(h_gnss);
+ if(ret < 0)
+ {
+ return -1;
+ }
}
return 0;
}
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
index 6cc38c0..862aeea 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
@@ -1028,6 +1028,7 @@
*ph_gnss = (uint32)mbtk_gnss_handle;
return 0;
}
+
mbtk_gnss_handle = (mbtk_gnss_handle_t*)malloc(sizeof(struct mbtk_gnss_handle_t));
if(NULL == mbtk_gnss_handle)
{
@@ -1386,15 +1387,44 @@
return 0;
}
-/**********************************
+static int hd_gnss_http_requst(char *host)
+{
+ int http_handle = mbtk_http_handle_get(TRUE, http_data_cb_func);
+ if(http_handle < 0)
+ {
+ printf("mbtk_http_handle_get() fail.");
+ return -1;
+ }
+ int http_session = mbtk_http_session_create(http_handle, HTTP_OPTION_GET, HTTP_VERSION_1_1);
+ if(http_handle < 0)
+ {
+ printf("mbtk_http_session_create() fail.");
+ return -2;
+ }
- ID1: TempID1Expire20221031
- Base 64 PW1: RlJYdkFTNE9DWXJhN2ZWTA==
-**************************************/
+ if(mbtk_http_session_url_set(http_handle, http_session, host))
+ {
+ printf("mbtk_http_session_url_set() fail.\n");
+ return -3;
+ }
+ if(mbtk_http_session_start(http_handle, http_session))
+ {
+ printf("mbtk_http_session_start() fail.\n");
+ return -4;
+ }
+ if(mbtk_http_handle_free(http_handle))
+ {
+ printf("mbtk_http_handle_free() fail.");
+ return -5;
+ }
+
+ return 0;
+}
+
#define AGNSS_CONFIG_FILE "/data/gnss_update/agps.conf"
/**
- * @brief mopen_gnss_download_tle
+ * @brief mopen_gnss_download_tle;hd_gnss_download_tle
*
* @details 下载星历数据
* (卫星星历,又称为两行轨道数据(TLE,Two-Line Orbital Element))
@@ -1438,6 +1468,21 @@
return gnss_http_requst(_id, _passwd);
}
+int hd_gnss_download_tle(char *host, char *id, char *password)
+{
+ //id and pw are currently not being used for future access to self built servers
+ const char default_host[] = "http://uagnss.allystar.com/ephemeris/HD_GPS.hdb?compid=yikecs1&token=Z38w5urAuawubTxi";
+ if(host == NULL)
+ {
+ hd_gnss_http_requst(default_host);
+ }
+ else
+ {
+ hd_gnss_http_requst(host);
+ }
+ return 0;
+}
+
/**
* @brief mopen_gnss_injects_aidpos
*
@@ -1490,6 +1535,58 @@
return 0;
}
+#define BUFFER_SIZE 1024
+int hd_gnss_injects_aidpos(uint32 h_gnss)
+{
+ int packet_length;
+ int hd_agnss_fd = 0;
+ int size = 0;
+ int left_size = 0;
+ int total_size = 0;
+ char *databuf = (char *)malloc(BUFFER_SIZE);
+ struct mbtk_gnss_handle_t *gnss_handle = (struct mbtk_gnss_handle_t *)h_gnss;
+ hd_agnss_fd = open(AGNSS_TLE_FILE, O_RDWR);
+ if (hd_agnss_fd <= 0)
+ {
+ printf("%s open file FAIL. errno:%d\n", __FUNCTION__, errno);
+ return -1;
+ }
+ while(0 < (size = read(hd_agnss_fd, (databuf + left_size), BUFFER_SIZE)))
+ {
+ total_size = size + left_size;
+ left_size = 0;
+ for(int i=0; i < total_size;)
+ {
+ gnss_log("%s Write[%d]\r\n", __FUNCTION__, size);
+ if((databuf[i] == 0xF1) && (databuf[i + 1] == 0xD9))
+ {
+ packet_length = (databuf[i + 4] | (databuf[i + 5] << 8));
+ if (i + packet_length + 8 <= total_size)
+ {
+ write(gnss_handle->dev_fd, databuf + i, packet_length + 8);
+ usleep(5000);
+ i = i + packet_length + 8;
+ }
+ else
+ {
+ left_size = total_size - i;
+ char *tmp = databuf;
+ databuf = (char *)malloc(BUFFER_SIZE + left_size);
+ memcpy(databuf, tmp + i ,left_size);
+ free(tmp);
+ break;
+ }
+ }
+ else
+ i++;
+ }
+ }
+ free(databuf);
+ databuf = NULL;
+ close(hd_agnss_fd);
+ return 0;
+}
+
/**
* @brief
@@ -1606,10 +1703,6 @@
return ret;
}
-
-/*update ephemeris from network*/
-#define AGNSS_TLE_FILE "/mnt/userdata/agnss_tle" //deposit ephemeris
-
/*Injection ephemeris AGNSS_TLE_FILE*/
int lynq_gnss_Injection_ephemeris(uint32 h_gnss)
{
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h
index 0895f45..f4d3233 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h
@@ -375,6 +375,11 @@
QSER_SIM_CARD_STATUS_INFO_T *pt_info ///< [OUT] Cart status infor output
);
+int qser_sim_getimei(sim_client_handle_type h_sim, char *imei);
+int qser_get_imei_and_sv(sim_client_handle_type h_sim,char *imei, char*sv);
+int qser_reset_modem(sim_client_handle_type h_sim);
+int qser_get_version(sim_client_handle_type h_sim, char *buf);
+int qser_reset_sim(sim_client_handle_type h_sim);
#ifdef __cplusplus
}
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp
index d95945d..d413c17 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp
@@ -209,5 +209,71 @@
return ret;
}
+int qser_sim_getimei(sim_client_handle_type h_sim, char *imei)
+{
+ int ret = 0;
+ if(h_sim == 0)
+ {
+ LYERRLOG("not init\n");
+ return E_QSER_ERROR_BADPARM;
+ }
+ ret = lynq_get_imei(imei);
+
+ LYINFLOG("[%s-%d] QSER_IMEI: %s\n", __FUNCTION__, __LINE__, imei);
+
+ return ret;
+}
+int qser_get_imei_and_sv(sim_client_handle_type h_sim,char *imei, char*sv)
+{
+ int ret = 0;
+
+ if(h_sim == 0)
+ {
+ LYERRLOG("not init\n");
+ return E_QSER_ERROR_BADPARM;
+ }
+ ret = lynq_get_imei_and_sv(imei, sv);
+ LYINFLOG("[%s-%d] QSER_GET_IMEI_AND_SV: %s, %s\n", __FUNCTION__, __LINE__, imei, sv);
+ return ret;
+}
+int qser_reset_modem(sim_client_handle_type h_sim)
+{
+ int ret = 0;
+
+ if(h_sim == 0)
+ {
+ LYERRLOG("not init\n");
+ return E_QSER_ERROR_BADPARM;
+ }
+ ret = lynq_reset_modem();
+ return ret;
+}
+
+int qser_get_version(sim_client_handle_type h_sim, char *buf)
+{
+ int ret = 0;
+
+ if(h_sim == 0)
+ {
+ LYERRLOG("not init\n");
+ return E_QSER_ERROR_BADPARM;
+ }
+ ret = lynq_get_version(buf);
+ LYINFLOG("[%s-%d] QSER_GET_VERSION: %s\n", __FUNCTION__, __LINE__, buf);
+ return ret;
+}
+
+int qser_reset_sim(sim_client_handle_type h_sim)
+{
+ int ret = 0;
+
+ if(h_sim == 0)
+ {
+ LYERRLOG("not init\n");
+ return E_QSER_ERROR_BADPARM;
+ }
+ ret = lynq_reset_sim();
+ return ret;
+}
DEFINE_LYNQ_LIB_LOG(LYNQ_QSER_SIM)
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile
index cafc77c..12704dd 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile
@@ -10,6 +10,9 @@
-fpermissive \
+ifeq ($(strip $(TARGET_PLATFORM)), T106)
+LOCAL_CFLAGS += -DMOBILETEK_TARGET_PLATFORM_T106
+endif
$(warning ################# lynq qser sms demo ROOT: $(ROOT),includedir:$(includedir))
LOCAL_PATH = .
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c
index 081c584..cd5220a 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c
Binary files differ
diff --git a/esdk_patch/mk_esdk.sh b/esdk_patch/mk_esdk.sh
index e1ff843..cd72c6f 100755
--- a/esdk_patch/mk_esdk.sh
+++ b/esdk_patch/mk_esdk.sh
@@ -17,6 +17,6 @@
ln -s ${dest_dir}/upstream/tools ${dest_dir}/esdk
cp linux_bb.diff ${dest_dir}/esdk/layers/meta-zxic/recipes-kernel/linux/
cd ${dest_dir}/esdk/layers/meta-zxic/recipes-kernel/linux
-git apply linux_bb.diff
+patch < linux_bb.diff
cd ${dest_dir}/esdk
mkdir -p ${dest_dir}/allbins/zx297520v3/vehicle_dc_ref/elf/normal
diff --git a/update_version.sh b/update_version.sh
index 83fa9b8..92e28d0 100644
--- a/update_version.sh
+++ b/update_version.sh
@@ -1,8 +1,8 @@
#!/bin/bash
#export LYNQ_VERSION="T106_lynq_version_ap_build_sh"
-LYNQ_AP_VERSION="T106CN-ZS03.V2.01.01.02P52U02.AP.09.02"
-LYNQ_CAP_INSIDE_VERSION="CAP.09.02"
-LYNQ_CAP_VERSION="CAP.09.02"
+LYNQ_AP_VERSION="T106CN-ZS03.V2.01.01.02P52U02.AP.09.03"
+LYNQ_CAP_INSIDE_VERSION="CAP.09.03"
+LYNQ_CAP_VERSION="CAP.09.03"
COMMIT_ID="$(git rev-parse HEAD)"
LYNQ_SW_INSIDE_VERSION="LYNQ_CONFIG_VERSION = \"${LYNQ_AP_VERSION}_${LYNQ_CAP_INSIDE_VERSION}\""