T108 sim Voie data network sms 支持双卡 ql 接口第一版
Change-Id: If5a9fb81971258bb5a3d811f3e4562b2df351853
diff --git a/mbtk/libql_lib_v2_rilv2/ql_sms.c b/mbtk/libql_lib_v2_rilv2/ql_sms.c
index 7323949..cdfa6fe 100755
--- a/mbtk/libql_lib_v2_rilv2/ql_sms.c
+++ b/mbtk/libql_lib_v2_rilv2/ql_sms.c
@@ -59,6 +59,46 @@
static ql_sms_info_handle_t* sms_handle = NULL;
+static mbtk_sim_type_enum s_sms_slot = MBTK_SIM_1;
+
+static bool check_slot_valid(QL_SIM_SLOT_E slot)
+{
+ if (slot !=QL_SIM_SLOT_1 && slot != QL_SIM_SLOT_2)
+ {
+ LOGE("bad slot: %d, slot should be 1 or 2", slot);
+ return false;
+ }
+
+ return true;
+}
+
+static void ql_slot_convert_to_mbtk(QL_SIM_SLOT_E ql_slot,mbtk_sim_type_enum *mbtk_slot)
+{
+ if(ql_slot == QL_SIM_SLOT_1)
+ {
+ *mbtk_slot = MBTK_SIM_1;
+ }
+
+ if(ql_slot == QL_SIM_SLOT_2)
+ {
+ *mbtk_slot = MBTK_SIM_2;
+ }
+ return;
+
+}
+
+int ql_set_sms_slot(QL_SIM_SLOT_E log_slot)
+{
+ if(!check_slot_valid(log_slot))
+ {
+ LOGE("[%s] check_slot_valid failed.", __func__);
+ return QL_ERR_INVALID_ARG;
+ }
+ ql_slot_convert_to_mbtk(log_slot,&s_sms_slot);
+ LOGE("s_net_slot is %d",s_sms_slot);
+ return QL_ERR_OK;
+}
+
static void ql_sms_state_change_cb(const void* data, int data_len)
{
LOGV("sms_state_change_cb()----------start\n");
@@ -137,7 +177,7 @@
LOGE("Minute: %d\n", sms_timestamp.minutes);
LOGE("Second: %d\n", sms_timestamp.seconds);
- if(total_pack > 1 && curr_pack < total_pack)
+ if(total_pack > 1 && curr_pack <= total_pack)
{
sms_user_data_head.valid = TRUE;
sms_user_data_head.total_seg = total_pack;
@@ -146,8 +186,8 @@
else
{
sms_user_data_head.valid = FALSE;
- sms_user_data_head.total_seg = total_pack;
- sms_user_data_head.cur_seg_num = curr_pack;
+ sms_user_data_head.total_seg = 0;
+ sms_user_data_head.cur_seg_num = 0;
}
if(sms_handle->recv_cb)
@@ -159,14 +199,10 @@
static void ql_sms_server_change_cb(const void* data, int data_len)
{
- if(data_len != sizeof(int))
+ if(data)
{
- LOGE("[ql_sms_server_change_cb] data_len[%d] than int[%d] fail. ", data_len, sizeof(int));
- }
- else
- {
- int server_state = *(int *)data;
- if(server_state == 1 && sms_handle->server_cb)
+ mbtk_ril_ser_state_enum server_state = *(mbtk_ril_ser_state_enum *)data;
+ if(sms_handle->server_cb && server_state == MBTK_RIL_SER_STATE_EXIT)
{
sms_handle->server_cb(QL_ERR_ABORTED);
}
@@ -207,14 +243,32 @@
}
}
- int err = mbtk_sms_cnmi_set(sms_handle->handle);
+ int err = mbtk_ds_sms_cnmi_set(sms_handle->handle,MBTK_SIM_1);
+ if(err)
+ {
+ LOGE("set cnmi fail");
+ return QL_ERR_FAILED;
+ }
+ err = mbtk_ds_sms_cnmi_set(sms_handle->handle,MBTK_SIM_2);
if(err)
{
LOGE("set cnmi fail");
return QL_ERR_FAILED;
}
- int ret = mbtk_sms_state_change_cb_reg( ql_sms_state_change_cb);
+ int ret = mbtk_ds_sms_state_change_cb_reg(MBTK_SIM_1,ql_sms_state_change_cb);
+ if(ret != MBTK_ERR_OK)
+ {
+ LOGE("[ql_sms_init] set sms state cb fail.[%d]", ret);
+ if(sms_handle->handle)
+ {
+ mbtk_ril_close(MBTK_AT_PORT_DEF);
+ sms_handle->handle = NULL;
+ return QL_ERR_FAILED;
+ }
+ }
+
+ ret = mbtk_ds_sms_state_change_cb_reg(MBTK_SIM_2,ql_sms_state_change_cb);
if(ret != MBTK_ERR_OK)
{
LOGE("[ql_sms_init] set sms state cb fail.[%d]", ret);
@@ -226,18 +280,18 @@
}
}
- ret = mbtk_net_reg_state_change_cb_reg(ql_sms_server_change_cb);
+ ret = mbtk_ril_ser_state_change_cb_reg(ql_sms_server_change_cb);
if(ret != MBTK_ERR_OK)
{
- LOGE("[ql_sim_init] set sim server cb fail.[%d]", ret);
- if(sms_handle->handle)
+ LOGE("[%s] mbtk_ril_ser_state_change_cb_reg fail.[%d]", __func__, ret);
+ if(sms_handle->handle)
{
mbtk_ril_close(MBTK_AT_PORT_DEF);
sms_handle->handle = NULL;
return QL_ERR_FAILED;
}
}
-
+
sms_handle->recv_cb = NULL;
sms_handle->server_cb = NULL;
}
@@ -518,7 +572,7 @@
LOGD("cmgf set success");
}
- err = mbtk_sms_cmgs_set(sms_handle->handle, cmgs, resp);
+ err = mbtk_ds_sms_cmgs_set(sms_handle->handle,s_sms_slot, cmgs, resp);
if(err)
{
LOGE("cmgs send fail (%d)",err);
@@ -658,3 +712,5 @@
/*-----------------------------------------------------------------------------------------------*/
int ql_sms_bind_subscription(QL_SMS_SUBSCRIPTION_E sub);
+
+