sim: add qser_sim_addrxmsghandler api
Change-Id: I2e222074b6a715ad16f03717aecb9417e52989bd
diff --git a/mbtk/liblynq_lib/src/lynq_sim.c b/mbtk/liblynq_lib/src/lynq_sim.c
index 13040eb..7a45479 100755
--- a/mbtk/liblynq_lib/src/lynq_sim.c
+++ b/mbtk/liblynq_lib/src/lynq_sim.c
@@ -12,18 +12,48 @@
extern int qser_info_handle_num;
static bool inited = FALSE;
static uint qser_h_sim = 0x5F6F7F8F;
+static QSER_SIM_RxMsgHandlerFunc_t qser_sim_state_cb = NULL;
+static bool qser_sim_cb_state = false;
/****************************VARIABLE***************************************/
/******************************FUNC*****************************************/
+void qser_sim_state_change_cb(const void* data, int data_len)
+{
+ uint8 *ptr = (uint8*)data;
+ LOGE("SIM state : %d\n", *ptr);
+ QSER_SIM_CARD_STATUS_INFO_T qser_sim_statue = {0};
+ if(*ptr == 0)
+ {
+ qser_sim_statue.e_card_state = QSER_SIM_CARD_STATE_ABSENT;
+ }
+ else if(*ptr == 1)
+ {
+ qser_sim_statue.e_card_state = QSER_SIM_CARD_STATE_PRESENT;
+ }
+ else if(*ptr == 18)
+ {
+ qser_sim_statue.e_card_state = QSER_SIM_CARD_STATE_ABSENT;
+ }
+ else
+ {
+ qser_sim_statue.e_card_state = QSER_SIM_CARD_STATE_UNKNOWN;
+ }
+ if(qser_sim_state_cb != NULL)
+ {
+ qser_sim_state_cb(&qser_sim_statue);
+ }
+}
+
/******************************FUNC*****************************************/
/****************************API***************************************/
int qser_sim_client_init(sim_client_handle_type *ph_sim)
{
//UNUSED(ph_sim);
+ mbtk_log_init("radio", "QSER_SIM");
if(ph_sim == NULL)
{
- LOGE("[qser_data_call] ph_sim is NULL.");
+ LOGE("ph_sim is NULL.");
return QSER_RESULT_FAIL;
}
@@ -38,7 +68,7 @@
}
else
{
- LOGE("[qser_data_call] mbtk_info_handle_get() fail.");
+ LOGE("mbtk_info_handle_get() fail.");
return QSER_RESULT_FAIL;
}
}
@@ -53,7 +83,7 @@
}
*ph_sim = qser_h_sim;
- LOGE("[qser_data_call] mbtk_info_handle_get() success.");
+ LOGE("mbtk_info_handle_get() success.");
return QSER_RESULT_SUCCESS;
}
@@ -66,19 +96,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(imsi == NULL || imsiLen < 15)
{
- LOGE("[qser_data_call] imsi is NULL.");
+ LOGE("imsi is NULL.");
return QSER_RESULT_FAIL;
}
@@ -86,13 +116,13 @@
int err = mbtk_imsi_get(qser_info_handle, imsi);
if(err)
{
- LOGE("[qser_data_call] mbtk_imsi_get is fail.");
+ LOGE("mbtk_imsi_get is fail.");
return QSER_RESULT_FAIL;
}
if(strlen(imsi) > imsiLen)
{
- LOGE("[qser_data_call] get datalength out of range.");
+ LOGE("get datalength out of range.");
return QSER_RESULT_FAIL;
}
@@ -108,19 +138,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(iccid == NULL || iccidLen < QSER_SIM_ICCID_LEN_MAX)
{
- LOGE("[qser_data_call] iccid is NULL.");
+ LOGE("iccid is NULL.");
return QSER_RESULT_FAIL;
}
@@ -128,13 +158,13 @@
int err = mbtk_iccid_get(qser_info_handle, iccid);
if(err)
{
- LOGE("[qser_data_call] mbtk_iccid_get is fail.");
+ LOGE("mbtk_iccid_get is fail.");
return QSER_RESULT_FAIL;
}
if(strlen(iccid) > iccidLen)
{
- LOGE("[qser_data_call] get datalength out of range.");
+ LOGE("get datalength out of range.");
return QSER_RESULT_FAIL;
}
@@ -150,19 +180,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(phone_num == NULL || phoneLen < 11)
{
- LOGE("[qser_data_call] phone_num is NULL.");
+ LOGE("phone_num is NULL.");
return QSER_RESULT_FAIL;
}
@@ -170,13 +200,13 @@
int err = mbtk_phone_number_get(qser_info_handle, phone_num);
if(err)
{
- LOGE("[qser_data_call] mbtk_phone_number_get is fail.");
+ LOGE("mbtk_phone_number_get is fail.");
return QSER_RESULT_FAIL;
}
if(strlen(phone_num) > phoneLen)
{
- LOGE("[qser_data_call] get datalength out of range.");
+ LOGE("get datalength out of range.");
return QSER_RESULT_FAIL;
}
@@ -190,26 +220,26 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(pt_info == NULL)
{
- LOGE("[qser_data_call] pt_info is NULL.");
+ LOGE("pt_info is NULL.");
return QSER_RESULT_FAIL;
}
int err = mbtk_verify_pin(qser_info_handle, pt_info->pin_value);
if(err)
{
- LOGE("[qser_data_call] mbtk_verify_pin is fail.");
+ LOGE("mbtk_verify_pin is fail.");
return QSER_RESULT_FAIL;
}
@@ -223,19 +253,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(pt_info == NULL)
{
- LOGE("[qser_data_call] pt_info is NULL.");
+ LOGE("pt_info is NULL.");
return QSER_RESULT_FAIL;
}
@@ -245,7 +275,7 @@
int err = mbtk_change_pin(qser_info_handle, &pin_info);
if(err)
{
- LOGE("[qser_data_call] mbtk_change_pin is fail.");
+ LOGE("mbtk_change_pin is fail.");
return QSER_RESULT_FAIL;
}
@@ -259,19 +289,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(pt_info == NULL)
{
- LOGE("[qser_data_call] pt_info is NULL.");
+ LOGE("pt_info is NULL.");
return QSER_RESULT_FAIL;
}
@@ -281,7 +311,7 @@
int err = mbtk_unlock_pin(qser_info_handle, &puk_pin_info);
if(err)
{
- LOGE("[qser_data_call] mbtk_unlock_pin is fail.");
+ LOGE("mbtk_unlock_pin is fail.");
return QSER_RESULT_FAIL;
}
@@ -295,19 +325,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(pt_info == NULL)
{
- LOGE("[qser_data_call] pt_info is NULL.");
+ LOGE("pt_info is NULL.");
return QSER_RESULT_FAIL;
}
@@ -317,7 +347,7 @@
int err = mbtk_enable_pin(qser_info_handle, &pin_info);
if(err)
{
- LOGE("[qser_data_call] mbtk_enable_pin is fail.");
+ LOGE("mbtk_enable_pin is fail.");
return QSER_RESULT_FAIL;
}
@@ -331,19 +361,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(pt_info == NULL)
{
- LOGE("[qser_data_call] pt_info is NULL.");
+ LOGE("pt_info is NULL.");
return QSER_RESULT_FAIL;
}
@@ -353,7 +383,7 @@
int err = mbtk_enable_pin(qser_info_handle, &pin_info);
if(err)
{
- LOGE("[qser_data_call] mbtk_enable_pin is fail.");
+ LOGE("mbtk_enable_pin is fail.");
return QSER_RESULT_FAIL;
}
@@ -368,19 +398,19 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(pt_info == NULL)
{
- LOGE("[qser_data_call] pt_info is NULL.");
+ LOGE("pt_info is NULL.");
return QSER_RESULT_FAIL;
}
@@ -390,12 +420,12 @@
int err = mbtk_sim_state_get(qser_info_handle, &sim);
if(err)
{
- LOGE("[qser_data_call] mbtk_sim_state_get fail [err = %d].", err);
+ LOGE("mbtk_sim_state_get fail [err = %d].", err);
return QSER_RESULT_FAIL;
}
else
{
- LOGE("[qser_data_call] sim = %d.", sim);
+ LOGE("sim = %d.", sim);
memset(pt_info, 0x0, sizeof(QSER_SIM_CARD_STATUS_INFO_T));
switch (sim)
{
@@ -426,7 +456,7 @@
err = mbtk_sim_card_type_get(qser_info_handle, &sim_card_type);
if(err)
{
- LOGE("[qser_data_call] mbtk_sim_state_get fail [err = %d].", err);
+ LOGE("mbtk_sim_state_get fail [err = %d].", err);
return QSER_RESULT_FAIL;
}
else
@@ -442,7 +472,7 @@
err = mbtk_pin_last_num_get(qser_info_handle, &qser_last_times);
if(err)
{
- LOGE("[qser_data_call] mbtk_sim_state_get fail [err = %d].", err);
+ LOGE("mbtk_sim_state_get fail [err = %d].", err);
return QSER_RESULT_FAIL;
}
else
@@ -463,26 +493,26 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(imei == NULL)
{
- LOGE("[qser_data_call] imei is NULL.");
+ LOGE("imei is NULL.");
return QSER_RESULT_FAIL;
}
int err = mbtk_imei_get(qser_info_handle, imei);
if(err)
{
- LOGE("[qser_data_call] mbtk_imei_get Error : %d\n", err);
+ LOGE("mbtk_imei_get Error : %d\n", err);
return QSER_RESULT_FAIL;
}
return QSER_RESULT_SUCCESS;
@@ -495,19 +525,19 @@
//UNUSED(sv);
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(imei == NULL || sv == NULL)
{
- LOGE("[qser_data_call] param is NULL.");
+ LOGE("param is NULL.");
return QSER_RESULT_FAIL;
}
@@ -515,7 +545,7 @@
int err = mbtk_imei_get(qser_info_handle, imei);
if(err)
{
- LOGE("[qser_data_call] mbtk_imei_get Error: %d\n", err);
+ LOGE("mbtk_imei_get Error: %d\n", err);
return QSER_RESULT_FAIL;
}
@@ -531,13 +561,13 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
@@ -548,7 +578,7 @@
int err = mbtk_set_modem_fun(qser_info_handle, &info);
if(err)
{
- LOGE("[qser_data_call] mbtk_set_modem_fun Error : %d\n", err);
+ LOGE("mbtk_set_modem_fun Error : %d\n", err);
return QSER_RESULT_FAIL;
}
@@ -556,7 +586,7 @@
err = mbtk_set_modem_fun(qser_info_handle, &info);
if(err)
{
- LOGE("[qser_data_call] mbtk_set_modem_fun Error : %d\n", err);
+ LOGE("mbtk_set_modem_fun Error : %d\n", err);
return QSER_RESULT_FAIL;
}
return QSER_RESULT_SUCCESS;
@@ -569,26 +599,26 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
if(buf == NULL)
{
- LOGE("[qser_data_call] buf is NULL.");
+ LOGE("buf is NULL.");
return QSER_RESULT_FAIL;
}
int err = mbtk_version_get(qser_info_handle, buf);
if(err)
{
- LOGE("[qser_data_call] mbtk_version_get Error : %d\n", err);
+ LOGE("mbtk_version_get Error : %d\n", err);
return QSER_RESULT_FAIL;
}
return QSER_RESULT_SUCCESS;
@@ -600,13 +630,13 @@
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
if(qser_info_handle == NULL)
{
- LOGE("[qser_data_call] handle is NULL.");
+ LOGE("handle is NULL.");
return QSER_RESULT_FAIL;
}
@@ -619,7 +649,7 @@
int err = mbtk_set_modem_fun(qser_info_handle, &info);
if(err)
{
- LOGE("[qser_data_call] mbtk_set_modem_fun Error : %d\n", err);
+ LOGE("mbtk_set_modem_fun Error : %d\n", err);
return QSER_RESULT_FAIL;
}
@@ -627,18 +657,49 @@
err = mbtk_set_modem_fun(qser_info_handle, &info);
if(err)
{
- LOGE("[qser_data_call] mbtk_set_modem_fun Error : %d\n", err);
+ LOGE("mbtk_set_modem_fun Error : %d\n", err);
return QSER_RESULT_FAIL;
}
return QSER_RESULT_SUCCESS;
}
+int qser_sim_addrxmsghandler(QSER_SIM_RxMsgHandlerFunc_t handlerPtr)
+{
+ if(qser_info_handle == NULL)
+ {
+ LOGE("handle is NULL.");
+ return QSER_RESULT_FAIL;
+ }
+
+ if(handlerPtr == NULL)
+ {
+ LOGE("param is NULL.");
+ qser_sim_state_cb = NULL;
+ return QSER_RESULT_SUCCESS;
+ }
+
+ qser_sim_state_cb = handlerPtr;
+ if(!qser_sim_cb_state)
+ {
+ int ret = mbtk_sim_state_change_cb_reg(qser_info_handle, qser_sim_state_change_cb);
+ if(ret != 0)
+ {
+ LOGE("set cb fail.");
+ qser_sim_state_cb = NULL;
+ return QSER_RESULT_FAIL;
+ }
+ }
+
+ return QSER_RESULT_SUCCESS;
+}
+
+
int qser_sim_client_deinit(sim_client_handle_type h_sim)
{
//UNUSED(h_sim);
if(h_sim != qser_h_sim)
{
- LOGE("[qser_data_call] h_sim is error.");
+ LOGE("h_sim is error.");
return QSER_RESULT_FAIL;
}
@@ -650,24 +711,26 @@
int ret = mbtk_info_handle_free(&qser_info_handle);
if(ret)
{
- LOGE("[qser_data_call] mbtk_info_handle_free() fail.");
+ LOGE("mbtk_info_handle_free() fail.");
return QSER_RESULT_FAIL;
}
else
{
qser_info_handle_num = 0;
qser_info_handle = NULL;
+ qser_sim_state_cb = NULL;
inited = FALSE;
}
}
else
{
qser_info_handle_num--;
+ qser_sim_state_cb = NULL;
}
}
else
{
- LOGE("[qser_data_call] handle not inited.");
+ LOGE("handle not inited.");
return QSER_RESULT_FAIL;
}