stkutil: Add the Run AT Command response builder

This commit is contained in:
Andrzej Zaborowski 2010-05-27 06:59:52 +02:00 committed by Denis Kenzior
parent 5af0120c67
commit 27a9d785c4
2 changed files with 34 additions and 0 deletions

View File

@ -3604,6 +3604,28 @@ static gboolean build_dataobj_datetime_timezone(struct stk_tlv_builder *tlv,
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.41 */
static gboolean build_dataobj_at_response(struct stk_tlv_builder *tlv,
const void *data, gboolean cr)
{
unsigned char tag = STK_DATA_OBJECT_TYPE_AT_RESPONSE;
int len;
if (data == NULL)
return TRUE;
/* "If the AT Response string is longer than the maximum length
* capable of being transmitted to the UICC then the AT Response
* string shall be truncated to this length by the terminal." */
len = strlen(data);
if (len > 240) /* Safe pick */
len = 240;
return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
stk_tlv_builder_append_bytes(tlv, data, len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.45 */
static gboolean build_dataobj_language(struct stk_tlv_builder *tlv,
const void *data, gboolean cr)
@ -4053,6 +4075,13 @@ unsigned int stk_pdu_from_response(const struct stk_response *response,
break;
case STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT:
break;
case STK_COMMAND_TYPE_RUN_AT_COMMAND:
ok = build_dataobj(&builder,
build_dataobj_at_response,
DATAOBJ_FLAG_CR,
response->run_at_command.at_response,
NULL);
break;
default:
return 0;
};

View File

@ -1135,6 +1135,10 @@ struct stk_response_timer_mgmt {
struct stk_timer_value value;
};
struct stk_response_run_at_command {
const char *at_response;
};
struct stk_response {
unsigned char number;
unsigned char type;
@ -1159,6 +1163,7 @@ struct stk_response {
struct stk_response_generic set_up_event_list;
struct stk_response_timer_mgmt timer_mgmt;
struct stk_response_generic set_up_idle_mode_text;
struct stk_response_run_at_command run_at_command;
};
void (*destructor)(struct stk_response *response);