stktest: implement CUSATT handler

This commit is contained in:
Denis Kenzior 2012-09-28 10:37:07 -05:00
parent 10b7b7f4f5
commit 42a318892a
1 changed files with 37 additions and 0 deletions

View File

@ -253,6 +253,42 @@ error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
static void cusatt_cb(GAtServer *server, GAtServerRequestType type,
GAtResult *cmd, gpointer user)
{
char buf[12];
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SUPPORT:
g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
break;
case G_AT_SERVER_REQUEST_TYPE_QUERY:
g_at_server_send_ext_final(server, "+CME ERROR: 4");
break;
case G_AT_SERVER_REQUEST_TYPE_SET:
{
GAtResultIter iter;
const unsigned char *pdu;
int len;
g_at_result_iter_init(&iter, cmd);
g_at_result_iter_next(&iter, "");
if (g_at_result_iter_next_hexstring(&iter, &pdu, &len) == FALSE)
goto error;
g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
break;
}
default:
goto error;
};
return;
error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
static void listen_again(gpointer user_data)
{
if (create_tcp() == TRUE)
@ -271,6 +307,7 @@ static void setup_emulator(GAtServer *server)
g_at_server_register(server, "+CGMR", cgmr_cb, NULL, NULL);
g_at_server_register(server, "+CGSN", cgsn_cb, NULL, NULL);
g_at_server_register(server, "+CFUN", cfun_cb, NULL, NULL);
g_at_server_register(server, "+CUSATT", cusatt_cb, NULL, NULL);
g_at_server_set_disconnect_function(server, listen_again, NULL);
}