mirror of git://git.sysmocom.de/ofono
stkutil: Add the Run AT Command response builder
This commit is contained in:
parent
5af0120c67
commit
27a9d785c4
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue