[Bugfix][T106BUG-254][Network] set "at+cfun =4 " error
Affected branch: unknown
Affected module: unknown
Is it affected on both ZXIC and MTK: ZXIC
Self-test: Yes
Doc Update: No
Change-Id: Ib6cf0834aa172c6788ecd09d1c301f39e2b38c62
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq-qser-network-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq-qser-network-demo.cpp
index 0b1dd7d..3982cbc 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq-qser-network-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq-qser-network-demo.cpp
@@ -23,8 +23,8 @@
int (*qser_nw_get_signal_strength_p)(nw_client_handle_type h_nw,QSER_NW_SIGNAL_STRENGTH_INFO_T *pt_info);
int (*qser_nw_set_oos_config_p)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info);
int (*qser_nw_get_oos_config_p)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info);
-
-
+int (*qser_nw_set_rf_mode_p) (nw_client_handle_type h_nw,E_QSER_NW_RF_MODE_TYPE_T rf_mode);
+int (*qser_nw_get_rf_mode_p) (nw_client_handle_type h_nw,E_QSER_NW_RF_MODE_TYPE_T* rf_mode);
int getFunc()
{
@@ -46,10 +46,12 @@
qser_nw_add_rx_msg_handler_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_RxMsgHandlerFunc_t handlerPtr,void* contextPtr))dlsym(handle_network,"qser_nw_add_rx_msg_handler");
qser_nw_get_oos_config_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info))dlsym(handle_network,"qser_nw_get_oos_config");
qser_nw_set_oos_config_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info))dlsym(handle_network,"qser_nw_set_oos_config");
-
+ qser_nw_set_rf_mode_p = (int (*)(nw_client_handle_type h_nw, E_QSER_NW_RF_MODE_TYPE_T rf_mode))dlsym(handle_network,"qser_nw_set_rf_mode");
+ qser_nw_get_rf_mode_p = (int (*)(nw_client_handle_type h_nw, E_QSER_NW_RF_MODE_TYPE_T* rf_mode))dlsym(handle_network,"qser_nw_get_rf_mode");
if(qser_nw_client_deinit_p==NULL || qser_nw_client_init_p==NULL || qser_nw_set_config_p ==NULL ||
- qser_nw_get_operator_name_p == NULL || qser_nw_get_reg_status_p ==NULL || qser_nw_add_rx_msg_handler_p==NULL)
+ qser_nw_get_operator_name_p == NULL || qser_nw_get_reg_status_p ==NULL || qser_nw_add_rx_msg_handler_p==NULL ||
+ qser_nw_set_rf_mode_p == NULL || qser_nw_get_rf_mode_p == NULL || qser_nw_get_oos_config_p == NULL || qser_nw_set_oos_config_p == NULL)
{
printf("get func pointer null");
exit(EXIT_FAILURE);
@@ -87,7 +89,9 @@
{5, "qser_nw_get_signal_strength"},
{6, "qser_nw_set_oos_config"},
{7, "qser_nw_get_oos_config"},
- {8, "qser_nw_client_deinit"},
+ {8, "qser_nw_set_rf_mode"},
+ {9, "qser_nw_get_rf_mode"},
+ {10, "qser_nw_client_deinit"},
{-1, "quit"}
@@ -435,7 +439,7 @@
break;
}
- case 8://"qser_nw_client_deinit"
+ case 10://"qser_nw_client_deinit"
{
ret = qser_nw_client_deinit_p(h_nw);
printf("qser_nw_client_deinit ret = %d\n", ret);
@@ -556,6 +560,22 @@
}
break;
}
+ case 9://"qser_nw_get_rf_mode"
+ {
+ E_QSER_NW_RF_MODE_TYPE_T rf_mode;
+ ret = qser_nw_get_rf_mode_p(h_nw, &rf_mode);
+ printf("qser_nw_get_rf_mode ret = %d, rf mode=%d\n", ret, rf_mode);
+ break;
+ }
+ case 8://"qser_nw_set_rf_mode"
+ {
+ E_QSER_NW_RF_MODE_TYPE_T rf_mode;
+ printf("please input you want set rf mode (0: cfun 0; 1: cfun 1; 4: flight mode \n");
+ scanf("%d", &rf_mode);
+ ret = qser_nw_set_rf_mode_p(h_nw, rf_mode);
+ printf("qser_nw_set_rf_mode %d ret = %dn",rf_mode, ret);
+ break;
+ }
default:
{
show_group_help(&t_nw_test);
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq_qser_network.h b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq_qser_network.h
index 4083e13..bf7781a 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq_qser_network.h
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-network-demo/files/lynq_qser_network.h
@@ -366,6 +366,12 @@
QSER_NW_NR_SIGNAL_INFO_T nr_sig_info;
}QSER_NW_SINGNAL_EVENT_IND_T;
+typedef enum
+{
+ E_QSER_NW_RF_MODE_CFUN_0 = 0, /**< CFUN 0. */
+ E_QSER_NW_RF_MODE_CFUN_1 = 1, /**< CFUN 1. */
+ E_QSER_NW_RF_MODE_FLIGHT = 4, /**< Flight Mode, CFUN 4. */
+}E_QSER_NW_RF_MODE_TYPE_T;
int qser_nw_client_init(nw_client_handle_type *ph_nw);
@@ -420,6 +426,19 @@
void* contextPtr
);
+int qser_nw_set_rf_mode
+(
+ nw_client_handle_type h_nw,
+ E_QSER_NW_RF_MODE_TYPE_T rf_mode
+);
+
+int qser_nw_get_rf_mode
+(
+ nw_client_handle_type h_nw,
+ E_QSER_NW_RF_MODE_TYPE_T *rf_mode
+);
+
+
#ifdef __cplusplus
}
#endif
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/include/lynq_qser_network.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/include/lynq_qser_network.h
index 0e571fa..81aa0c2 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/include/lynq_qser_network.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/include/lynq_qser_network.h
@@ -364,6 +364,13 @@
QSER_NW_NR_SIGNAL_INFO_T nr_sig_info;
}QSER_NW_SINGNAL_EVENT_IND_T;
+typedef enum
+{
+ E_QSER_NW_RF_MODE_CFUN_0 = 0, /**< CFUN 0. */
+ E_QSER_NW_RF_MODE_CFUN_1 = 1, /**< CFUN 1. */
+ E_QSER_NW_RF_MODE_FLIGHT = 4, /**< Flight Mode, CFUN 4. */
+}E_QSER_NW_RF_MODE_TYPE_T;
+
int qser_nw_client_init(nw_client_handle_type *ph_nw);
@@ -418,6 +425,18 @@
void* contextPtr
);
+int qser_nw_set_rf_mode
+(
+ nw_client_handle_type h_nw,
+ E_QSER_NW_RF_MODE_TYPE_T rf_mode
+);
+
+int qser_nw_get_rf_mode
+(
+ nw_client_handle_type h_nw,
+ E_QSER_NW_RF_MODE_TYPE_T *rf_mode
+);
+
#ifdef __cplusplus
}
#endif
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/lynq_qser_network.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/lynq_qser_network.cpp
index b1539a7..2628d27 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/lynq_qser_network.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-network/lynq_qser_network.cpp
@@ -157,9 +157,7 @@
void *new_network_thread_recv(void *context)
{
- int handle = -1;
- int ret = 0;
- int slot_id = 0;
+ int handle = -1;
uint32_t ind_flag = 0;
while (1)
@@ -646,5 +644,40 @@
return RESULT_OK;
}
+int qser_nw_set_rf_mode (nw_client_handle_type h_nw,E_QSER_NW_RF_MODE_TYPE_T rf_mode)
+{
+ if(h_nw != g_ph_hw || h_nw == INVALID_CLIENT_HANDLE)
+ {
+ LYERRLOG("h_nw not right %d %d",h_nw,g_ph_hw);
+ return RESULT_ERROR;
+ }
+ return lynq_radio_on((lynq_network_radio_on_type )rf_mode);
+}
+
+int qser_nw_get_rf_mode (nw_client_handle_type h_nw,E_QSER_NW_RF_MODE_TYPE_T *rf_mode)
+{
+ if(NULL == rf_mode)
+ {
+ LYERRLOG("invalid client parameters incoming");
+ return RESULT_ERROR;
+ }
+
+ if(h_nw != g_ph_hw || h_nw == INVALID_CLIENT_HANDLE)
+ {
+ LYERRLOG("h_nw not right %d %d",h_nw,g_ph_hw);
+ return RESULT_ERROR;
+ }
+
+ int inner_rf_mode;
+ int ret = lynq_query_radio_state(&inner_rf_mode);
+ if(ret != 0)
+ {
+ LYERRLOG("get rf mode fail");
+ return RESULT_ERROR;
+ }
+ (*rf_mode)=(E_QSER_NW_RF_MODE_TYPE_T) inner_rf_mode;
+ return RESULT_OK;
+}
+
DEFINE_LYNQ_LIB_LOG(LYNQ_QSER_NETWORK)