From 9fe2d4c88c4abcffb0fb7ef60e4ce24a0ea8ece5 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 12 Apr 2010 16:34:13 -0700 Subject: [PATCH] Add fake support for AT+CGDATA and AT+CGDCONT inside AT server --- gatchat/test-server.c | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gatchat/test-server.c b/gatchat/test-server.c index b57a88bb..6acc09ea 100644 --- a/gatchat/test-server.c +++ b/gatchat/test-server.c @@ -450,6 +450,56 @@ error: g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); } +static void cgdata_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user) +{ + GAtServer *server = user; + + if (modem_mode == 0) { + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + return; + } + + switch (type) { + case G_AT_SERVER_REQUEST_TYPE_SUPPORT: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + break; + case G_AT_SERVER_REQUEST_TYPE_QUERY: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + break; + case G_AT_SERVER_REQUEST_TYPE_SET: + g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); + break; + default: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + break; + } +} + +static void cgdcont_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user) +{ + GAtServer *server = user; + + if (modem_mode == 0) { + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + return; + } + + switch (type) { + case G_AT_SERVER_REQUEST_TYPE_SUPPORT: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + break; + case G_AT_SERVER_REQUEST_TYPE_QUERY: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + break; + case G_AT_SERVER_REQUEST_TYPE_SET: + g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); + break; + default: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + break; + } +} + static void cimi_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user) { GAtServer *server = user; @@ -634,6 +684,8 @@ static void add_handler(GAtServer *server) g_at_server_register(server, "+CREG", creg_cb, server, NULL); g_at_server_register(server, "+CGREG", cgreg_cb, server, NULL); g_at_server_register(server, "+CGATT", cgatt_cb, server, NULL); + g_at_server_register(server, "+CGDATA", cgdata_cb, server, NULL); + g_at_server_register(server, "+CGDCONT", cgdcont_cb, server, NULL); g_at_server_register(server, "+CIMI", cimi_cb, server, NULL); g_at_server_register(server, "+CSMS", csms_cb, server, NULL); g_at_server_register(server, "+CMGF", cmgf_cb, server, NULL);