[Bugfix][T108-GSW][bug-view-1585] gsw_reg_operating_mode_callback didn't work
Only Configure: No
Affected branch: unknown
Affected module: network
Is it affected on both ZXIC and ASR: only ASR
Self-test: yes
Doc Update: no
Change-Id: Ia5d4c16f5c6f30970ed9ccbbf9b1b5f99c96e885
diff --git a/mbtk/libgsw_lib/gsw_nw_interface.c b/mbtk/libgsw_lib/gsw_nw_interface.c
index 5ce858e..c8853c0 100755
--- a/mbtk/libgsw_lib/gsw_nw_interface.c
+++ b/mbtk/libgsw_lib/gsw_nw_interface.c
@@ -306,6 +306,7 @@
static GSW_NW_SigInfoHandlePtr sig_cb;
static GSW_NW_RejectCauseHandlePtr reject_cb;
static GSW_NW_ModemStateHandlePtr modem_cb;
+static GSW_NW_AirplaneModeHandlePtr airplane_cb;
static void *dlHandle_mbtk;
int nw_init_flag = 0;
@@ -1112,8 +1113,8 @@
{
LOGI("rsrp = %d",signal->rsrp);
sig_strength->lte_sig_valid = 1;
- sig_strength->rsrp = -rsrp_convert_to_minus_dBm(signal->rsrp);
- sig_strength->rsrq = -rsrq_convert_to_minus_dB(signal->rsrq);
+ sig_strength->rsrp = rsrp_convert_to_minus_dBm(signal->rsrp);
+ sig_strength->rsrq = rsrq_convert_to_minus_dB(signal->rsrq);
sig_strength->rssi =rsrpToLevel(signal->rsrp-141);
sig_strength->rssnr=INT_32_MAX;
break;
@@ -1279,33 +1280,24 @@
}
}
-static void gsw_modem_status_event_callback(const void* data, int data_len)
+static void gsw_operating_mode_event_callback(const void* data, int data_len)
{
- LOGE("gsw_modem_status_event_callback start\n");
+ LOGE("gsw_operating_mode_event_callback start\n");
- gsw_mode_state_e state = GSW_MODEM_STATE_UNKNOWN;
-
+
if(data && data_len > 0)
{
- uint8 *net_data = (uint8*)data;
- LOGE("gsw_modem_status_event_callback,data = %d\n", *net_data);
- if(*net_data == 1)
+ const uint8 *cfun_state = (const uint8*)data;
+ LOGE("gsw_operating_mode_event_callback,data = %d\n", *cfun_state);
+ if(airplane_cb != NULL)
{
- state = GSW_MODEM_STATE_ONLINE;
- }
- else if(*net_data == 0)
- {
- state = GSW_MODEM_STATE_OFFLINE;
- }
-
- if(modem_cb != NULL)
- {
- modem_cb(state);
+ airplane_cb(*cfun_state);
}
}
}
+
static void gsw_reject_callback(GSW_NW_RADIO_ACCESS_TECH_E rat, GSW_SERVICE_DOMAIN_E domain, int cause)
{
LOGE("gsw_reject_callback start,rat = %d,domain = %d,cause = %d\n",rat,domain,cause);
@@ -1668,19 +1660,6 @@
LOGD("get cell id/tac/lac/sid/nid\n");
//cell id/tac/lac/sid/nid
mbtk_cell_type_enum cell_type;
- if(serving_info->reg_rat == GSW_NETWORK_RADIO_GSM)
- {
- cell_type = MBTK_CELL_TYPE_GSM;
- }
- else if(serving_info->reg_rat == GSW_NETWORK_RADIO_UMTS)
- {
- cell_type = MBTK_CELL_TYPE_UMTS;
- }
- else
- {
- cell_type = MBTK_CELL_TYPE_LTE;
- }
-
list_node_t* cell_list = NULL;
LOGD("mbtk_cell_get start\n");
@@ -1708,7 +1687,7 @@
LOGE("LTE : tac=%d, PCI=%d, dlEuarfcn=%d, ulEuarfcn=%d, band=%d\n", cell->value1, cell->value2, cell->value3, cell->value4, cell->value5);
snprintf(serving_info->tac,sizeof(serving_info->tac),"%d",cell->value1);
strcpy(serving_info->lac,"");
- snprintf(serving_info->cell_id,sizeof(serving_info->cell_id),"%d",cell->value8);
+ snprintf(serving_info->cell_id,sizeof(serving_info->cell_id),"%d",cell->value10);
break;
}
@@ -2385,8 +2364,6 @@
return GSW_HAL_NORMAL_FAIL;
}
- int ret = -1;
-
if(handle_ptr == NULL)
{
LOGE("handle_ptr is NULL\n");
@@ -2395,13 +2372,6 @@
modem_cb = handle_ptr;
- ret = mbtk_radio_state_change_cb_reg(nw_info_handle,gsw_modem_status_event_callback);
- if(ret != 0)
- {
- LOGE("mbtk_radio_state_change_cb_reg failed : %d\n", ret);
- return GSW_HAL_NORMAL_FAIL;
- }
-
return GSW_HAL_SUCCESS;
}
@@ -2785,3 +2755,30 @@
return GSW_HAL_SUCCESS;
}
+int gsw_reg_operating_mode_callback(GSW_NW_AirplaneModeHandlePtr handle_ptr)
+{
+ if (nw_init_flag == 0 || nw_info_handle == NULL)
+ {
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ if(handle_ptr == NULL)
+ {
+ LOGE("handle_ptr is NULL\n");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ airplane_cb = handle_ptr;
+
+ int ret = mbtk_radio_state_change_cb_reg(nw_info_handle,gsw_operating_mode_event_callback);
+ if(ret != 0)
+ {
+ LOGE("mbtk_radio_state_change_cb_reg failed : %d\n", ret);
+ airplane_cb=NULL;
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ return GSW_HAL_SUCCESS;
+
+}
+