} ImcSimPrivateInfo;
typedef struct {
- gboolean b_valid; /**< Valid or not */
- guint rec_length; /**< Length of one record in file */
- guint rec_count; /**< Number of records in file */
- guint data_size; /**< File size */
- guint current_index; /**< Current index to read */
- ImcSimFileType file_type; /**< File type and structure */
- ImcSimCurrSecOp sec_op; /**< Current index to read */
- TelSimMailboxList mbi_list; /**< Mailbox List */
- TelSimMailBoxNumber mb_list[TEL_SIM_MSP_CNT_MAX*5]; /**< Mailbox number */
- TelSimFileId file_id; /**< Current file id */
- TelSimResult file_result; /**< File access result */
- TelSimFileResult files; /**< File read data */
- TcoreCommand req_command; /**< Request command Id */
- TelSimImsiInfo imsi; /**< Stored locally as of now,
- Need to store in secure storage*/
+ gboolean b_valid; /**< Valid or not */
+ guint rec_length; /**< Length of one record in file */
+ guint rec_count; /**< Number of records in file */
+ guint data_size; /**< File size */
+ guint current_index; /**< Current index to read */
+ guint mb_count; /**< Current mbdn read index */
+ int mb_index[TEL_SIM_MSP_CNT_MAX * TEL_SIM_MAILBOX_TYPE_MAX]; /**< List of mbdn index to read */
+ ImcSimFileType file_type; /**< File type and structure */
+ ImcSimCurrSecOp sec_op; /**< Current index to read */
+ TelSimFileId file_id; /**< Current file id */
+ TelSimResult file_result; /**< File access result */
+ TelSimFileResult files; /**< File read data */
+ TcoreCommand req_command; /**< Request command Id */
+ TelSimImsiInfo imsi; /**< Stored locally as of now,
+ Need to store in secure storage*/
} ImcSimMetaInfo;
/* Utility Function Declaration */
/* Start Caching SIM files */
ret = __imc_sim_start_to_cache(co);
+ dbg("ret:[%d]", ret);
/* Send SIM Type notification */
tcore_object_send_notification(co,
ret = tcore_at_prepare_and_send_request(co,
"AT+XUICC?", "+XUICC:",
TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
NULL,
__on_response_imc_sim_get_sim_type, resp_cb_data,
- on_send_imc_request, NULL,
- 0, NULL, NULL);
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Get SIM Type");
return ret;
ret = tcore_at_prepare_and_send_request(co,
"AT+XSIMSTATE?", "+XSIMSTATE:",
TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
NULL,
__on_response_imc_sim_get_sim_status, resp_cb_data,
- on_send_imc_request, NULL,
- 0, NULL, NULL);
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Get SIM Status");
return TRUE;
} else {
file_meta->file_id = TEL_SIM_EF_LP;
__imc_sim_get_response(co, resp_cb_data);
+ return;
}
} else if (TEL_SIM_CARD_TYPE_USIM) {
if (file_meta->file_id == TEL_SIM_EF_LP || file_meta->file_id == TEL_SIM_EF_USIM_LI) {
file_meta->file_id = TEL_SIM_EF_ELP;
__imc_sim_get_response(co, resp_cb_data);
+ return;
} else {
if (resp_cb_data->cb)
resp_cb_data->cb(co, (gint)sim_result, &file_meta->files.data, resp_cb_data->cb_data);
} else {
file_meta->current_index++;
__imc_sim_read_record(co, resp_cb_data);
+ return;
}
} else if (TEL_SIM_CARD_TYPE_GSM == card_type) {
if (resp_cb_data->cb)
break;
case TEL_SIM_EF_IMSI:
+ /* Update SIM INIT status - INIT COMPLETE */
+ __imc_sim_update_sim_status(co, TEL_SIM_STATUS_SIM_INIT_COMPLETED);
+
if (resp_cb_data->cb) {
resp_cb_data->cb(co, (gint)sim_result, &file_meta->imsi, resp_cb_data->cb_data);
} else {
file_meta->file_id = TEL_SIM_EF_CPHS_CPHS_INFO;
file_meta->file_result = TEL_SIM_RESULT_FAILURE;
__imc_sim_get_response(co, resp_cb_data);
+ return;
}
- /* Update SIM INIT status - INIT COMPLETE */
- __imc_sim_update_sim_status(co, TEL_SIM_STATUS_SIM_INIT_COMPLETED);
break;
case TEL_SIM_EF_MSISDN:
} else {
file_meta->current_index++;
__imc_sim_read_record(co, resp_cb_data);
+ return;
}
break;
} else {
file_meta->current_index++;
__imc_sim_read_record(co, resp_cb_data);
+ return;
}
break;
} else {
file_meta->current_index++;
__imc_sim_read_record(co, resp_cb_data);
+ return;
}
break;
- case TEL_SIM_EF_USIM_CFIS:
- case TEL_SIM_EF_USIM_MWIS:
case TEL_SIM_EF_USIM_MBI:
+ if (file_meta->current_index == file_meta->rec_count) {
+ /* Init file_meta to read next EF file */
+ file_meta->rec_count = 0;
+ file_meta->current_index = 0;
+ file_meta->file_id = TEL_SIM_EF_MBDN;
+ /* Read MBDN record*/
+ dbg("Read MBDN record");
+ __imc_sim_get_response(co, resp_cb_data);
+ return;
+
+ } else {
+ file_meta->current_index++;
+ __imc_sim_read_record(co, resp_cb_data);
+ return;
+ }
+ break;
+
case TEL_SIM_EF_MBDN:
case TEL_SIM_EF_CPHS_MAILBOX_NUMBERS:
+ if (file_meta->mb_count == file_meta->files.data.mb.count) {
+ if (resp_cb_data->cb)
+ resp_cb_data->cb(co, (gint)sim_result, &file_meta->files.data, resp_cb_data->cb_data);
+ } else {
+ file_meta->current_index = file_meta->mb_index[file_meta->mb_count];
+ __imc_sim_read_record(co, resp_cb_data);
+ return;
+ }
+ break;
+
+ case TEL_SIM_EF_USIM_CFIS:
+ case TEL_SIM_EF_USIM_MWIS:
case TEL_SIM_EF_CPHS_INFORMATION_NUMBERS:
if (file_meta->current_index == file_meta->rec_count) {
if (resp_cb_data->cb)
} else {
file_meta->current_index++;
__imc_sim_read_record(co, resp_cb_data);
+ return;
}
break;
file_meta_new->file_result = TEL_SIM_RESULT_FAILURE;
__imc_sim_get_response(co, resp_cb_data);
+ return;
}
break;
err("File id not handled [0x%x]", file_meta->file_id);
break;
}
+
+ /* free resp_cb_data */
+ imc_destroy_resp_cb_data(resp_cb_data);
}
static void __imc_sim_next_from_get_response(CoreObject *co, ImcRespCbData *resp_cb_data, TelSimResult sim_result)
dbg("EF[0x%x] access Result[%d]", file_meta->file_id, sim_result);
file_meta->files.result = sim_result;
- if (file_meta->file_id != TEL_SIM_EF_CPHS_OPERATOR_NAME_SHORT_FORM_STRING)
+ if (file_meta->file_id != TEL_SIM_EF_CPHS_OPERATOR_NAME_SHORT_FORM_STRING &&
+ file_meta->file_id != TEL_SIM_EF_USIM_MBI &&
+ file_meta->file_id != TEL_SIM_EF_MBDN)
memset(&file_meta->files.data, 0x00, sizeof(file_meta->files.data));
if ((file_meta->file_id != TEL_SIM_EF_ELP && file_meta->file_id != TEL_SIM_EF_LP &&
break;
case TEL_SIM_EF_LP:
+ case TEL_SIM_EF_USIM_LI:
if (sim_result == TEL_SIM_RESULT_SUCCESS) {
dbg("[SIM DATA] exist EFLP/LI(0x6F05)");
__imc_sim_read_binary(co, resp_cb_data);
case TEL_SIM_EF_MSISDN:
file_meta->files.data.msisdn_list.list =
tcore_malloc0(sizeof(TelSimSubscriberInfo) * file_meta->rec_count);
+ file_meta->current_index++;
+ __imc_sim_read_record(co, resp_cb_data);
+ break;
+
+ case TEL_SIM_EF_MBDN:
+ file_meta->mb_count = 0;
+ file_meta->current_index = file_meta->mb_index[file_meta->mb_count];
+ __imc_sim_read_record(co, resp_cb_data);
+ break;
case TEL_SIM_EF_OPL:
case TEL_SIM_EF_PNN:
case TEL_SIM_EF_USIM_MWIS:
case TEL_SIM_EF_USIM_MBI:
- case TEL_SIM_EF_MBDN:
case TEL_SIM_EF_CPHS_MAILBOX_NUMBERS:
case TEL_SIM_EF_CPHS_INFORMATION_NUMBERS:
file_meta->current_index++;
if (resp->lines) {
line = (const char *)resp->lines->data;
tokens = tcore_at_tok_new(line);
- if (g_slist_length(tokens) != 3) {
+ if (g_slist_length(tokens) < 2) {
err("Invalid message");
tcore_at_tok_free(tokens);
return;
}
sw1 = atoi(g_slist_nth_data(tokens, 0));
sw2 = atoi(g_slist_nth_data(tokens, 1));
- res = g_slist_nth_data(tokens, 2);
-
- tmp = tcore_at_tok_extract(res);
- tcore_util_hexstring_to_bytes(tmp, &res, (guint *)&res_len);
- dbg("Response: [%s] Response length: [%d]", res, res_len);
if ((sw1 == 0x90 && sw2 == 0x00) || sw1 == 0x91) {
+ res = g_slist_nth_data(tokens, 2);
+
+ tmp = tcore_at_tok_extract(res);
+ tcore_util_hexstring_to_bytes(tmp, &res, (guint *)&res_len);
+ dbg("Response: [%s] Response length: [%d]", res, res_len);
+
sim_result = TEL_SIM_RESULT_SUCCESS;
file_meta->files.result = sim_result;
case TEL_SIM_EF_USIM_MBI: /* linear type */
{
TelSimMbi *mbi = NULL;
+ guint count = 0;
mbi = g_try_new0(TelSimMbi, 1);
dr = tcore_sim_decode_mbi((unsigned char *)res, res_len, mbi);
+
+ dbg("voice_index [0x%2x],fax_index[0x%2x], email_index[0x%2x]," \
+ "other_index[0x%2x], video_index [0x%2x] ", mbi->voice_index,
+ mbi->fax_index, mbi->email_index, mbi->other_index, mbi->video_index);
+
if (dr == TRUE) {
- memcpy(&file_meta->mbi_list.list[file_meta->mbi_list.count],
- mbi, sizeof(TelSimMbi));
- file_meta->mbi_list.count++;
+ count = file_meta->files.data.mb.count;
- dbg("mbi count[%d]", file_meta->mbi_list.count);
+ if(mbi->voice_index) {
+ file_meta->files.data.mb.list[count].mb_type = TEL_SIM_MAILBOX_VOICE;
+ file_meta->mb_index[count] = mbi->voice_index;
+ count++;
+ }
+ if(mbi->fax_index) {
+ file_meta->files.data.mb.list[count].mb_type = TEL_SIM_MAILBOX_FAX;
+ file_meta->mb_index[count] = mbi->fax_index;
+ count++;
+ }
+ if(mbi->email_index) {
+ file_meta->files.data.mb.list[count].mb_type = TEL_SIM_MAILBOX_EMAIL;
+ file_meta->mb_index[count] = mbi->email_index;
+ count++;
+ }
+ if(mbi->other_index) {
+ file_meta->files.data.mb.list[count].mb_type = TEL_SIM_MAILBOX_OTHER;
+ file_meta->mb_index[count] = mbi->other_index;
+ count++;
+ }
+ if(mbi->video_index) {
+ file_meta->files.data.mb.list[count].mb_type = TEL_SIM_MAILBOX_VIDEO;
+ file_meta->mb_index[count] = mbi->video_index;
+ count++;
+ }
+
+ file_meta->files.data.mb.count = count;
}
/* Free memory */
g_free(mbi);
+ dbg("index [%d] mb_type[%d]", count, file_meta->files.data.mb.list[count].mb_type);
}
break;
case TEL_SIM_EF_CPHS_MAILBOX_NUMBERS: /* linear type */
case TEL_SIM_EF_MBDN: /* linear type */
+ {
dr = tcore_sim_decode_xdn((unsigned char *)res, res_len,
- file_meta->mb_list[file_meta->current_index-1].alpha_id,
- file_meta->mb_list[file_meta->current_index-1].number);
- file_meta->mb_list[file_meta->current_index-1].alpha_id_len = strlen(file_meta->mb_list[file_meta->current_index-1].alpha_id);
- file_meta->mb_list[file_meta->current_index-1].profile_id = file_meta->current_index;
+ file_meta->files.data.mb.list[file_meta->mb_count].alpha_id,
+ &file_meta->files.data.mb.list[file_meta->mb_count].alpha_id_len,
+ file_meta->files.data.mb.list[file_meta->mb_count].number);
+ file_meta->files.data.mb.list[file_meta->mb_count].profile_id = file_meta->mb_count+1;
+ file_meta->mb_count++;
+ }
break;
case TEL_SIM_EF_CPHS_VOICE_MSG_WAITING: /* transparent type */
cmd_str = g_strdup_printf("AT+CRSM=%d,%d,%d,%d,%d,\"%s\"",
cmd, ef, p1, p2, p3, encoded_data);
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+CRSM:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- __on_response_imc_sim_update_file, resp_cb_data,
- on_send_imc_request, NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+CRSM:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ __on_response_imc_sim_update_file, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Update SIM File");
tcore_free(encoded_data);
at_cmd = g_strdup_printf("AT+CRSM=%d, %d, %d, %d, %d",
IMC_SIM_ACCESS_READ_RECORD, file_meta->file_id, p1, p2, p3);
- ret = tcore_at_prepare_and_send_request(co, at_cmd, "+CRSM:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- __on_response_imc_sim_read_data, resp_cb_data,
- on_send_imc_request, NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ at_cmd, "+CRSM:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ __on_response_imc_sim_read_data, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Get File Record");
dbg("ret:[%d]", ret);
at_cmd = g_strdup_printf("AT+CRSM=%d, %d, %d, %d, %d",
IMC_SIM_ACCESS_READ_BINARY, file_meta->file_id, p1, p2, p3);
- ret = tcore_at_prepare_and_send_request(co, at_cmd, "+CRSM:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- __on_response_imc_sim_read_data, resp_cb_data,
- on_send_imc_request, NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ at_cmd, "+CRSM:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ __on_response_imc_sim_read_data, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Get File Data");
dbg("ret:[%d]", ret);
IMC_SIM_ACCESS_GET_RESPONSE, file_meta->file_id);
ret = tcore_at_prepare_and_send_request(co,
- at_cmd, "+CRSM:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- __on_response_imc_sim_get_response, resp_cb_data,
- on_send_imc_request, NULL,
- 0, NULL, NULL);
+ at_cmd, "+CRSM:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ __on_response_imc_sim_get_response, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Get File Info");
g_free(at_cmd);
}
cmd_str = g_strdup_printf("AT+XPINCNT=%d", lock_type);
- ret = tcore_at_prepare_and_send_request(co, cmd_str, NULL,
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- __on_response_imc_sim_get_retry_count,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, NULL,
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ __on_response_imc_sim_get_retry_count, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Get Retry Count");
+
g_free(cmd_str);
return ret;
}
dbg("Entry");
IMC_SIM_READ_FILE(co, cb, cb_data, TEL_SIM_EF_LP, ret);
-
return ret;
}
ImcSimMetaInfo file_meta = {0, };
TelSimCardType card_type = TEL_SIM_CARD_TYPE_UNKNOWN;
ImcRespCbData *resp_cb_data = NULL;
- char *tmp = NULL;
- int tmp_len = 0;
char *encoded_data = NULL;
int encoded_data_len = 0;
int p1 = 0;
dbg("Entry");
IMC_SIM_READ_FILE(co, cb, cb_data, TEL_SIM_EF_USIM_MBI, ret);
-
return ret;
}
resp_cb_data = imc_create_resp_cb_data(cb, cb_data, (void *)&request->auth_type, sizeof(TelSimAuthenticationType));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+XAUTH:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- on_response_imc_sim_req_authentication, resp_cb_data,
- on_send_imc_request, NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+XAUTH:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_req_authentication, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim request authentication");
+
EXIT:
g_free(cmd_str);
tcore_free(convert_rand);
resp_cb_data = imc_create_resp_cb_data(cb, cb_data,
&sec_op, sizeof(sec_op));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, NULL,
- TCORE_AT_COMMAND_TYPE_NO_RESULT,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_verify_pins,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, NULL,
+ TCORE_AT_COMMAND_TYPE_NO_RESULT,
+ NULL,
+ on_response_imc_sim_verify_pins, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Verify Pins");
+
g_free(cmd_str);
return ret;
}
resp_cb_data = imc_create_resp_cb_data(cb, cb_data,
&sec_op, sizeof(sec_op));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, NULL,
- TCORE_AT_COMMAND_TYPE_NO_RESULT,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_verify_puks,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, NULL,
+ TCORE_AT_COMMAND_TYPE_NO_RESULT,
+ NULL,
+ on_response_imc_sim_verify_puks, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Verify Puks");
+
g_free(cmd_str);
return ret;
}
resp_cb_data = imc_create_resp_cb_data(cb, cb_data,
&sec_op, sizeof(sec_op));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, NULL,
- TCORE_AT_COMMAND_TYPE_NO_RESULT,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_change_pins,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, NULL,
+ TCORE_AT_COMMAND_TYPE_NO_RESULT,
+ NULL,
+ on_response_imc_sim_change_pins, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Change Pins");
+
g_free(cmd_str);
return ret;
}
resp_cb_data = imc_create_resp_cb_data(cb, cb_data,
&sec_op, sizeof(sec_op));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+CLCK:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_disable_facility,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+CLCK:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_disable_facility, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Disable Facility");
+
g_free(cmd_str);
return ret;
}
resp_cb_data = imc_create_resp_cb_data(cb, cb_data,
&sec_op, sizeof(sec_op));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+CLCK:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_enable_facility,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+CLCK:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_enable_facility, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Disable Facility");
+
g_free(cmd_str);
return ret;
}
resp_cb_data = imc_create_resp_cb_data(cb, cb_data,
&sec_op, sizeof(sec_op));
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+CLCK:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_get_facility,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+CLCK:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_get_facility, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Get Facility");
+
g_free(cmd_str);
return ret;
}
cmd_str = g_strdup_printf("AT+XPINCNT=%d", lockType);
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+XPINCNT:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT,
- NULL,
- on_response_imc_sim_get_lock_info,
- resp_cb_data,
- on_send_imc_request,
- NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+XPINCNT:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_get_lock_info, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Get Lock Info");
+
g_free(cmd_str);
return ret;
}
cmd_str = g_strdup_printf("AT+CSIM=%d,\"%s\"", strlen((const char *)apdu), apdu);
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+CSIM:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- on_response_imc_sim_req_apdu, resp_cb_data,
- on_send_imc_request, NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+CSIM:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_req_apdu, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Request APDU");
g_free(cmd_str);
cmd_str = g_strdup_printf("AT+XGATR");
- ret = tcore_at_prepare_and_send_request(co, cmd_str, "+XGATR:",
- TCORE_AT_COMMAND_TYPE_SINGLELINE,
- TCORE_PENDING_PRIORITY_DEFAULT, NULL,
- on_response_imc_sim_req_atr, resp_cb_data,
- on_send_imc_request, NULL, 0, NULL, NULL);
-
+ ret = tcore_at_prepare_and_send_request(co,
+ cmd_str, "+XGATR:",
+ TCORE_AT_COMMAND_TYPE_SINGLELINE,
+ NULL,
+ on_response_imc_sim_req_atr, resp_cb_data,
+ on_send_imc_request, NULL);
IMC_CHECK_REQUEST_RET(ret, resp_cb_data, "Sim Request ATR");
g_free(cmd_str);