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);
 
+
+