* [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm
@ 2011-06-08 9:46 Amit Mendapara
2011-06-08 9:46 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
2011-06-11 14:03 ` [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Denis Kenzior
0 siblings, 2 replies; 11+ messages in thread
From: Amit Mendapara @ 2011-06-08 9:46 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 13953 bytes --]
The AT commands listed with AT+CLAC matches with MBM supported devices.
However, the mbm plugin doesn't work for this devices and the specification is
also quite different.
I have also adopted some fixes from huawei plugin to fix MeeGo bug #14784
Signed-off-by: Amit Mendapara <mendapara.amit@gmail.com>
---
plugins/linktop.c | 301 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 208 insertions(+), 93 deletions(-)
diff --git a/plugins/linktop.c b/plugins/linktop.c
index 953f634..26536d8 100644
--- a/plugins/linktop.c
+++ b/plugins/linktop.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <gatchat.h>
@@ -42,6 +43,7 @@
#include <ofono/message-waiting.h>
#include <ofono/netreg.h>
#include <ofono/sim.h>
+#include <ofono/stk.h>
#include <ofono/cbs.h>
#include <ofono/sms.h>
#include <ofono/ussd.h>
@@ -53,16 +55,21 @@
#include <ofono/radio-settings.h>
#include <ofono/log.h>
-#include <drivers/atmodem/vendor.h>
#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
+static const char *cpin_prefix[] = { "+CPIN:", NULL };
static const char *none_prefix[] = { NULL };
struct linktop_data {
- GAtChat *modem;
- GAtChat *control;
+ GAtChat *modem_port;
+ GAtChat *data_port;
+ guint cpin_poll_source;
+ guint cpin_poll_count;
+ gboolean have_sim;
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
+ guint reopen_source;
};
static int linktop_probe(struct ofono_modem *modem)
@@ -86,35 +93,86 @@ static void linktop_remove(struct ofono_modem *modem)
DBG("%p", modem);
+ if (data->reopen_source > 0) {
+ g_source_remove(data->reopen_source);
+ data->reopen_source = 0;
+ }
+
ofono_modem_set_data(modem, NULL);
- g_at_chat_unref(data->modem);
- g_at_chat_unref(data->control);
+ g_at_chat_unref(data->data_port);
+ g_at_chat_unref(data->modem_port);
+
+ if (data->cpin_poll_source > 0)
+ g_source_remove(data->cpin_poll_source);
g_free(data);
}
static void linktop_debug(const char *str, void *user_data)
{
- const char *prefix = user_data;
+ const char *prefix = user_data;
+
+ ofono_info("%s%s", prefix, str);
+}
+
+static gboolean init_simpin_check(gpointer user_data);
+
+static void simpin_check(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
- ofono_info("%s%s", prefix, str);
+ DBG("");
+
+ /* Modem returns an error if SIM is not ready. */
+ if (!ok && data->cpin_poll_count++ < 5) {
+ data->cpin_poll_source =
+ g_timeout_add_seconds(1, init_simpin_check, modem);
+ return;
+ }
+
+ data->cpin_poll_count = 0;
+
+ /* There is probably no SIM if SIM is not ready after 5 seconds. */
+ data->have_sim = ok;
+
+ ofono_modem_set_powered(modem, TRUE);
}
-static GAtChat *open_device(struct ofono_modem *modem,
- const char *key, char *debug)
+static gboolean init_simpin_check(gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ data->cpin_poll_source = 0;
+
+ g_at_chat_send(data->modem_port, "AT+CPIN?", cpin_prefix,
+ simpin_check, modem, NULL);
+
+ return FALSE;
+}
+
+static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+
+ DBG("");
+
+ if (!ok) {
+ ofono_modem_set_powered(modem, FALSE);
+ return;
+ }
+
+ init_simpin_check(modem);
+}
+
+static GAtChat *create_port(const char *device)
{
- const char *device;
GAtSyntax *syntax;
GIOChannel *channel;
GAtChat *chat;
- device = ofono_modem_get_string(modem, key);
- if (device == NULL)
- return NULL;
-
- DBG("%s %s", key, device);
-
channel = g_at_tty_open(device, NULL);
if (channel == NULL)
return NULL;
@@ -127,81 +185,116 @@ static GAtChat *open_device(struct ofono_modem *modem,
if (chat == NULL)
return NULL;
- if (getenv("OFONO_AT_DEBUG"))
- g_at_chat_set_debug(chat, linktop_debug, debug);
-
return chat;
}
-static void linktop_disconnect(gpointer user_data)
+static void linktop_disconnect(gpointer user_data);
+
+static gboolean reopen_callback(gpointer user_data)
{
struct ofono_modem *modem = user_data;
struct linktop_data *data = ofono_modem_get_data(modem);
+ const char *data_dev;
+
+ data_dev = ofono_modem_get_string(modem, "DataDevice");
+ data->data_port = create_port(data_dev);
+ /* retry once if failed */
+ if (data->data_port == NULL) {
+ if (data->reopen_source > 0)
+ return FALSE;
+
+ data->reopen_source = g_timeout_add_seconds(1,
+ reopen_callback, modem);
+ ofono_debug("opening data port failed, retrying...");
+ return FALSE;
+ }
- DBG("");
-
- if (data->gc)
- ofono_gprs_context_remove(data->gc);
-
- g_at_chat_unref(data->modem);
- data->modem = NULL;
-
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return;
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
- g_at_chat_set_disconnect_function(data->modem,
+ g_at_chat_set_disconnect_function(data->data_port,
linktop_disconnect, modem);
ofono_info("Reopened GPRS context channel");
- data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (data->gprs && data->gc)
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
+ if (data->gprs && data->gc) {
ofono_gprs_add_context(data->gprs, data->gc);
+ }
+
+ data->reopen_source = 0;
+
+ return FALSE;
}
-static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+static void linktop_disconnect(gpointer user_data)
{
struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
- DBG("");
+ DBG("%p, data->gc %p", modem, data->gc);
+
+ /* gprs_context has been destructed and needs not reopen */
+ if (data->gc == NULL)
+ return
+
+ ofono_gprs_context_remove(data->gc);
- ofono_modem_set_powered(modem, ok);
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
+
+ /* Waiting for the +CGEV: ME DEACT might also work */
+ if (data->reopen_source > 0)
+ g_source_remove(data->reopen_source);
+
+ data->reopen_source = g_timeout_add_seconds(1, reopen_callback, modem);
}
static int linktop_enable(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
+ const char *modem_dev;
+ const char *data_dev;
DBG("%p", modem);
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return -EINVAL;
+ modem_dev = ofono_modem_get_string(modem, "ModemDevice");
+ data_dev = ofono_modem_get_string(modem, "DataDevice");
- g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
+ DBG("%s, %s", modem_dev, data_dev);
+
+ if (modem_dev == NULL || data_dev == NULL)
+ return -EINVAL;
- data->control = open_device(modem, "Control", "Control: ");
- if (data->control == NULL) {
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ data->modem_port = create_port(modem_dev);
+ if (data->modem_port == NULL)
return -EIO;
- }
- g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
- NULL, NULL, NULL);
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->modem_port, linktop_debug, "Modem: ");
+
+ data->data_port = create_port(data_dev);
+ if (data->data_port == NULL) {
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
- g_at_chat_send(data->modem, "AT", none_prefix,
- NULL, NULL, NULL);
+ return -EIO;
+ }
- g_at_chat_send(data->modem, "AT &F", none_prefix,
- NULL, NULL, NULL);
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_enable, modem, NULL);
+ g_at_chat_set_disconnect_function(data->data_port,
+ linktop_disconnect, modem);
+ g_at_chat_send(data->modem_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
+ NULL, NULL, NULL);
+ g_at_chat_send(data->data_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
+ NULL, NULL, NULL);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", none_prefix,
+ cfun_enable, modem, NULL);
+
return -EINPROGRESS;
}
@@ -212,8 +305,11 @@ static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
DBG("");
- g_at_chat_unref(data->control);
- data->control = NULL;
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
+
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
if (ok)
ofono_modem_set_powered(modem, FALSE);
@@ -225,19 +321,17 @@ static int linktop_disable(struct ofono_modem *modem)
DBG("%p", modem);
- if (data->modem) {
- g_at_chat_cancel_all(data->modem);
- g_at_chat_unregister_all(data->modem);
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ if (data->reopen_source > 0) {
+ g_source_remove(data->reopen_source);
+ data->reopen_source = 0;
}
- if (data->control == NULL)
+ if (data->modem_port == NULL)
return 0;
- g_at_chat_cancel_all(data->control);
- g_at_chat_unregister_all(data->control);
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
+ g_at_chat_cancel_all(data->modem_port);
+ g_at_chat_unregister_all(data->modem_port);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", NULL,
cfun_disable, modem, NULL);
return -EINPROGRESS;
@@ -253,17 +347,37 @@ static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
cb(&error, cbd->data);
}
+static void set_offline_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct cb_data *cbd = user_data;
+ ofono_modem_online_cb_t cb = cbd->cb;
+ struct ofono_error error;
+
+ if (ok) {
+ struct linktop_data *data = cbd->user;
+
+ data->gc = NULL;
+ data->gprs = NULL;
+ }
+
+ decode_at_error(&error, g_at_result_final_response(result));
+ cb(&error, cbd->data);
+}
+
static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t online,
ofono_modem_online_cb_t cb, void *user_data)
{
struct linktop_data *data = ofono_modem_get_data(modem);
- GAtChat *chat = data->control;
+ GAtChat *chat = data->modem_port;
struct cb_data *cbd = cb_data_new(cb, user_data);
char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
DBG("modem %p %s", modem, online ? "online" : "offline");
- if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
+ cbd->user = data;
+
+ if (g_at_chat_send(chat, command, NULL,
+ online ? set_online_cb : set_offline_cb, cbd, g_free))
return;
g_free(cbd);
@@ -278,11 +392,11 @@ static void linktop_pre_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_devinfo_create(modem, 0, "atmodem", data->control);
- sim = ofono_sim_create(modem, 0, "atmodem", data->control);
- ofono_voicecall_create(modem, 0, "stemodem", data->control);
+ ofono_devinfo_create(modem, 0, "atmodem", data->modem_port);
+ sim = ofono_sim_create(modem, 0, "atmodem", data->modem_port);
+ ofono_voicecall_create(modem, 0, "stemodem", data->modem_port);
- if (sim)
+ if (data->have_sim && sim)
ofono_sim_inserted_notify(sim, TRUE);
}
@@ -292,35 +406,36 @@ static void linktop_post_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_radio_settings_create(modem, 0, "stemodem", data->control);
- ofono_phonebook_create(modem, 0, "atmodem", data->control);
- ofono_sms_create(modem, 0, "atmodem", data->control);
+ ofono_stk_create(modem, 0, "mbmmodem", data->modem_port);
+ ofono_radio_settings_create(modem, 0, "stemodem", data->modem_port);
+ ofono_phonebook_create(modem, 0, "atmodem", data->modem_port);
+ ofono_sms_create(modem, 0, "atmodem", data->modem_port);
}
static void linktop_post_online(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
struct ofono_message_waiting *mw;
- struct ofono_gprs *gprs;
- struct ofono_gprs_context *gc;
DBG("%p", modem);
- ofono_ussd_create(modem, 0, "atmodem", data->control);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
- ofono_call_settings_create(modem, 0, "atmodem", data->control);
- ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem", data->control);
- ofono_call_meter_create(modem, 0, "atmodem", data->control);
- ofono_call_barring_create(modem, 0, "atmodem", data->control);
- ofono_call_volume_create(modem, 0, "atmodem", data->control);
- ofono_cbs_create(modem, 0, "atmodem", data->control);
-
- gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
- "atmodem", data->control);
- gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (gprs && gc)
- ofono_gprs_add_context(gprs, gc);
+ ofono_netreg_create(modem, 0, "atmodem", data->modem_port);
+ ofono_cbs_create(modem, 0, "atmodem", data->modem_port);
+ ofono_ussd_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_forwarding_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_settings_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_meter_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_barring_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_volume_create(modem, 0, "atmodem", data->modem_port);
+
+ data->gprs = ofono_gprs_create(modem, 0,
+ "atmodem", data->modem_port);
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
+
+ if (data->gprs && data->gc) {
+ ofono_gprs_add_context(data->gprs, data->gc);
+ }
mw = ofono_message_waiting_create(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/2] udev: changed linktop device strings
2011-06-08 9:46 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Amit Mendapara
@ 2011-06-08 9:46 ` Amit Mendapara
2011-06-11 14:05 ` Denis Kenzior
2011-06-11 14:03 ` [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Denis Kenzior
1 sibling, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-06-08 9:46 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 864 bytes --]
Signed-off-by: Amit Mendapara <mendapara.amit@gmail.com>
---
plugins/udev.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/udev.c b/plugins/udev.c
index 0234fc0..4f4e6d8 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -577,10 +577,10 @@ static void add_linktop(struct ofono_modem *modem,
if (g_strcmp0(intfnum, "01") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Modem", devnode);
+ ofono_modem_set_string(modem, "ModemDevice", devnode);
} else if (g_strcmp0(intfnum, "03") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Control", devnode);
+ ofono_modem_set_string(modem, "DataDevice", devnode);
ofono_modem_set_integer(modem, "Registered", 1);
ofono_modem_register(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 2/2] udev: changed linktop device strings
2011-06-08 9:46 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
@ 2011-06-11 14:05 ` Denis Kenzior
0 siblings, 0 replies; 11+ messages in thread
From: Denis Kenzior @ 2011-06-11 14:05 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1059 bytes --]
Hi Amit,
On 06/08/2011 04:46 AM, Amit Mendapara wrote:
> Signed-off-by: Amit Mendapara <mendapara.amit@gmail.com>
> ---
> plugins/udev.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
Please remove the Signed-off-by line as we don't use it.
> diff --git a/plugins/udev.c b/plugins/udev.c
> index 0234fc0..4f4e6d8 100644
> --- a/plugins/udev.c
> +++ b/plugins/udev.c
> @@ -577,10 +577,10 @@ static void add_linktop(struct ofono_modem *modem,
>
> if (g_strcmp0(intfnum, "01") == 0) {
> devnode = udev_device_get_devnode(udev_device);
> - ofono_modem_set_string(modem, "Modem", devnode);
> + ofono_modem_set_string(modem, "ModemDevice", devnode);
> } else if (g_strcmp0(intfnum, "03") == 0) {
> devnode = udev_device_get_devnode(udev_device);
> - ofono_modem_set_string(modem, "Control", devnode);
> + ofono_modem_set_string(modem, "DataDevice", devnode);
>
> ofono_modem_set_integer(modem, "Registered", 1);
> ofono_modem_register(modem);
Rest looks fine to me.
Regards,
-Denis
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm
2011-06-08 9:46 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Amit Mendapara
2011-06-08 9:46 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
@ 2011-06-11 14:03 ` Denis Kenzior
2011-06-13 7:30 ` Amit Mendapara
1 sibling, 1 reply; 11+ messages in thread
From: Denis Kenzior @ 2011-06-11 14:03 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 15604 bytes --]
Hi Amit,
On 06/08/2011 04:46 AM, Amit Mendapara wrote:
> The AT commands listed with AT+CLAC matches with MBM supported devices.
> However, the mbm plugin doesn't work for this devices and the specification is
> also quite different.
The linktop device is most likely another Qualcomm clone, so the closest
driver would be the huawei and not mbm.
>
> I have also adopted some fixes from huawei plugin to fix MeeGo bug #14784
>
> Signed-off-by: Amit Mendapara <mendapara.amit@gmail.com>
We don't use Signed-off-by, please configure your git accordingly.
> ---
> plugins/linktop.c | 301 ++++++++++++++++++++++++++++++++++++----------------
> 1 files changed, 208 insertions(+), 93 deletions(-)
>
> diff --git a/plugins/linktop.c b/plugins/linktop.c
> index 953f634..26536d8 100644
> --- a/plugins/linktop.c
> +++ b/plugins/linktop.c
> @@ -26,6 +26,7 @@
> #include <stdio.h>
> #include <errno.h>
> #include <stdlib.h>
> +#include <string.h>
>
> #include <glib.h>
> #include <gatchat.h>
> @@ -42,6 +43,7 @@
> #include <ofono/message-waiting.h>
> #include <ofono/netreg.h>
> #include <ofono/sim.h>
> +#include <ofono/stk.h>
This looks fishy, have you actually tested STK on the linktop devices?
If not, then I'd rather leave this part out right now.
> #include <ofono/cbs.h>
> #include <ofono/sms.h>
> #include <ofono/ussd.h>
> @@ -53,16 +55,21 @@
> #include <ofono/radio-settings.h>
Same with radio-settings and voicecall.
> #include <ofono/log.h>
>
> -#include <drivers/atmodem/vendor.h>
> #include <drivers/atmodem/atutil.h>
> +#include <drivers/atmodem/vendor.h>
>
> +static const char *cpin_prefix[] = { "+CPIN:", NULL };
> static const char *none_prefix[] = { NULL };
>
> struct linktop_data {
> - GAtChat *modem;
> - GAtChat *control;
> + GAtChat *modem_port;
> + GAtChat *data_port;
> + guint cpin_poll_source;
> + guint cpin_poll_count;
> + gboolean have_sim;
> struct ofono_gprs *gprs;
> struct ofono_gprs_context *gc;
> + guint reopen_source;
> };
>
> static int linktop_probe(struct ofono_modem *modem)
> @@ -86,35 +93,86 @@ static void linktop_remove(struct ofono_modem *modem)
>
> DBG("%p", modem);
>
> + if (data->reopen_source > 0) {
> + g_source_remove(data->reopen_source);
> + data->reopen_source = 0;
> + }
> +
> ofono_modem_set_data(modem, NULL);
>
> - g_at_chat_unref(data->modem);
> - g_at_chat_unref(data->control);
> + g_at_chat_unref(data->data_port);
> + g_at_chat_unref(data->modem_port);
> +
> + if (data->cpin_poll_source > 0)
> + g_source_remove(data->cpin_poll_source);
>
> g_free(data);
> }
>
> static void linktop_debug(const char *str, void *user_data)
> {
> - const char *prefix = user_data;
> + const char *prefix = user_data;
> +
> + ofono_info("%s%s", prefix, str);
> +}
> +
> +static gboolean init_simpin_check(gpointer user_data);
> +
> +static void simpin_check(gboolean ok, GAtResult *result, gpointer user_data)
> +{
> + struct ofono_modem *modem = user_data;
> + struct linktop_data *data = ofono_modem_get_data(modem);
>
> - ofono_info("%s%s", prefix, str);
> + DBG("");
> +
> + /* Modem returns an error if SIM is not ready. */
> + if (!ok && data->cpin_poll_count++ < 5) {
> + data->cpin_poll_source =
> + g_timeout_add_seconds(1, init_simpin_check, modem);
> + return;
> + }
> +
> + data->cpin_poll_count = 0;
> +
> + /* There is probably no SIM if SIM is not ready after 5 seconds. */
> + data->have_sim = ok;
> +
> + ofono_modem_set_powered(modem, TRUE);
> }
>
> -static GAtChat *open_device(struct ofono_modem *modem,
> - const char *key, char *debug)
> +static gboolean init_simpin_check(gpointer user_data)
> +{
> + struct ofono_modem *modem = user_data;
> + struct linktop_data *data = ofono_modem_get_data(modem);
> +
> + data->cpin_poll_source = 0;
> +
> + g_at_chat_send(data->modem_port, "AT+CPIN?", cpin_prefix,
> + simpin_check, modem, NULL);
> +
> + return FALSE;
> +}
> +
> +static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
Please name this function cfun_enable_cb, so it is clear that it is in
fact a callback.
> +{
> + struct ofono_modem *modem = user_data;
> +
> + DBG("");
> +
> + if (!ok) {
> + ofono_modem_set_powered(modem, FALSE);
> + return;
> + }
> +
> + init_simpin_check(modem);
> +}
> +
> +static GAtChat *create_port(const char *device)
> {
> - const char *device;
> GAtSyntax *syntax;
> GIOChannel *channel;
> GAtChat *chat;
>
> - device = ofono_modem_get_string(modem, key);
> - if (device == NULL)
> - return NULL;
> -
> - DBG("%s %s", key, device);
> -
> channel = g_at_tty_open(device, NULL);
> if (channel == NULL)
> return NULL;
> @@ -127,81 +185,116 @@ static GAtChat *open_device(struct ofono_modem *modem,
> if (chat == NULL)
> return NULL;
>
> - if (getenv("OFONO_AT_DEBUG"))
> - g_at_chat_set_debug(chat, linktop_debug, debug);
> -
> return chat;
> }
>
> -static void linktop_disconnect(gpointer user_data)
> +static void linktop_disconnect(gpointer user_data);
> +
> +static gboolean reopen_callback(gpointer user_data)
> {
> struct ofono_modem *modem = user_data;
> struct linktop_data *data = ofono_modem_get_data(modem);
> + const char *data_dev;
> +
> + data_dev = ofono_modem_get_string(modem, "DataDevice");
> + data->data_port = create_port(data_dev);
> + /* retry once if failed */
> + if (data->data_port == NULL) {
> + if (data->reopen_source > 0)
> + return FALSE;
> +
> + data->reopen_source = g_timeout_add_seconds(1,
> + reopen_callback, modem);
> + ofono_debug("opening data port failed, retrying...");
> + return FALSE;
> + }
>
> - DBG("");
> -
> - if (data->gc)
> - ofono_gprs_context_remove(data->gc);
> -
> - g_at_chat_unref(data->modem);
> - data->modem = NULL;
> -
> - data->modem = open_device(modem, "Modem", "Modem: ");
> - if (data->modem == NULL)
> - return;
> + if (getenv("OFONO_AT_DEBUG"))
> + g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
>
> - g_at_chat_set_disconnect_function(data->modem,
> + g_at_chat_set_disconnect_function(data->data_port,
> linktop_disconnect, modem);
>
> ofono_info("Reopened GPRS context channel");
>
> - data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
> -
> - if (data->gprs && data->gc)
> + data->gc = ofono_gprs_context_create(modem, 0,
> + "atmodem", data->data_port);
> + if (data->gprs && data->gc) {
> ofono_gprs_add_context(data->gprs, data->gc);
> + }
These braces are not necessary, please remove them
> +
> + data->reopen_source = 0;
> +
> + return FALSE;
> }
>
> -static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
> +static void linktop_disconnect(gpointer user_data)
> {
> struct ofono_modem *modem = user_data;
> + struct linktop_data *data = ofono_modem_get_data(modem);
>
> - DBG("");
> + DBG("%p, data->gc %p", modem, data->gc);
> +
> + /* gprs_context has been destructed and needs not reopen */
> + if (data->gc == NULL)
> + return
> +
> + ofono_gprs_context_remove(data->gc);
>
> - ofono_modem_set_powered(modem, ok);
> + g_at_chat_unref(data->data_port);
> + data->data_port = NULL;
> +
> + /* Waiting for the +CGEV: ME DEACT might also work */
> + if (data->reopen_source > 0)
> + g_source_remove(data->reopen_source);
> +
> + data->reopen_source = g_timeout_add_seconds(1, reopen_callback, modem);
> }
>
> static int linktop_enable(struct ofono_modem *modem)
> {
> struct linktop_data *data = ofono_modem_get_data(modem);
> + const char *modem_dev;
> + const char *data_dev;
>
> DBG("%p", modem);
>
> - data->modem = open_device(modem, "Modem", "Modem: ");
> - if (data->modem == NULL)
> - return -EINVAL;
> + modem_dev = ofono_modem_get_string(modem, "ModemDevice");
> + data_dev = ofono_modem_get_string(modem, "DataDevice");
>
> - g_at_chat_set_disconnect_function(data->modem,
> - linktop_disconnect, modem);
> + DBG("%s, %s", modem_dev, data_dev);
> +
> + if (modem_dev == NULL || data_dev == NULL)
> + return -EINVAL;
>
> - data->control = open_device(modem, "Control", "Control: ");
> - if (data->control == NULL) {
> - g_at_chat_unref(data->modem);
> - data->modem = NULL;
> + data->modem_port = create_port(modem_dev);
> + if (data->modem_port == NULL)
> return -EIO;
> - }
>
> - g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
> - NULL, NULL, NULL);
> + if (getenv("OFONO_AT_DEBUG"))
> + g_at_chat_set_debug(data->modem_port, linktop_debug, "Modem: ");
> +
> + data->data_port = create_port(data_dev);
> + if (data->data_port == NULL) {
> + g_at_chat_unref(data->modem_port);
> + data->modem_port = NULL;
>
> - g_at_chat_send(data->modem, "AT", none_prefix,
> - NULL, NULL, NULL);
> + return -EIO;
> + }
>
> - g_at_chat_send(data->modem, "AT &F", none_prefix,
> - NULL, NULL, NULL);
> + if (getenv("OFONO_AT_DEBUG"))
> + g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
>
> - g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
> - cfun_enable, modem, NULL);
> + g_at_chat_set_disconnect_function(data->data_port,
> + linktop_disconnect, modem);
>
> + g_at_chat_send(data->modem_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
> + NULL, NULL, NULL);
> + g_at_chat_send(data->data_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
> + NULL, NULL, NULL);
> + g_at_chat_send(data->modem_port, "AT+CFUN=4", none_prefix,
> + cfun_enable, modem, NULL);
> +
> return -EINPROGRESS;
> }
>
> @@ -212,8 +305,11 @@ static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
>
> DBG("");
>
> - g_at_chat_unref(data->control);
> - data->control = NULL;
> + g_at_chat_unref(data->modem_port);
> + data->modem_port = NULL;
> +
> + g_at_chat_unref(data->data_port);
> + data->data_port = NULL;
>
> if (ok)
> ofono_modem_set_powered(modem, FALSE);
> @@ -225,19 +321,17 @@ static int linktop_disable(struct ofono_modem *modem)
>
> DBG("%p", modem);
>
> - if (data->modem) {
> - g_at_chat_cancel_all(data->modem);
> - g_at_chat_unregister_all(data->modem);
> - g_at_chat_unref(data->modem);
> - data->modem = NULL;
> + if (data->reopen_source > 0) {
> + g_source_remove(data->reopen_source);
> + data->reopen_source = 0;
> }
>
> - if (data->control == NULL)
> + if (data->modem_port == NULL)
> return 0;
>
> - g_at_chat_cancel_all(data->control);
> - g_at_chat_unregister_all(data->control);
> - g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
> + g_at_chat_cancel_all(data->modem_port);
> + g_at_chat_unregister_all(data->modem_port);
> + g_at_chat_send(data->modem_port, "AT+CFUN=4", NULL,
> cfun_disable, modem, NULL);
>
> return -EINPROGRESS;
> @@ -253,17 +347,37 @@ static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
> cb(&error, cbd->data);
> }
>
> +static void set_offline_cb(gboolean ok, GAtResult *result, gpointer user_data)
> +{
> + struct cb_data *cbd = user_data;
> + ofono_modem_online_cb_t cb = cbd->cb;
> + struct ofono_error error;
> +
> + if (ok) {
> + struct linktop_data *data = cbd->user;
> +
> + data->gc = NULL;
> + data->gprs = NULL;
> + }
> +
> + decode_at_error(&error, g_at_result_final_response(result));
> + cb(&error, cbd->data);
> +}
> +
> static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t online,
> ofono_modem_online_cb_t cb, void *user_data)
> {
> struct linktop_data *data = ofono_modem_get_data(modem);
> - GAtChat *chat = data->control;
> + GAtChat *chat = data->modem_port;
> struct cb_data *cbd = cb_data_new(cb, user_data);
> char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
>
> DBG("modem %p %s", modem, online ? "online" : "offline");
>
> - if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
> + cbd->user = data;
> +
> + if (g_at_chat_send(chat, command, NULL,
> + online ? set_online_cb : set_offline_cb, cbd, g_free))
> return;
>
> g_free(cbd);
> @@ -278,11 +392,11 @@ static void linktop_pre_sim(struct ofono_modem *modem)
>
> DBG("%p", modem);
>
> - ofono_devinfo_create(modem, 0, "atmodem", data->control);
> - sim = ofono_sim_create(modem, 0, "atmodem", data->control);
> - ofono_voicecall_create(modem, 0, "stemodem", data->control);
> + ofono_devinfo_create(modem, 0, "atmodem", data->modem_port);
> + sim = ofono_sim_create(modem, 0, "atmodem", data->modem_port);
> + ofono_voicecall_create(modem, 0, "stemodem", data->modem_port);
>
> - if (sim)
> + if (data->have_sim && sim)
> ofono_sim_inserted_notify(sim, TRUE);
> }
>
> @@ -292,35 +406,36 @@ static void linktop_post_sim(struct ofono_modem *modem)
>
> DBG("%p", modem);
>
> - ofono_radio_settings_create(modem, 0, "stemodem", data->control);
> - ofono_phonebook_create(modem, 0, "atmodem", data->control);
> - ofono_sms_create(modem, 0, "atmodem", data->control);
> + ofono_stk_create(modem, 0, "mbmmodem", data->modem_port);
> + ofono_radio_settings_create(modem, 0, "stemodem", data->modem_port);
The above two look fishy. Have you tested that they work? Otherwise
lets drop them for now.
> + ofono_phonebook_create(modem, 0, "atmodem", data->modem_port);
> + ofono_sms_create(modem, 0, "atmodem", data->modem_port);
> }
>
> static void linktop_post_online(struct ofono_modem *modem)
> {
> struct linktop_data *data = ofono_modem_get_data(modem);
> struct ofono_message_waiting *mw;
> - struct ofono_gprs *gprs;
> - struct ofono_gprs_context *gc;
>
> DBG("%p", modem);
>
> - ofono_ussd_create(modem, 0, "atmodem", data->control);
> - ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
> - ofono_call_settings_create(modem, 0, "atmodem", data->control);
> - ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem", data->control);
> - ofono_call_meter_create(modem, 0, "atmodem", data->control);
> - ofono_call_barring_create(modem, 0, "atmodem", data->control);
> - ofono_call_volume_create(modem, 0, "atmodem", data->control);
> - ofono_cbs_create(modem, 0, "atmodem", data->control);
> -
> - gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
> - "atmodem", data->control);
> - gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
> -
> - if (gprs && gc)
> - ofono_gprs_add_context(gprs, gc);
> + ofono_netreg_create(modem, 0, "atmodem", data->modem_port);
> + ofono_cbs_create(modem, 0, "atmodem", data->modem_port);
> + ofono_ussd_create(modem, 0, "atmodem", data->modem_port);
> + ofono_call_forwarding_create(modem, 0, "atmodem", data->modem_port);
> + ofono_call_settings_create(modem, 0, "atmodem", data->modem_port);
> + ofono_call_meter_create(modem, 0, "atmodem", data->modem_port);
> + ofono_call_barring_create(modem, 0, "atmodem", data->modem_port);
> + ofono_call_volume_create(modem, 0, "atmodem", data->modem_port);
> +
> + data->gprs = ofono_gprs_create(modem, 0,
> + "atmodem", data->modem_port);
> + data->gc = ofono_gprs_context_create(modem, 0,
> + "atmodem", data->data_port);
> +
> + if (data->gprs && data->gc) {
> + ofono_gprs_add_context(data->gprs, data->gc);
> + }
These braces are not necessary
>
> mw = ofono_message_waiting_create(modem);
>
Regards,
-Denis
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm
2011-06-11 14:03 ` [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Denis Kenzior
@ 2011-06-13 7:30 ` Amit Mendapara
2011-06-12 8:57 ` Denis Kenzior
0 siblings, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-06-13 7:30 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 19652 bytes --]
Hi Denis,
On Sat, Jun 11, 2011 at 7:33 PM, Denis Kenzior <denkenz@gmail.com> wrote:
> Hi Amit,
>
> On 06/08/2011 04:46 AM, Amit Mendapara wrote:
> > The AT commands listed with AT+CLAC matches with MBM supported devices.
> > However, the mbm plugin doesn't work for this devices and the
> specification is
> > also quite different.
>
> The linktop device is most likely another Qualcomm clone, so the closest
> driver would be the huawei and not mbm.
>
The windows driver files have some references to ST-Ericsson and the AT
commands
looks more like as subset of ST-Ericsson commands then Huawei.
I have cross check the listed commands with
http://natisbad.org/E4300/Dell_Wireless_5530_AT_cmd_ref.html and
found lots of AT*E**** commands which are Ericsson extensions.
>
> >
> > I have also adopted some fixes from huawei plugin to fix MeeGo bug #14784
> >
> > Signed-off-by: Amit Mendapara <mendapara.amit@gmail.com>
>
> We don't use Signed-off-by, please configure your git accordingly.
>
Sure, I will remove signed-off next time.
>
> > ---
> > plugins/linktop.c | 301
> ++++++++++++++++++++++++++++++++++++----------------
> > 1 files changed, 208 insertions(+), 93 deletions(-)
> >
> > diff --git a/plugins/linktop.c b/plugins/linktop.c
> > index 953f634..26536d8 100644
> > --- a/plugins/linktop.c
> > +++ b/plugins/linktop.c
> > @@ -26,6 +26,7 @@
> > #include <stdio.h>
> > #include <errno.h>
> > #include <stdlib.h>
> > +#include <string.h>
> >
> > #include <glib.h>
> > #include <gatchat.h>
> > @@ -42,6 +43,7 @@
> > #include <ofono/message-waiting.h>
> > #include <ofono/netreg.h>
> > #include <ofono/sim.h>
> > +#include <ofono/stk.h>
>
> This looks fishy, have you actually tested STK on the linktop devices?
> If not, then I'd rather leave this part out right now.
>
I never tested this feature and the test-stk-menu shows empty menu so yes
you can remove this.
>
> > #include <ofono/cbs.h>
> > #include <ofono/sms.h>
> > #include <ofono/ussd.h>
> > @@ -53,16 +55,21 @@
> > #include <ofono/radio-settings.h>
>
> Same with radio-settings and voicecall.
>
I have tested redio-settings and is required to switch to edge to umts.
The device supports voice call but I am unable to test with test-voicecall
script ast it fails with
`Method "GetCalls" with signature "" on interface
"org.ofono.VoiceCallManager" doesn't exist` error.
Looking at windows driver log, the device issues AT*ECAV command
to initiate voice call like this:
AT*ECAV: 1,1,1,,,"1503",129
> > #include <ofono/log.h>
> >
> > -#include <drivers/atmodem/vendor.h>
> > #include <drivers/atmodem/atutil.h>
> > +#include <drivers/atmodem/vendor.h>
> >
> > +static const char *cpin_prefix[] = { "+CPIN:", NULL };
> > static const char *none_prefix[] = { NULL };
> >
> > struct linktop_data {
> > - GAtChat *modem;
> > - GAtChat *control;
> > + GAtChat *modem_port;
> > + GAtChat *data_port;
> > + guint cpin_poll_source;
> > + guint cpin_poll_count;
> > + gboolean have_sim;
> > struct ofono_gprs *gprs;
> > struct ofono_gprs_context *gc;
> > + guint reopen_source;
> > };
> >
> > static int linktop_probe(struct ofono_modem *modem)
> > @@ -86,35 +93,86 @@ static void linktop_remove(struct ofono_modem *modem)
> >
> > DBG("%p", modem);
> >
> > + if (data->reopen_source > 0) {
> > + g_source_remove(data->reopen_source);
> > + data->reopen_source = 0;
> > + }
> > +
> > ofono_modem_set_data(modem, NULL);
> >
> > - g_at_chat_unref(data->modem);
> > - g_at_chat_unref(data->control);
> > + g_at_chat_unref(data->data_port);
> > + g_at_chat_unref(data->modem_port);
> > +
> > + if (data->cpin_poll_source > 0)
> > + g_source_remove(data->cpin_poll_source);
> >
> > g_free(data);
> > }
> >
> > static void linktop_debug(const char *str, void *user_data)
> > {
> > - const char *prefix = user_data;
> > + const char *prefix = user_data;
> > +
> > + ofono_info("%s%s", prefix, str);
> > +}
> > +
> > +static gboolean init_simpin_check(gpointer user_data);
> > +
> > +static void simpin_check(gboolean ok, GAtResult *result, gpointer
> user_data)
> > +{
> > + struct ofono_modem *modem = user_data;
> > + struct linktop_data *data = ofono_modem_get_data(modem);
> >
> > - ofono_info("%s%s", prefix, str);
> > + DBG("");
> > +
> > + /* Modem returns an error if SIM is not ready. */
> > + if (!ok && data->cpin_poll_count++ < 5) {
> > + data->cpin_poll_source =
> > + g_timeout_add_seconds(1, init_simpin_check, modem);
> > + return;
> > + }
> > +
> > + data->cpin_poll_count = 0;
> > +
> > + /* There is probably no SIM if SIM is not ready after 5 seconds. */
> > + data->have_sim = ok;
> > +
> > + ofono_modem_set_powered(modem, TRUE);
> > }
> >
> > -static GAtChat *open_device(struct ofono_modem *modem,
> > - const char *key, char *debug)
> > +static gboolean init_simpin_check(gpointer user_data)
> > +{
> > + struct ofono_modem *modem = user_data;
> > + struct linktop_data *data = ofono_modem_get_data(modem);
> > +
> > + data->cpin_poll_source = 0;
> > +
> > + g_at_chat_send(data->modem_port, "AT+CPIN?", cpin_prefix,
> > + simpin_check, modem, NULL);
> > +
> > + return FALSE;
> > +}
> > +
> > +static void cfun_enable(gboolean ok, GAtResult *result, gpointer
> user_data)
>
> Please name this function cfun_enable_cb, so it is clear that it is in
> fact a callback.
>
Fine, I will do that...
>
> > +{
> > + struct ofono_modem *modem = user_data;
> > +
> > + DBG("");
> > +
> > + if (!ok) {
> > + ofono_modem_set_powered(modem, FALSE);
> > + return;
> > + }
> > +
> > + init_simpin_check(modem);
> > +}
> > +
> > +static GAtChat *create_port(const char *device)
> > {
> > - const char *device;
> > GAtSyntax *syntax;
> > GIOChannel *channel;
> > GAtChat *chat;
> >
> > - device = ofono_modem_get_string(modem, key);
> > - if (device == NULL)
> > - return NULL;
> > -
> > - DBG("%s %s", key, device);
> > -
> > channel = g_at_tty_open(device, NULL);
> > if (channel == NULL)
> > return NULL;
> > @@ -127,81 +185,116 @@ static GAtChat *open_device(struct ofono_modem
> *modem,
> > if (chat == NULL)
> > return NULL;
> >
> > - if (getenv("OFONO_AT_DEBUG"))
> > - g_at_chat_set_debug(chat, linktop_debug, debug);
> > -
> > return chat;
> > }
> >
> > -static void linktop_disconnect(gpointer user_data)
> > +static void linktop_disconnect(gpointer user_data);
> > +
> > +static gboolean reopen_callback(gpointer user_data)
> > {
> > struct ofono_modem *modem = user_data;
> > struct linktop_data *data = ofono_modem_get_data(modem);
> > + const char *data_dev;
> > +
> > + data_dev = ofono_modem_get_string(modem, "DataDevice");
> > + data->data_port = create_port(data_dev);
> > + /* retry once if failed */
> > + if (data->data_port == NULL) {
> > + if (data->reopen_source > 0)
> > + return FALSE;
> > +
> > + data->reopen_source = g_timeout_add_seconds(1,
> > + reopen_callback, modem);
> > + ofono_debug("opening data port failed, retrying...");
> > + return FALSE;
> > + }
> >
> > - DBG("");
> > -
> > - if (data->gc)
> > - ofono_gprs_context_remove(data->gc);
> > -
> > - g_at_chat_unref(data->modem);
> > - data->modem = NULL;
> > -
> > - data->modem = open_device(modem, "Modem", "Modem: ");
> > - if (data->modem == NULL)
> > - return;
> > + if (getenv("OFONO_AT_DEBUG"))
> > + g_at_chat_set_debug(data->data_port, linktop_debug, "Data:
> ");
> >
> > - g_at_chat_set_disconnect_function(data->modem,
> > + g_at_chat_set_disconnect_function(data->data_port,
> > linktop_disconnect, modem);
> >
> > ofono_info("Reopened GPRS context channel");
> >
> > - data->gc = ofono_gprs_context_create(modem, 0, "atmodem",
> data->modem);
> > -
> > - if (data->gprs && data->gc)
> > + data->gc = ofono_gprs_context_create(modem, 0,
> > + "atmodem", data->data_port);
> > + if (data->gprs && data->gc) {
> > ofono_gprs_add_context(data->gprs, data->gc);
> > + }
>
> These braces are not necessary, please remove them
>
>
Fine...
> > +
> > + data->reopen_source = 0;
> > +
> > + return FALSE;
> > }
> >
> > -static void cfun_enable(gboolean ok, GAtResult *result, gpointer
> user_data)
> > +static void linktop_disconnect(gpointer user_data)
> > {
> > struct ofono_modem *modem = user_data;
> > + struct linktop_data *data = ofono_modem_get_data(modem);
> >
> > - DBG("");
> > + DBG("%p, data->gc %p", modem, data->gc);
> > +
> > + /* gprs_context has been destructed and needs not reopen */
> > + if (data->gc == NULL)
> > + return
> > +
> > + ofono_gprs_context_remove(data->gc);
> >
> > - ofono_modem_set_powered(modem, ok);
> > + g_at_chat_unref(data->data_port);
> > + data->data_port = NULL;
> > +
> > + /* Waiting for the +CGEV: ME DEACT might also work */
> > + if (data->reopen_source > 0)
> > + g_source_remove(data->reopen_source);
> > +
> > + data->reopen_source = g_timeout_add_seconds(1, reopen_callback,
> modem);
> > }
> >
> > static int linktop_enable(struct ofono_modem *modem)
> > {
> > struct linktop_data *data = ofono_modem_get_data(modem);
> > + const char *modem_dev;
> > + const char *data_dev;
> >
> > DBG("%p", modem);
> >
> > - data->modem = open_device(modem, "Modem", "Modem: ");
> > - if (data->modem == NULL)
> > - return -EINVAL;
> > + modem_dev = ofono_modem_get_string(modem, "ModemDevice");
> > + data_dev = ofono_modem_get_string(modem, "DataDevice");
> >
> > - g_at_chat_set_disconnect_function(data->modem,
> > - linktop_disconnect, modem);
> > + DBG("%s, %s", modem_dev, data_dev);
> > +
> > + if (modem_dev == NULL || data_dev == NULL)
> > + return -EINVAL;
> >
> > - data->control = open_device(modem, "Control", "Control: ");
> > - if (data->control == NULL) {
> > - g_at_chat_unref(data->modem);
> > - data->modem = NULL;
> > + data->modem_port = create_port(modem_dev);
> > + if (data->modem_port == NULL)
> > return -EIO;
> > - }
> >
> > - g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
> > - NULL, NULL, NULL);
> > + if (getenv("OFONO_AT_DEBUG"))
> > + g_at_chat_set_debug(data->modem_port, linktop_debug,
> "Modem: ");
> > +
> > + data->data_port = create_port(data_dev);
> > + if (data->data_port == NULL) {
> > + g_at_chat_unref(data->modem_port);
> > + data->modem_port = NULL;
> >
> > - g_at_chat_send(data->modem, "AT", none_prefix,
> > - NULL, NULL, NULL);
> > + return -EIO;
> > + }
> >
> > - g_at_chat_send(data->modem, "AT &F", none_prefix,
> > - NULL, NULL, NULL);
> > + if (getenv("OFONO_AT_DEBUG"))
> > + g_at_chat_set_debug(data->data_port, linktop_debug, "Data:
> ");
> >
> > - g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
> > - cfun_enable, modem, NULL);
> > + g_at_chat_set_disconnect_function(data->data_port,
> > + linktop_disconnect, modem);
> >
> > + g_at_chat_send(data->modem_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
> > + NULL, NULL, NULL);
> > + g_at_chat_send(data->data_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
> > + NULL, NULL, NULL);
> > + g_at_chat_send(data->modem_port, "AT+CFUN=4", none_prefix,
> > + cfun_enable, modem, NULL);
> > +
> > return -EINPROGRESS;
> > }
> >
> > @@ -212,8 +305,11 @@ static void cfun_disable(gboolean ok, GAtResult
> *result, gpointer user_data)
> >
> > DBG("");
> >
> > - g_at_chat_unref(data->control);
> > - data->control = NULL;
> > + g_at_chat_unref(data->modem_port);
> > + data->modem_port = NULL;
> > +
> > + g_at_chat_unref(data->data_port);
> > + data->data_port = NULL;
> >
> > if (ok)
> > ofono_modem_set_powered(modem, FALSE);
> > @@ -225,19 +321,17 @@ static int linktop_disable(struct ofono_modem
> *modem)
> >
> > DBG("%p", modem);
> >
> > - if (data->modem) {
> > - g_at_chat_cancel_all(data->modem);
> > - g_at_chat_unregister_all(data->modem);
> > - g_at_chat_unref(data->modem);
> > - data->modem = NULL;
> > + if (data->reopen_source > 0) {
> > + g_source_remove(data->reopen_source);
> > + data->reopen_source = 0;
> > }
> >
> > - if (data->control == NULL)
> > + if (data->modem_port == NULL)
> > return 0;
> >
> > - g_at_chat_cancel_all(data->control);
> > - g_at_chat_unregister_all(data->control);
> > - g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
> > + g_at_chat_cancel_all(data->modem_port);
> > + g_at_chat_unregister_all(data->modem_port);
> > + g_at_chat_send(data->modem_port, "AT+CFUN=4", NULL,
> > cfun_disable, modem, NULL);
> >
> > return -EINPROGRESS;
> > @@ -253,17 +347,37 @@ static void set_online_cb(gboolean ok, GAtResult
> *result, gpointer user_data)
> > cb(&error, cbd->data);
> > }
> >
> > +static void set_offline_cb(gboolean ok, GAtResult *result, gpointer
> user_data)
> > +{
> > + struct cb_data *cbd = user_data;
> > + ofono_modem_online_cb_t cb = cbd->cb;
> > + struct ofono_error error;
> > +
> > + if (ok) {
> > + struct linktop_data *data = cbd->user;
> > +
> > + data->gc = NULL;
> > + data->gprs = NULL;
> > + }
> > +
> > + decode_at_error(&error, g_at_result_final_response(result));
> > + cb(&error, cbd->data);
> > +}
> > +
> > static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t
> online,
> > ofono_modem_online_cb_t cb, void
> *user_data)
> > {
> > struct linktop_data *data = ofono_modem_get_data(modem);
> > - GAtChat *chat = data->control;
> > + GAtChat *chat = data->modem_port;
> > struct cb_data *cbd = cb_data_new(cb, user_data);
> > char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
> >
> > DBG("modem %p %s", modem, online ? "online" : "offline");
> >
> > - if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd,
> g_free))
> > + cbd->user = data;
> > +
> > + if (g_at_chat_send(chat, command, NULL,
> > + online ? set_online_cb : set_offline_cb,
> cbd, g_free))
> > return;
> >
> > g_free(cbd);
> > @@ -278,11 +392,11 @@ static void linktop_pre_sim(struct ofono_modem
> *modem)
> >
> > DBG("%p", modem);
> >
> > - ofono_devinfo_create(modem, 0, "atmodem", data->control);
> > - sim = ofono_sim_create(modem, 0, "atmodem", data->control);
> > - ofono_voicecall_create(modem, 0, "stemodem", data->control);
> > + ofono_devinfo_create(modem, 0, "atmodem", data->modem_port);
> > + sim = ofono_sim_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_voicecall_create(modem, 0, "stemodem", data->modem_port);
> >
> > - if (sim)
> > + if (data->have_sim && sim)
> > ofono_sim_inserted_notify(sim, TRUE);
> > }
> >
> > @@ -292,35 +406,36 @@ static void linktop_post_sim(struct ofono_modem
> *modem)
> >
> > DBG("%p", modem);
> >
> > - ofono_radio_settings_create(modem, 0, "stemodem", data->control);
> > - ofono_phonebook_create(modem, 0, "atmodem", data->control);
> > - ofono_sms_create(modem, 0, "atmodem", data->control);
> > + ofono_stk_create(modem, 0, "mbmmodem", data->modem_port);
> > + ofono_radio_settings_create(modem, 0, "stemodem",
> data->modem_port);
>
> The above two look fishy. Have you tested that they work? Otherwise
> lets drop them for now.
>
As said earlier, radio settings is required and test.
>
> > + ofono_phonebook_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_sms_create(modem, 0, "atmodem", data->modem_port);
> > }
> >
> > static void linktop_post_online(struct ofono_modem *modem)
> > {
> > struct linktop_data *data = ofono_modem_get_data(modem);
> > struct ofono_message_waiting *mw;
> > - struct ofono_gprs *gprs;
> > - struct ofono_gprs_context *gc;
> >
> > DBG("%p", modem);
> >
> > - ofono_ussd_create(modem, 0, "atmodem", data->control);
> > - ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
> > - ofono_call_settings_create(modem, 0, "atmodem", data->control);
> > - ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem",
> data->control);
> > - ofono_call_meter_create(modem, 0, "atmodem", data->control);
> > - ofono_call_barring_create(modem, 0, "atmodem", data->control);
> > - ofono_call_volume_create(modem, 0, "atmodem", data->control);
> > - ofono_cbs_create(modem, 0, "atmodem", data->control);
> > -
> > - gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
> > - "atmodem", data->control);
> > - gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
> > -
> > - if (gprs && gc)
> > - ofono_gprs_add_context(gprs, gc);
> > + ofono_netreg_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_cbs_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_ussd_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_call_forwarding_create(modem, 0, "atmodem",
> data->modem_port);
> > + ofono_call_settings_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_call_meter_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_call_barring_create(modem, 0, "atmodem", data->modem_port);
> > + ofono_call_volume_create(modem, 0, "atmodem", data->modem_port);
> > +
>
This device has voice call features and also supports call forward/barring
and volume
settings but I am unable to test with the test scripts. So I you suggest, I
will remove these
feature for the moment and only enable the features I tested successfully.
I have tested ussd and it's working fine however not sure about cbs...
Here I am attaching few information about the device and the windows driver
log sniffed
with sysinternal's usb monitor tool.
Regards
--
Amit Mendapara
[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 24623 bytes --]
[-- Attachment #3: lsusb.txt --]
[-- Type: text/plain, Size: 31888 bytes --]
Bus 002 Device 006: ID 230d:0001
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x230d
idProduct 0x0001
bcdDevice 0.00
iManufacturer 1 HSPADataCard
iProduct 2 HSPADataCard
iSerial 3 8444311594054030
bNumConfigurations 3
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 MSC AutoInstall Device
bmAttributes 0xc0
Self Powered
MaxPower 20mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 5 HSPADataCard
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 391
bNumInterfaces 10
bConfigurationValue 2
iConfiguration 6 WMC Device
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 20mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 2 Communications
bInterfaceSubClass 8 Wireless Handset Control
bInterfaceProtocol 0
iInterface 7 S_WHCM
CDC Header:
bcdCDC 1.10
CDC WHCM:
bcdVersion 1.00
CDC Union:
bMasterInterface 0
bSlaveInterface 1 2 3 4 5 6 7 8 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 8 HSPADataCard USB Modem1
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 1
bSlaveInterface 2
CDC Call Management:
bmCapabilities 0x03
call management
use DataInterface
bDataInterface 2
CDC ACM:
bmCapabilities 0x07
sends break
line coding and serial state
get/set/clear comm features
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8a EP 10 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 9 HSPADataCard USB Modem1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 10 HSPADataCard USB Modem2
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 3
bSlaveInterface 4
CDC Call Management:
bmCapabilities 0x03
call management
use DataInterface
bDataInterface 4
CDC ACM:
bmCapabilities 0x07
sends break
line coding and serial state
get/set/clear comm features
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8b EP 11 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 11 HSPADataCard USB Modem2
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 9 Device Management
bInterfaceProtocol 1
iInterface 12 HSPADataCard USB Device Management
CDC Header:
bcdCDC 1.10
CDC Device Management:
bcdVersion 1.00
wMaxCommand 2048
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8c EP 12 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 13 HSPADataCard USB Audio Control
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 70
bInCollection 2
baInterfaceNr( 0) 7
baInterfaceNr( 1) 8
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0004
Center Front (C)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 2
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0004
Center Front (C)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 6
bSourceID 5
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 7
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 6
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 7
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 14 HSPADataCard USB Audio In (disabled)
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 7
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 15 HSPADataCard USB Audio In (PCM 16Bit Mono)
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 3
bDelay 0 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 8000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 8
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 16 HSPADataCard USB Audio Out (disabled)
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 8
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 17 HSPADataCard USB Audio Out (PCM 16Bit Mono)
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 5
bDelay 0 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 8000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 9
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 18 HSPADataCard
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 391
bNumInterfaces 10
bConfigurationValue 3
iConfiguration 6 WMC Device
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 20mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 2 Communications
bInterfaceSubClass 8 Wireless Handset Control
bInterfaceProtocol 0
iInterface 7 S_WHCM
CDC Header:
bcdCDC 1.10
CDC WHCM:
bcdVersion 1.00
CDC Union:
bMasterInterface 0
bSlaveInterface 1 2 3 4 5 6 7 8 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 8 HSPADataCard USB Modem1
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 1
bSlaveInterface 2
CDC Call Management:
bmCapabilities 0x03
call management
use DataInterface
bDataInterface 2
CDC ACM:
bmCapabilities 0x07
sends break
line coding and serial state
get/set/clear comm features
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8a EP 10 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 9 HSPADataCard USB Modem1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 10 HSPADataCard USB Modem2
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 3
bSlaveInterface 4
CDC Call Management:
bmCapabilities 0x03
call management
use DataInterface
bDataInterface 4
CDC ACM:
bmCapabilities 0x07
sends break
line coding and serial state
get/set/clear comm features
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8b EP 11 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 11 HSPADataCard USB Modem2
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 9 Device Management
bInterfaceProtocol 1
iInterface 12 HSPADataCard USB Device Management
CDC Header:
bcdCDC 1.10
CDC Device Management:
bcdVersion 1.00
wMaxCommand 2048
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8c EP 12 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 13 HSPADataCard USB Audio Control
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 70
bInCollection 2
baInterfaceNr( 0) 7
baInterfaceNr( 1) 8
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0004
Center Front (C)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 2
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0004
Center Front (C)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 6
bSourceID 5
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 7
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 6
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 7
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 14 HSPADataCard USB Audio In (disabled)
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 7
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 15 HSPADataCard USB Audio In (PCM 16Bit Mono)
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 3
bDelay 0 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 8000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 8
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 16 HSPADataCard USB Audio Out (disabled)
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 8
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 17 HSPADataCard USB Audio Out (PCM 16Bit Mono)
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 5
bDelay 0 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 8000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 9
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 18 HSPADataCard
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 3
Device Status: 0x0000
(Bus Powered)
[-- Attachment #4: at-commands.txt --]
[-- Type: text/plain, Size: 1220 bytes --]
*
A
ATA
ATD
ATH
&C
+CACM
+CAMM
+CAOC
+CBC
+CBST
+CCFC
+CCLK
+CCWA
+CCWE
+CDIP
+CEAP
+CEER
+CERP
+CFUN
+CGACT
+CGATT
+CGCLASS
+CGCMOD
+CGDATA
+CGDCONT
+CGDSCONT
+CGEQMIN
+CGEQNEG
+CGEQREQ
+CGEREP
+CGMI
+CGMM
+CGMR
+CGPADDR
+CGQMIN
+CGQREQ
+CGREG
+CGSMS
+CGSN
+CGTFT
+CHLD
+CHSC
+CHSD
+CHSN
+CHSR
+CHUP
+CIMI
+CIND
+CKPD
+CLAC
+CLCC
+CLCK
+CLIP
+CLIR
+CLVL
+CMEC
+CMEE
+CMER
+CMGC
+CMGD
+CMGF
+CMGL
+CMGR
+CMGS
+CMGW
+CMMS
+CMSS
+CMUT
+CMUX
+CNMI
+CNUM
+COLP
+COPN
+COPS
+CPAS
+CPBF
+CPBR
+CPBS
+CPBW
*CPI
+CPIN
+CPMS
+CPOL
+CPUC
+CPWD
+CR
+CRC
+CREG
+CRES
+CRLP
+CRSM
+CSAS
+CSCA
+CSCB
+CSCS
+CSIM
+CSMS
+CSQ
+CSSN
+CSVM
+CTFR
+CUAD
+CUSD
+CV120
+CVHU
D
&D
+DR
+DS
E
*EACE
*EACS
*EATTM
*EBAT
*ECAM
*ECERT
*ECLKM
*EDEBUGMUX
*EFDORM
*EHNET
*EIAAUR
*EIAAUW
*EIAC
*EIACSR
*EIACSW
*EIAD
*EIADNSV6R
*EIADNSV6W
*EIAIPCPR
*EIAIPCPW
*EIALCPR
*EIALCPW
*EIAPSR
*EIAPSSR
*EIAPSSW
*EIAPSW
*EIAR
*EIARUTD
*EIARUTR
*EIARUTW
*EIAW
*EINA
*EKSE
*ELIN
*ELOGS
*EMCID
*ENAP
*EONLCMDMODE
*EOTP
*EPBC
*EPBR
*EPBW
*EPEE
*EPHD
*EPINR
*EPKTC
*EPSB
*ERCI
*EREG
*ESIMR
*ESIMSR
*ESMODE
*ESOM
*ETCHF96
*ETZR
*EUPLINK
&F
+FCLASS
+GCAP
+GMI
+GMM
+GMR
H
I
+ICF
+IFC
+ILRR
+IPR
L
M
O
P
Q
S0
S10
S2
S3
S4
S5
S6
S7
S8
*STKC
*STKE
*STKR
T
V
+VTD
+VTS
&W
X
Z
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: windows-modem.log --]
[-- Type: text/x-log, Size: 110707 bytes --]
0 0.00878707 BSNL 3G.exe IRP_MJ_CREATE u302mdm0 SUCCESS Options: Open
1 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm0 SUCCESS
2 0.00000091 BSNL 3G.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm0 SUCCESS
3 0.00000091 BSNL 3G.exe IOCTL_SERIAL_GET_CHARS u302mdm0 SUCCESS
4 0.00000091 BSNL 3G.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm0 SUCCESS
5 0.00000136 BSNL 3G.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm0 SUCCESS
6 0.00000091 BSNL 3G.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm0 SUCCESS
7 0.00000045 BSNL 3G.exe IOCTL_SERIAL_GET_CHARS u302mdm0 SUCCESS
8 0.00000091 BSNL 3G.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm0 SUCCESS
9 0.00302081 BSNL 3G.exe IOCTL_SERIAL_SET_BAUD_RATE u302mdm0 SUCCESS Rate: 115200
10 0.00422143 BSNL 3G.exe IOCTL_SERIAL_SET_RTS u302mdm0 SUCCESS
11 0.00392434 BSNL 3G.exe IOCTL_SERIAL_SET_DTR u302mdm0 SUCCESS
12 0.00366483 BSNL 3G.exe IOCTL_SERIAL_SET_LINE_CONTROL u302mdm0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
13 0.00000272 BSNL 3G.exe IOCTL_SERIAL_SET_CHAR u302mdm0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
14 0.00000181 BSNL 3G.exe IOCTL_SERIAL_SET_HANDFLOW u302mdm0 SUCCESS Shake:1 Replace:40 XonLimit:28672 XoffLimit:7168
15 0.00000408 BSNL 3G.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm0 SUCCESS Mask: RXCHAR
16 0.00000136 BSNL 3G.exe IOCTL_SERIAL_SET_QUEUE_SIZE u302mdm0 SUCCESS InSize: 4096 OutSize: 2048
17 0.00000226 BSNL 3G.exe IOCTL_SERIAL_PURGE u302mdm0 SUCCESS Purge: RXABORT RXCLEAR
18 0.00000181 BSNL 3G.exe IOCTL_SERIAL_PURGE u302mdm0 SUCCESS Purge: TXABORT TXCLEAR
19 0.00000136 BSNL 3G.exe IOCTL_SERIAL_GET_TIMEOUTS u302mdm0 SUCCESS
20 0.00000091 BSNL 3G.exe IOCTL_SERIAL_SET_TIMEOUTS u302mdm0 SUCCESS RI:20 RM:0 RC:0 WM:0 WC:5000
21 0.10380944 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
22 0.00027264 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 5: ATE0.
23 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
24 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
25 0.00027083 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CFUN=1.
26 0.28879760 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
27 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
28 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
29 0.00026676 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMEE=1.
30 0.01030880 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
31 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
32 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
33 0.10255673 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
34 0.00025181 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 8: AT+CGSN.
35 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
36 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 25: ..980069007643355....OK..
37 0.00021920 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 11: AT*EPINR=1.
38 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
39 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
40 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 19: ..*EPINR: 3....OK..
41 0.00018388 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 11: AT*EPINR=3.
42 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
43 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
44 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 14: ..*EPINR: 10..
45 0.00022781 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CPIN?.
46 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
47 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
48 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 28: ..OK....+CPIN: READY....OK..
49 0.00017663 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 15: AT+CLCK="SC",2.
50 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
51 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
52 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 12: ..+CLCK: 0..
53 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
54 0.00000679 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
55 0.00000543 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
56 0.16420028 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
57 0.00017799 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CPIN?.
58 0.00000589 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
59 0.00000543 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 22: ..+CPIN: READY....OK..
60 0.00000679 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
61 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
62 0.09281858 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
63 0.00026721 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 18: AT+CNMI=2,0,0,1,0.
64 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
65 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
66 0.14119864 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
67 0.00027219 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 23: AT+CPMS="SM","ME","SM".
68 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
69 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 31: ..+CPMS: 0,20,0,50,0,20....OK..
70 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
71 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
72 0.17142893 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
73 0.00028125 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CPMS? .
74 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
75 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 46: ..+CPMS: "SM",0,20,"ME",0,50,"SM",0,20....OK..
76 0.00024955 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 13: AT+CPBS="SM".
77 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
78 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
79 0.01109865 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
80 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
81 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
82 0.00026585 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CPBS?.
83 0.04654312 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
84 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
85 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 27: ..+CPBS: "SM",0,200....OK..
86 0.00025951 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 13: AT+CPBS="ME".
87 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
88 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
89 0.01842151 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
90 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
91 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
92 0.00026540 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CPBS?.
93 0.04370120 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
94 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
95 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 27: ..+CPBS: "ME",0,500....OK..
96 0.00025000 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CSCA?.
97 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
98 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
99 0.01353522 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
100 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
101 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 36: ..+CSCA: "+919422099997",145....OK..
102 0.00020833 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CLVL=5.
103 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
104 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
105 0.05994157 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
106 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
107 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
108 0.00016395 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 13: AT+CPBS="ME".
109 0.06679206 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
110 0.00000679 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
111 0.00000634 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
112 0.14578737 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
113 0.00016440 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 13: AT+CPBS="SM".
114 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
115 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
116 0.17080167 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
117 0.00015580 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 23: AT+CPMS="ME","ME","SM".
118 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
119 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 31: ..+CPMS: 0,50,0,50,0,20....OK..
120 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
121 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
122 0.09998972 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
123 0.00019022 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=0.
124 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
125 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
126 0.11369342 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
127 0.00026721 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=1.
128 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
129 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
130 0.10869844 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
131 0.00026358 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=2.
132 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
133 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
134 0.11297830 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
135 0.00026087 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=3.
136 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
137 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
138 0.17831384 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
139 0.00026313 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 23: AT+CPMS="SM","ME","SM".
140 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
141 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 31: ..+CPMS: 0,20,0,50,0,20....OK..
142 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
143 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
144 0.09952007 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
145 0.00023732 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=0.
146 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
147 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
148 0.11253808 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
149 0.00024275 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=1.
150 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
151 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
152 0.11252540 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
153 0.00023188 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=2.
154 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
155 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
156 0.10699782 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
157 0.00022464 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CMGL=3.
158 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
159 0.00000272 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
160 0.00016304 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CREG=0.
161 0.00336365 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
162 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
163 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
164 0.00488810 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
165 0.00021014 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 11: AT+CGREG=2.
166 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
167 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
168 0.00019656 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT*EREG=2.
169 0.00437270 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
170 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
171 0.00000272 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
172 0.00018071 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 12: AT+COPS=3,0.
173 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
174 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
175 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
176 0.00019293 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT*ECAM=1.
177 0.00750447 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
178 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
179 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
180 0.10434204 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
181 0.00026766 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 18: AT+CNMI=2,1,0,1,0.
182 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
183 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
184 0.00017391 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 42: AT+CGDCONT=1,"IP","bsnlnet","0.0.0.0",0,0.
185 3.08710485 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
186 0.00000589 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
187 0.00000543 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
188 0.32968904 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
189 0.00016440 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
190 0.00000725 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
191 0.00000543 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
192 0.00009103 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
193 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
194 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
195 0.00000498 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
196 0.00024094 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
197 0.00001132 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
198 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
199 0.03666684 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
200 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
201 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
202 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
203 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
204 10.23255165 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
205 0.00028215 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
206 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
207 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
208 0.00025136 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
209 0.00000770 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
210 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
211 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
212 0.00019973 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
213 0.05607113 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
214 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
215 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
216 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
217 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
218 10.21534345 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
219 0.00020063 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
220 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
221 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
222 0.00000679 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
223 0.00017119 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
224 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
225 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
226 0.00017482 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
227 0.00000906 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
228 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
229 0.03475064 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
230 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
231 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
232 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
233 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
234 10.25275394 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
235 0.00026087 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
236 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
237 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
238 0.00026268 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
239 0.00000725 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
240 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
241 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
242 0.00017165 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
243 0.05378582 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
244 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
245 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
246 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
247 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
248 10.22546701 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
249 0.00018976 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
250 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
251 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
252 0.00000679 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
253 0.00018433 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
254 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
255 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
256 0.00027355 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
257 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
258 0.00000589 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
259 0.03319947 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
260 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
261 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
262 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
263 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
264 10.22299557 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
265 0.00018931 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
266 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
267 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
268 0.00023098 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
269 0.00000725 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
270 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
271 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
272 0.00018523 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
273 0.05927355 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
274 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
275 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
276 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
277 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
278 10.17236326 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
279 0.00927393 svchost.exe IRP_MJ_CREATE u302mdm1 SUCCESS Options: Open
280 0.00005525 svchost.exe IOCTL_SERIAL_GET_PROPERTIES u302mdm1 SUCCESS
281 0.00000181 svchost.exe IOCTL_SERIAL_SET_COMMCONFIG u302mdm1 SUCCESS
282 0.00000091 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
283 0.00000091 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
284 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
285 0.00000091 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
286 0.00294699 svchost.exe IOCTL_SERIAL_SET_BAUD_RATE u302mdm1 SUCCESS Rate: 921600
287 0.00403484 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
288 0.00395015 svchost.exe IOCTL_SERIAL_SET_LINE_CONTROL u302mdm1 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
289 0.00000272 svchost.exe IOCTL_SERIAL_SET_CHAR u302mdm1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
290 0.00395559 svchost.exe IOCTL_SERIAL_SET_HANDFLOW u302mdm1 SUCCESS Shake:9 Replace:80 XonLimit:10 XoffLimit:10
291 0.00000498 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0008
292 0.00000136 svchost.exe IOCTL_SERIAL_CLEAR_STATS u302mdm1 SUCCESS
293 0.00000181 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: RXABORT
294 0.00000136 svchost.exe IOCTL_SERIAL_SET_TIMEOUTS u302mdm1 SUCCESS RI:20 RM:0 RC:0 WM:10 WC:2000
295 0.00000181 svchost.exe IOCTL_SERIAL_SET_COMMCONFIG u302mdm1 SUCCESS
296 0.00000136 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
298 0.00000091 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
297 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
299 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
300 0.00000045 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
301 0.02835123 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
302 0.00709188 svchost.exe IOCTL_SERIAL_SET_BAUD_RATE u302mdm1 SUCCESS Rate: 921600
303 0.00000317 svchost.exe IOCTL_SERIAL_SET_RTS u302mdm1 INVALID PARAMETER
304 0.00017255 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
305 0.00765211 svchost.exe IOCTL_SERIAL_SET_LINE_CONTROL u302mdm1 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
306 0.00000272 svchost.exe IOCTL_SERIAL_SET_CHAR u302mdm1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
307 0.00000181 svchost.exe IOCTL_SERIAL_SET_HANDFLOW u302mdm1 SUCCESS Shake:1 Replace:40 XonLimit:10 XoffLimit:10
308 0.00028079 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
309 0.00000272 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
310 0.00023460 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 3: AT.
311 0.00000453 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
312 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
313 0.00000317 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
314 0.02611031 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
315 0.00025136 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 6: AT &F.
316 0.00000362 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
317 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
318 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
319 0.01103207 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: A
320 0.00025724 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 18: AT V1E0S0=0&D2&C1.
321 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
322 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 17: T V1E0S0=0&D2&C1.
323 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
324 0.00226312 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
325 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
326 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
327 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
328 0.01259728 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
329 0.00025000 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 11: AT +CMEE=1.
330 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
331 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
332 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
333 0.01366430 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
334 0.00025045 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 31: ATS7=60;+DS=3,0,2048,32;+DR=1;.
335 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
336 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
337 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
338 0.01297952 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
339 0.00024547 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 7: ATS0=0.
340 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
341 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
342 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
343 0.01935674 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
344 0.00000362 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask: DSR
345 0.00706833 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
346 0.00000091 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0030
347 78.25275938 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 CANCELLED IOCTL: 0x2B0034
348 0.00000181 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0008
349 0.00000181 svchost.exe IOCTL_SERIAL_CLEAR_STATS u302mdm1 SUCCESS
350 0.00000181 svchost.exe IOCTL_SERIAL_SET_COMMCONFIG u302mdm1 SUCCESS
351 0.00000136 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
352 0.00000045 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
353 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
354 0.00000091 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
355 0.00043433 svchost.exe IOCTL_SERIAL_SET_BAUD_RATE u302mdm1 SUCCESS Rate: 7200000
356 0.00024003 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
357 0.00542795 svchost.exe IOCTL_SERIAL_SET_LINE_CONTROL u302mdm1 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
358 0.00000272 svchost.exe IOCTL_SERIAL_SET_CHAR u302mdm1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
359 0.00000181 svchost.exe IOCTL_SERIAL_SET_HANDFLOW u302mdm1 SUCCESS Shake:9 Replace:80 XonLimit:10 XoffLimit:10
360 0.00014130 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
361 0.00000317 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
362 0.00001178 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask:
363 0.00024955 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 3: AT.
364 0.00000317 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
365 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
366 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
367 0.02425298 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
368 0.00025407 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 6: AT &F.
369 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
370 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
371 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
372 0.01177799 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: A
373 0.00024728 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 18: AT V1E0S0=0&D2&C1.
374 0.00000317 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
375 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 17: T V1E0S0=0&D2&C1.
376 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
377 0.00242435 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
378 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
379 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
380 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
381 0.01181784 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
382 0.00024411 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 11: AT +CMEE=1.
383 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
384 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
385 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
386 0.01264574 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
387 0.00024547 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 31: ATS7=60;+DS=3,0,2048,32;+DR=1;.
388 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
389 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
390 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
391 1.01297318 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
392 0.00006205 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0030
393 0.00027672 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 8: ATD*99#.
394 0.00027083 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
395 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
396 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 1,1,1,0,1,0,0,0,0,0,0,0....OK..
397 0.00016848 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
398 0.00000815 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
399 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
400 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
401 0.00023460 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
402 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
403 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
404 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
405 0.00000543 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
406 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
407 10.19405512 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
408 0.00000543 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
409 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 12: .+DR: NONE..
410 0.00000226 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
411 0.00000272 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
412 0.00000725 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0008
413 0.00000589 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask: RLSD
414 75.55952739 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
415 0.00000091 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
416 0.00000045 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
417 0.00000045 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
418 0.00000091 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
419 0.00000136 svchost.exe IOCTL_SERIAL_CONFIG_SIZE u302mdm1 SUCCESS Size: 96
420 0.00000045 svchost.exe IOCTL_SERIAL_GET_COMMCONFIG u302mdm1 SUCCESS
421 0.00000091 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
422 0.00000045 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
423 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
424 0.00000045 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
425 0.00000091 svchost.exe IOCTL_SERIAL_SET_COMMCONFIG u302mdm1 SUCCESS
426 0.00000091 svchost.exe IOCTL_SERIAL_GET_STATS u302mdm1 SUCCESS
427 0.00000408 svchost.exe IRP_MJ_CREATE u302mdm1 SUCCESS Options: Open
428 0.00000408 svchost.exe IOCTL_SERIAL_SET_QUEUE_SIZE u302mdm1 SUCCESS InSize: 1514 OutSize: 1514
429 0.00000589 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: RXABORT TXCLEAR RXCLEAR
430 0.00000408 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
431 0.00000181 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
432 0.00000136 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
433 0.00000136 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
434 0.00000181 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
435 0.00000136 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
436 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
437 0.00000136 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
438 0.00031929 svchost.exe IOCTL_SERIAL_SET_BAUD_RATE u302mdm1 SUCCESS Rate: 7200000
439 0.00028261 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
440 0.00502668 svchost.exe IOCTL_SERIAL_SET_LINE_CONTROL u302mdm1 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
441 0.00000317 svchost.exe IOCTL_SERIAL_SET_CHAR u302mdm1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
442 0.00000272 svchost.exe IOCTL_SERIAL_SET_HANDFLOW u302mdm1 SUCCESS Shake:9 Replace:80 XonLimit:10 XoffLimit:10
443 0.00000272 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 INVALID DEVICE REQUEST IOCTL: 0x1B3E80
444 0.00000091 svchost.exe IOCTL_SERIAL_SET_QUEUE_SIZE u302mdm1 SUCCESS InSize: 4096 OutSize: 4096
445 0.00000091 svchost.exe IOCTL_SERIAL_SET_TIMEOUTS u302mdm1 SUCCESS RI:-1 RM:0 RC:0 WM:4 WC:4000
446 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
447 0.00000091 svchost.exe IOCTL_SERIAL_SET_CHAR u302mdm1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:7e XON:11 XOFF:13
448 0.00000679 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask: RXFLAG DSR RLSD ERR RX80FULL
449 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 0:
450 0.00644153 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
451 0.00019022 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 90: ~.}#.!}!} } 2}"}&} } } } }%%}&}2.Z}9}'}"}(}"}-}#}&}1}$}&N}3}7}!7
452 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 53: ~.}#.!}!}"} }9}#}%.#}%}(}"}'}"}"}&} } } } }%}&..r?p.~
453 0.00037137 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
454 0.00030661 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 23: ~.}#.!}#}"} }(}#}$.#L.~
455 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 59: ~.}#.!}$} } "}-}#}&}1}$}&N}3}7}!7.."..O..A......} } } } ..~
456 0.00139990 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
457 0.00017391 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 47: ~.}#.!}!}!} }4}"}&} } } } }%%}&}2.Z}9}'}"}(}"..~
458 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 51: ~.}#.!}!}#} }8}#}$.#}(}"}'}"}"}&} } } } }%}&..r?,R~
459 0.00110914 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
460 0.00016848 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 51: ~.}#.!}"}#} }8}#}$.#}(}"}'}"}"}&} } } } }%%}&..r?..~
461 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 47: ~.}#.!}"}!} }4}"}&} } } } }%}&}2.Z}9}'}"}(}"&.~
462 0.00305387 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
463 0.00031295 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 24: ~.!......Z.MSRASV5.20..~
464 0.00044429 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 29: ~.!......Z.MSRAS-0-AMIT-PC.z~
465 0.00043161 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 30: ~.!......Z...*.7MSG......P...~
466 0.00019565 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 12: ~.#.......)~
467 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 30: ~...!..........Z.MSRASV5.20.b~
468 0.00056385 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
469 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 35: ~...!..........Z.MSRAS-0-AMIT-PCq.~
470 0.00045561 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
471 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 36: ~...!..........Z...*.7MSG......P.#j~
472 0.00112409 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
473 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 27: ~.#.....Congratulations!.$~
474 0.00229708 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
475 0.00024909 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 21: ~.W......D.T}]...HhY~
476 0.00035688 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~.!...(...-..................................~
477 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 29: ~...!.....W......D.T}]...H]i~
478 2.69493351 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
479 0.00014583 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~.!...(...-..................................~
480 0.00000589 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 16: ~.!.........s..~
481 0.00017074 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
482 0.00024185 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 17: ~.!.........s}^.~
483 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 22: ~.!................pR~
484 0.00308240 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
485 0.00063269 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 34: ~.!.......-.....................|~
486 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 28: ~.!......u.*U............j.~
487 0.00131928 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
488 0.00031839 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 34: ~.!.......-....u.*U............AN~
489 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 34: ~.!.......-....u.*U............r.~
490 0.14840239 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
491 0.00018388 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 333: ~!E..H.......ku.*U.....D.C.46.............u.*U..................
492 0.00017029 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 76: ~!E..G........u.*U.......5.3...............teredo.ipv6.microsoft
493 0.00030978 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!F..(.......}]u.*U........".................~
494 0.00012681 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 65: ~!E..<........u.*U.....h.5.(..5............www.google.com.....A.
495 0.00013677 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 59: ~!E..5......8}^u.*U.........!.Bx............Amit-PC.....?.~
496 0.00014357 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.......zu.*U........"...............@.~
497 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 284: ~!E....0..........u.*U.5...................teredo.ipv6.microsoft
498 0.02986481 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
499 0.00023369 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 76: ~!E..G........u.*U.......5.3:s:t...........teredo.ipv6.microsoft
500 0.00014810 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..5......8{u.*U.........!.Bx............Amit-PC......:~
501 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 253: ~!E....\..........u.*U.5.h...j5............www.google.com.......
502 0.08982902 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
503 0.00013768 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4..@.....u.*U.U.i.k..Ti2....... .................L.~
504 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 281: ~!E...............u.*U.5.....H:t...........teredo.ipv6.microsoft
505 0.08018960 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
506 0.00023777 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4..@.....u.*U.U.i.l..n$........ .................e.~
507 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 58: ~!E..4.{../..O.U.iu.*U...k.}^X.Ti2....X................8.~
508 0.00021331 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(..@.....u.*U.U.i.k..Ti2..}^X.P..C......~
509 0.12011864 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
510 0.00015942 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 435: ~!E.....@....Fu.*U.U.i.k..Ti2..}^X.P..C,B..........|..M......dc.
511 0.00016531 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.......su.*U........".................~
512 0.00017708 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.......ru.*U........"...............8.~
513 0.00021603 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..5......8tu.*U.....z...!.$.............Amit-PC.......~
514 0.00030887 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 53: ~!F..0.......hu.*U........".......................GE~
515 0.00023822 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..5......8ru.*U.....z...!.$.............Amit-PC.....jk~
516 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 57: ~!E..4.+../....U.iu.*U...l.uAdn$.....X................KY~
517 0.00014855 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(..@.....u.*U.U.i.l..n$...uAeP..C.i..,.~
518 0.06128712 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
519 0.00021830 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4......8qu.*U.....S... r..%%...........isatap.......~
520 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(.{../..[.U.iu.*U...k.}^X.Ti4+P..k.1..lP~
521 0.00003397 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
522 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 200: ~!E....|../....U.iu.*U...k.}^X.Ti4+P..k........e...a..M...&...<.
523 0.15814416 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
524 0.00019837 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 131: ~!E..{..@....pu.*U.U.i.k..Ti4+.}^X.P..BN:............H........8.
525 0.00130298 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 92: ~!E..U..@.....u.*U.U.i.k..Ti4}^.}^X.P..B.-......(..D........K..L
526 0.00128939 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 631: ~!E..k..@....}^u.*U.U.i.k..Ti4..}^X.P..B>-......>?)........?V...
527 0.00018886 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4......8mu.*U.....S... r..%%...........isatap.......~
528 0.00020063 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.......hu.*U........"...............A.~
529 0.00030525 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.......gu.*U........"...............\.~
530 0.00028261 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 59: ~!E..5......8iu.*U.....D...!.}^h............Amit-PC.......~
531 0.00000906 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 92: ~!E..U.}]../..,.U.iu.*U...k.}^X.Ti4.P..k.g......(e.f(.....`.....
532 0.07955872 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
533 0.00000951 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 48: ~!E..(.}^../..X.U.iu.*U...k.}^X.Ti6.P..}]......~
534 0.01991380 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
535 0.00020154 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 59: ~!E..5......8hu.*U.....D...!.}^h............Amit-PC......w~
536 0.00000861 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 254: ~!E......./....U.iu.*U...k.}^X.Ti6.P..}]L...........P0..p......m
537 0.00017074 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(..@.....u.*U.U.i.k..Ti6..}^Y.P..A....%%O~
538 0.00066213 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
539 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 139: ~!E......./....U.iu.*U...k.}^Y.Ti6.P..}]. .......D ..C..#.3nw...
540 0.27918309 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
541 0.00027400 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..4......8gu.*U......... }^v.............isatap......q~
542 0.00036820 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.......bu.*U........"...............G.~
543 0.00015444 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..4......8eu.*U......... }^v.............isatap......I~
544 0.00019339 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 74: ~!E..E........u.*U.......5.1x..............6to4.ipv6.microsoft.c
545 0.00019112 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(. ....._u.*U........"................5~
546 0.00014810 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.!.....^u.*U........".................~
547 0.00014946 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..5."....8`u.*U.....g...!..'\...........Amit-PC......,~
548 0.00013315 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.#@.....u.*U.U.i.k..Ti6..}^Y.P..A....7.~
549 0.00017029 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 61: ~!E..8.$....8[u.*U.........$.].............kuaiqzxpki.....).~
550 0.00017708 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 61: ~!E..8.%%....8Zu.*U.........$.{.............oztshltjjm.......~
551 0.00051358 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 61: ~!E..8.&....8Yu.*U.........$..KY...........ijpzzrmxby......D~
552 0.00000634 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 268: ~!E....?..........u.*U.5...................6to4.ipv6.microsoft.c
553 0.24118157 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
554 0.00030118 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.'...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
555 0.00019157 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..5.(....8Zu.*U.....g...!..'\...........Amit-PC......3~
556 0.00015806 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.)....8Zu.*U......... ..O............isatap......8~
557 0.00022735 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 61: ~!E..8.*....8Uu.*U.........$.].............kuaiqzxpki.......~
558 0.00021875 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 61: ~!E..8.+....8Tu.*U.........$..KY...........ijpzzrmxby......-~
559 0.00040217 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 61: ~!E..8.,....8Su.*U.........$.{.............oztshltjjm.....p.~
560 0.00015897 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.-......u.*U.......5.*ZrFN...........www.msftncsi.com.....
561 0.00029755 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4......8Uu.*U......... ..O............isatap.....u?~
562 0.00000634 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 211: ~!E...............u.*U.5......FN...........www.msftncsi.com.....
563 0.11963223 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
564 0.00022147 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>./......u.*U.......5.*`Kfq...........www.msftncsi.com.....
565 0.00035507 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!F..(.0.....Ou.*U........".................~
566 0.00000861 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 170: ~!E...............u.*U.5.....'fq...........www.msftncsi.com.....
567 0.34835375 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
568 0.00031793 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.1@....6u.*U...Z.m.P.^.>...... ..X..............\.~
569 0.00030978 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.2....8Qu.*U......... Kq.............isatap.......~
570 0.00019927 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.3....8Pu.*U......... Kq.............isatap.....g,~
571 0.00020833 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.4....8Ou.*U......... .3K............isatap......9~
572 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 57: ~!E..4.9@....-...Zu.*U.P.m.wsJ.^.?...h.&..............1.~
573 0.00019610 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(.5@....>u.*U...Z.m.P.^.?.wsKP..D....<>~
574 0.16034206 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
575 0.00023007 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 142: ~!E....6@.....u.*U...Z.m.P.^.?.wsKP..D'i..GET /ncsi.txt HTTP/1.1
576 0.00015217 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 76: ~!E..G.7......u.*U.....W.5.3V..............teredo.ipv6.microsoft
577 0.00021286 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..4.8....8Ku.*U......... .3K............isatap......}]~
578 0.00020290 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.9...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
579 0.00000634 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 281: ~!E...............u.*U.5.W.................teredo.ipv6.microsoft
580 0.18011456 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
581 0.00020878 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.:....8Iu.*U.....Q... .E.............isatap.......~
582 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(..@....V...Zu.*U.P.m.wt..^..P.......v.~
583 0.00041666 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(.;@....8u.*U...Z.m.P.^...wsKP..D.....I~
584 0.00020833 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
585 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 368: ~!E..k..@........Zu.*U.P.m.wsK.^..P...2...HTTP/1.1 200 OK..Cache
586 0.00025498 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(.<@....7u.*U...Z.m.P.^...wt.P..C.p..xM~
587 0.33897656 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
588 0.00031839 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(.=@....6u.*U...Z.m.P.^...wt.P..C.o....~
589 0.00031703 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.>....8Eu.*U.....Q... .E.............isatap.......~
590 0.00026449 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.?....8Du.*U......... ?..n...........isatap.......~
591 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(.7@...l;...Zu.*U.P.m.wt..^..P.........~
592 8.19961305 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
593 0.00029121 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.@....8Cu.*U......... ?..n...........isatap......r~
594 0.00025679 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.A....8Bu.*U......... .!.............isatap.......~
595 0.00026132 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.B....8Au.*U......... .!.............isatap.....w[~
596 0.00026857 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.C...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
597 0.00026087 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.D....8?u.*U.....b... ...............isatap.....z.~
598 0.00016802 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 333: ~!E..H.E.....&u.*U.....D.C.43.............u.*U..................
599 0.00023143 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.F....8=u.*U.....b... ...............isatap.......~
600 0.00021830 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.G....8<u.*U......... ..H............isatap.....p.~
601 0.00026721 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.H....8;u.*U......... ..H............isatap.......~
602 0.00030163 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.I....8:u.*U......... q..............isatap.......~
603 0.00023913 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.J....89u.*U......... q..............isatap.......~
604 0.00023958 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.K...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
605 0.00036866 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.L....87u.*U.....J... ...:...........isatap.......~
606 0.00029121 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.M....86u.*U.....J... ...:...........isatap......h~
607 0.00027038 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.N....85u.*U......... .HpD...........isatap.......~
608 0.00020516 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.O....84u.*U......... .HpD...........isatap.....b.~
609 0.00019927 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.P....83u.*U......... .&0............isatap.....u.~
610 0.00028985 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.Q....82u.*U......... .&0............isatap.......~
611 0.00018297 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.R....81u.*U......... ...............isatap.......~
612 0.00024185 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.S...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
613 0.00030706 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4.T....8/u.*U......... ...............isatap.......~
614 0.00023868 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.U...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
615 0.00025589 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
616 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
617 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
618 0.00023958 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
619 0.00001178 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
620 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
621 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
622 0.00022192 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
623 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
624 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
625 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
626 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
627 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
628 10.18879384 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
629 0.00022735 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.V...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
630 0.00044112 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.W...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
631 0.00030253 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.X...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
632 0.00028351 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.Y...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
633 0.00000589 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(.+../....U.iu.*U...l.uAen$..P..Z.Q...l~
634 0.00033922 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(.Z@....|u.*U.U.i.l..n$...uAfP..C.h...c~
635 1.11065630 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
636 0.00028623 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.[...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
637 0.00037364 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 70: ~!E..A.\......u.*U.......5.-...)...........clients2.google.com..
638 0.00000634 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 438: ~!E....N....DD....u.*U.5.......)...........clients2.google.com..
639 0.08900747 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
640 0.00027128 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 70: ~!E..A.]......u.*U.......5.-...............clients2.google.com..
641 0.00000589 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 144: ~!E....!....D.....u.*U.5...w...............clients2.google.com..
642 0.11979618 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
643 0.00027174 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..4.^@...#.u.*UJ}]. .n....ym...... ..................k~
644 0.00018569 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D._...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
645 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 58: ~!E..4.d..6...J}]. u.*U...nb.....yn...X..................~
646 0.00027536 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.`@...#.u.*UJ}]. .n....ynb...P..C.....e~
647 0.14137799 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
648 0.00028170 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 228: ~!E....a@...".u.*UJ}]. .n....ynb...P..CHy.............M.....P.a.
649 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(.d..6...J}]. u.*U...nb.....z$P..k....$.~
650 0.00958326 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
651 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1448: ~!E....e..6...J}]. u.*U...nb.....z$P..kl"......M...I..M....-....
652 0.00012002 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
653 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 742: ~!E....f..6...J}]. u.*U...nb.....z$P..k............gq0...*.H....
654 0.00025407 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.b@...#.u.*UJ}]. .n....z$b...P..C....j.~
655 0.16016000 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
656 0.00035598 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 637: ~!E..t.c@...!Iu.*UJ}]. .n....z$b...P..C...............yd..'.....
657 0.00000453 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 292: ~!E....g..6...J}]. u.*U...nb.....|pP..}].....................L..
658 0.00017663 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
659 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 93: ~!E..U.h..6..bJ}]. u.*U...nb.....|pP..}]\>......(q}]VS...m...|..
660 0.00021150 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.d@...#.u.*UJ}]. .n....|pb...P..A....x.~
661 0.08836571 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
662 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 329: ~!E..A.i..6..uJ}]. u.*U...nb.....|pP..}]'........8k.......;.P.".
663 0.00031114 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
664 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 317: ~!E..4.j..6...J}]. u.*U...nb.....|pP..}].V..........|lYS...^...h
665 0.00017618 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.e@...#.u.*UJ}]. .n....|pb...P..?.o...i~
666 0.11896829 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
667 0.00021558 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 58: ~!E..4.f@...#.u.*UJ}]. .o.POa........ .g.................~
668 0.00000634 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 58: ~!E..4.k..5...J}]. u.*U.P.ob.@pOa.....X................?^~
669 0.00030299 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.g@...#.u.*UJ}]. .o.POa..b.@qP..C$...yZ~
670 0.14016151 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
671 0.00017935 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 460: ~!E....h@...!.u.*UJ}]. .o.POa..b.@qP..C.E..GET /service/update2/
672 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(.l..5...J}]. u.*U.P.ob.@qOa.+P..k"...CR~
673 0.08047039 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
674 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 386: ~!E..|.m..5..6J}]. u.*U.P.ob.@qOa.+P..k./..HTTP/1.1 200 OK..Cach
675 0.00008741 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
676 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 267: ~!E....n..5...J}]. u.*U.P.ob.A.Oa.+P..k..............M..n.0.._%
677 0.00023234 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(.i@...#.u.*UJ}]. .o.POa.+b.B.P..@ .....~
678 7.91991049 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
679 0.00024547 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.j...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
680 0.00033514 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.k...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
681 0.00026404 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.l...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
682 0.00031703 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.m...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
683 0.00027989 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
684 0.00029982 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.n...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
685 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
686 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
687 0.00013451 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
688 0.00008243 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
689 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
690 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
691 0.00032518 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
692 0.00000770 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
693 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
694 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
695 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
696 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
697 10.19053205 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
698 0.00031703 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.o...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
699 0.00038768 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.p...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
700 0.00024864 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.q...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
701 0.00017980 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(.r@....du.*U.U.i.l..n$...uAfP..C.g...j~
702 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(.+../....U.iu.*U...l.uAfn$..P..Z.P...1~
703 46.95615478 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
704 0.00037771 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.s...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
705 0.00023279 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 73: ~!E..D.t...)v.u.*U.Xc.`.....:. .u.*U......u.*U ..Xc........Xc...
706 0.00018342 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
707 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
708 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
709 0.00022690 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
710 0.00000679 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
711 0.00000543 svchost.exe IOCTL_SERIAL_GET_STATS u302mdm1 SUCCESS
712 0.00000498 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
713 0.00000589 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
714 0.00019792 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
715 0.00000770 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
716 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
717 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
718 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
719 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
720 10.23302493 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
721 0.00021920 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
722 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
723 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
724 0.00024003 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
725 0.00000770 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
726 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
727 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
728 0.00017527 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
729 0.05824457 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
730 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
731 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
732 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
733 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
734 10.23810596 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
735 0.00021422 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
736 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
737 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
738 0.00019384 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
739 0.00000996 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
740 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
741 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
742 0.00021603 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
743 0.00000906 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
744 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
745 0.03786610 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
746 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
747 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
748 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
749 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
750 10.22563096 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
751 0.00027083 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
752 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
753 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,2,1,0,1,0,0,0,0,0,0,0....OK..
754 0.00020607 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
755 0.00001268 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
756 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
757 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
758 0.00020199 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
759 0.00000725 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
760 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
761 0.03253779 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
762 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
763 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
764 0.00000589 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
765 0.00000272 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
766 10.19854421 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
767 0.00031703 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 68: ~!E..>.u......u.*U.......5.*...............tools.google.com.....
768 0.00019927 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.v......u.*U.......5.*.c.............tools.google.com.....
769 0.00036956 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 68: ~!E..>.w.....}^u.*U.......5.*...............tools.google.com....
770 0.00018976 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.x......u.*U.......5.*.c.............tools.google.com.....
771 0.00031657 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.y.....|u.*U.......5.*...............tools.google.com.....
772 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 433: ~!E...............u.*U.5...................tools.google.com.....
773 0.00027219 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
774 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 433: ~!E...............u.*U.5...................tools.google.com.....
775 0.04917353 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
776 0.00022962 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.z.....{u.*U.......5.*.Y.............tools.google.com.....
777 0.00024864 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.{.....zu.*U.......5.*.Y.............tools.google.com.....
778 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 497: ~!E...m...........u.*U.5...................tools.google.com.....
779 0.03041009 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
780 0.00025045 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 67: ~!E..>.|.....yu.*U.......5.*.Y.............tools.google.com.....
781 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 433: ~!E...............u.*U.5...................tools.google.com.....
782 0.02013934 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
783 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 497: ~!E...m...........u.*U.5...................tools.google.com.....
784 0.00907058 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
785 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 139: ~!E...............u.*U.5...r]..............tools.google.com.....
786 0.02006552 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
787 0.00031023 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 68: ~!E..>.}].....xu.*U.......5.*+..............tools.google.com....
788 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 139: ~!E...............u.*U.5...r]..............tools.google.com.....
789 0.02991870 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
790 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 139: ~!E...............u.*U.5...r]..............tools.google.com.....
791 0.06083694 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
792 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 433: ~!E...............u.*U.5...................tools.google.com.....
793 0.08889787 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
794 0.00020244 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 68: ~!E..>.}^.....wu.*U.....*.5.*...............tools.google.com....
795 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 139: ~!E....<.....q....u.*U.5.*.r;V.............tools.google.com.....
796 0.11017261 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
797 0.00015897 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 54: ~!E..0..@...#fu.*UJ}].+.p.P>r'6....p. .V...........9:~
798 0.00000408 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 54: ~!E..0/...5..CJ}].+u.*U.P.p>..z>r'7p..X.B............~
799 0.00019339 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(..@...#mu.*UJ}].+.p.P>r'7>..{P.C..8...m~
800 0.14960075 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
801 0.00039900 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 569: ~!E..3..@...!au.*UJ}].+.p.P>r'7>..{P.C.....POST /service/update2
802 0.00067481 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 714: ~!E.....@... .u.*UJ}].+.p.P>r)B>..{P.C.....<?xml version="1.0" e
803 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(/...5..KJ}].+u.*U.P.p>..{>r)BP.. :...1<~
804 0.00014130 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
805 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(/...5..JJ}].+u.*U.P.p>..{>r+.P..,1p..,.~
806 0.11020160 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
807 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1078: ~!E.../...5.{CJ}].+u.*U.P.p>..{>r+.P..,.L..HTTP/1.1 200 OK..Cach
808 0.12928207 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
809 0.00021195 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 238: ~!E.....@...".u.*UJ}].+.p.P>r+.>...P.?.....POST /service/update2
810 0.00067255 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 729: ~!E.....@... .u.*UJ}].+.p.P>r,.>...P.?..`..<?xml version="1.0" e
811 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(/...5..HJ}].+u.*U.P.p>...>r,.P.$^'x....~
812 0.05054218 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
813 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(/...5..GJ}].+u.*U.P.p>...>r/CP.'.!V....~
814 0.09983075 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
815 0.00000770 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 706: ~!E.../...5.|.J}].+u.*U.P.p>...>r/CP.'.....HTTP/1.1 200 OK..Cach
816 0.13970635 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
817 0.00015081 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 238: ~!E.....@...".u.*UJ}].+.p.P>r/C>...P.C.....POST /service/update2
818 0.00061865 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 578: ~!E..:..@...!Uu.*UJ}].+.p.P>r0.>...P.C.....<?xml version="1.0" e
819 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(/...5..EJ}].+u.*U.P.p>...>r0.P.-(.....V~
820 0.00938761 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
821 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 46: ~!E..(/...5..DJ}].+u.*U.P.p>...>r2.P.2x.R....~
822 0.50023301 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
823 0.00020788 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
824 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
825 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
826 0.00017165 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
827 0.00000861 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
828 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
829 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
830 0.00032110 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
831 0.01184547 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
832 0.00000725 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
833 0.00000725 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
834 0.00000725 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
835 0.00000362 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
836 10.07858046 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
837 0.00000589 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 640: ~!E..y/...5.|.J}].+u.*U.P.p>...>r2.P.2xh...HTTP/1.1 200 OK..Cach
838 0.45988731 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
839 0.00023234 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 46: ~!E..(..@...#fu.*UJ}].+.p.P>r2.>..dP.@.......~
840 0.00039674 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 72: ~!E..C.......hu.*U.......5./bn.^...........cache.pack.google.com
841 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 183: ~!E....c....}].....u.*U.5.....w.^...........cache.pack.google.co
842 0.08992639 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
843 0.00022735 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 72: ~!E..C.......gu.*U.......5./{B.............cache.pack.google.com
844 0.00000770 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 144: ~!E....I....|_....u.*U.5...wnY.............cache.pack.google.com
845 0.16986237 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
846 0.00034012 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 57: ~!E..4..@....!u.*U.....q.PX......... .2...............mE~
847 0.00000543 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 57: ~!E..4..@.4.......u.*U.P.q.qO.X......................._.~
848 0.00027989 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(..@....,u.*U.....q.PX....qO.P..D8...l#~
849 0.14980410 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
850 0.00061277 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 238: ~!E.....@....ju.*U.....q.PX....qO.P..D.@..HEAD /edgedl/chrome/in
851 0.00000498 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(..@.4.Q.....u.*U.P.q.qO.X..gP..l7*...F~
852 0.01002030 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
853 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 364: ~!E..g..@.4.P.....u.*U.P.q.qO.X..gP..l....HTTP/1.1 200 OK..Accep
854 0.00099682 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
855 0.00014266 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(..@....*u.*U.....q.PX..g.qPHP..C6.....~
856 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(..@.4.Q.....u.*U.P.q.qPHX..gP..l5....%~
857 0.00012500 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 45: ~!E..(..@....)u.*U.....q.PX..h.qPIP..C6...G.~
858 0.14872123 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
859 0.00000589 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 45: ~!E..(..@.4.......u.*U.P.q.qPIX..hP..l5....D~
860 2.55433133 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
861 0.00018614 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 36: ~.}#.!}%%}*} }0}2.Z}9} <.t} } } } 'r~
862 0.00000589 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 12: ~...!....V.~
863 0.03103690 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
864 0.00001812 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask:
865 0.00000226 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: TXABORT RXABORT
866 0.00000181 svchost.exe IRP_MJ_CLEANUP u302mdm1 SUCCESS
867 0.00000181 svchost.exe IRP_MJ_CLOSE u302mdm1 SUCCESS
868 0.00000815 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0008
869 0.00000136 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
870 0.00000906 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask:
871 0.00000317 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: TXCLEAR RXCLEAR
872 0.00000272 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask: RLSD
873 0.45384524 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
874 0.00060552 svchost.exe IOCTL_SERIAL_CLR_DTR u302mdm1 SUCCESS
875 0.00000725 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask:
876 0.00041666 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
877 0.00000317 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
878 0.00000362 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: RXABORT
879 0.00000136 svchost.exe IOCTL_SERIAL_SET_TIMEOUTS u302mdm1 SUCCESS RI:20 RM:0 RC:0 WM:10 WC:2000
880 0.00000136 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
881 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 6: ..OK..
882 0.00000136 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
883 1.01375442 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
884 0.00021784 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 4: ATH.
885 0.00000408 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
886 0.00000362 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
887 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
888 0.02199394 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
889 0.00000272 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0008
890 0.00000226 svchost.exe IOCTL_SERIAL_CLEAR_STATS u302mdm1 SUCCESS
891 0.00000181 svchost.exe IOCTL_SERIAL_SET_COMMCONFIG u302mdm1 SUCCESS
892 0.00000181 svchost.exe IOCTL_SERIAL_GET_BAUD_RATE u302mdm1 SUCCESS
893 0.00000091 svchost.exe IOCTL_SERIAL_GET_LINE_CONTROL u302mdm1 SUCCESS
894 0.00000091 svchost.exe IOCTL_SERIAL_GET_CHARS u302mdm1 SUCCESS
895 0.00000045 svchost.exe IOCTL_SERIAL_GET_HANDFLOW u302mdm1 SUCCESS
896 0.00044293 svchost.exe IOCTL_SERIAL_SET_BAUD_RATE u302mdm1 SUCCESS Rate: 921600
897 0.00000272 svchost.exe IOCTL_SERIAL_SET_RTS u302mdm1 INVALID PARAMETER
898 0.00015127 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
899 0.00710638 svchost.exe IOCTL_SERIAL_SET_LINE_CONTROL u302mdm1 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
900 0.00000226 svchost.exe IOCTL_SERIAL_SET_CHAR u302mdm1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
901 0.00000226 svchost.exe IOCTL_SERIAL_SET_HANDFLOW u302mdm1 SUCCESS Shake:1 Replace:40 XonLimit:10 XoffLimit:10
902 0.00026630 svchost.exe IOCTL_SERIAL_SET_DTR u302mdm1 SUCCESS
903 0.00000317 svchost.exe IOCTL_SERIAL_GET_MODEMSTATUS u302mdm1 SUCCESS
904 0.00020697 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 3: AT.
905 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
906 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
907 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
908 0.02765604 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
909 0.00023822 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 6: AT &F.
910 0.00000317 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
911 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
912 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
913 0.01218559 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: A
914 0.00016757 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 18: AT V1E0S0=0&D2&C1.
915 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
916 0.00000226 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 17: T V1E0S0=0&D2&C1.
917 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
918 0.00261909 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
919 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
920 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
921 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
922 0.01288894 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
923 0.00019927 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 11: AT +CMEE=1.
924 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
925 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
926 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
927 0.01389210 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
928 0.00020697 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 31: ATS7=60;+DS=3,0,2048,32;+DR=1;.
929 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
930 0.00000317 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
931 0.00000181 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
932 0.01366384 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 1: .
933 0.00021648 svchost.exe IRP_MJ_WRITE u302mdm1 SUCCESS Length 7: ATS0=0.
934 0.00000272 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
935 0.00000272 svchost.exe IRP_MJ_READ u302mdm1 SUCCESS Length 5: .OK..
936 0.00000226 svchost.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm1 SUCCESS
937 0.00160008 svchost.exe IRP_MJ_READ u302mdm1 CANCELLED Length 1
938 0.00000317 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask: DSR
939 0.00138224 svchost.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm1 SUCCESS
940 0.00001223 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0030
941 0.00000136 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B000C
942 0.00000589 svchost.exe IRP_MJ_DEVICE_CONTROL u302mdm1 SUCCESS IOCTL: 0x2B0034
943 0.00000951 svchost.exe IOCTL_SERIAL_SET_WAIT_MASK u302mdm1 SUCCESS Mask:
944 0.00000226 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: TXABORT TXCLEAR
945 0.00001268 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: RXABORT
946 0.00000589 svchost.exe IOCTL_SERIAL_PURGE u302mdm1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
947 0.00000181 svchost.exe IOCTL_SERIAL_GET_STATS u302mdm1 SUCCESS
948 0.00000679 svchost.exe IRP_MJ_CLEANUP u302mdm1 SUCCESS
949 0.01631871 svchost.exe IRP_MJ_CLOSE u302mdm1 SUCCESS
950 0.00031521 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
951 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
952 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
953 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
954 0.00019565 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
955 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
956 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
957 0.00017618 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
958 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
959 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
960 0.03600425 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
961 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
962 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
963 0.00000679 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
964 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
965 6.35310643 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
966 0.00019157 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CFUN=4.
967 0.00000543 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
968 0.00000498 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 6: ..OK..
969 0.00000634 BSNL 3G.exe IRP_MJ_CLEANUP u302mdm0 SUCCESS
970 0.01714797 BSNL 3G.exe IRP_MJ_CLOSE u302mdm0 SUCCESS
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: windows-voicecall.log --]
[-- Type: text/x-log, Size: 5433 bytes --]
0 0.00015670 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
1 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
2 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
3 0.00021060 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
4 0.00000679 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
5 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
6 0.00000317 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
7 0.00017165 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
8 0.04477683 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
9 0.00000770 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
10 0.00000679 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
11 0.00027219 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: ATD1503;.
12 0.00000951 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
13 0.00000770 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
14 0.08827604 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
15 0.00000815 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
16 0.00000634 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 35: ..OK....*ECAV: 1,1,1,,,"1503",129..
17 0.00002536 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
18 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
19 1.33751597 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
20 0.00000906 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
21 0.00000770 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 16: ..*ECAV: 1,2,1..
22 1.90121226 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
23 0.00000815 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
24 0.00000634 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 16: ..*ECAV: 1,3,1..
25 6.64808468 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
26 0.00056250 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
27 0.00000589 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
28 0.00000498 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,1,0,0,0,0....OK..
29 0.00081295 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
30 0.00001042 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
31 0.00000589 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
32 0.00000589 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
33 0.00067028 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
34 0.05965851 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
35 0.00000543 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
36 0.00000589 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
37 0.00000906 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
38 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
39 4.23734600 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
40 0.00067481 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 8: AT+CHUP.
41 0.00000679 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
42 0.00000679 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 29: ..OK....*ECAV: 1,0,1,08,016..
43 0.00001132 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
44 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
45 5.92131492 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
46 0.00022781 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+CIND?.
47 0.00000408 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
48 0.00000408 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 40: ..+CIND: 0,1,1,0,1,0,0,0,0,0,0,0....OK..
49 0.00027853 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 10: AT+CGREG?.
50 0.00000725 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
51 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
52 0.00000362 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 41: ..+CGREG: 2,1,"1B67","00CD532B",2....OK..
53 0.00064855 BSNL 3G.exe IRP_MJ_WRITE u302mdm0 SUCCESS Length 9: AT+COPS?.
54 0.04401914 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
55 0.00000453 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
56 0.00000453 BSNL 3G.exe IRP_MJ_READ u302mdm0 SUCCESS Length 26: ..+COPS: 0,0,"",2 ....OK..
57 0.00000634 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0 SUCCESS
58 0.00000317 BSNL 3G.exe IOCTL_SERIAL_GET_COMMSTATUS u302mdm0 SUCCESS
59 0.00000000 BSNL 3G.exe IOCTL_SERIAL_WAIT_ON_MASK u302mdm0
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm
2011-06-13 7:30 ` Amit Mendapara
@ 2011-06-12 8:57 ` Denis Kenzior
0 siblings, 0 replies; 11+ messages in thread
From: Denis Kenzior @ 2011-06-12 8:57 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1546 bytes --]
Hi Amit,
>
> The windows driver files have some references to ST-Ericsson and the AT
> commands
> looks more like as subset of ST-Ericsson commands then Huawei.
>
> I have cross check the listed commands
> with http://natisbad.org/E4300/Dell_Wireless_5530_AT_cmd_ref.html and
> found lots of AT*E**** commands which are Ericsson extensions.
>
Ok, then forget what I said earlier. This indeed looks like an MBM clone.
> Same with radio-settings and voicecall.
>
>
> I have tested redio-settings and is required to switch to edge to umts.
>
Fair enough.
> The device supports voice call but I am unable to test with
> test-voicecall script ast it fails with
> `Method "GetCalls" with signature "" on interface
> "org.ofono.VoiceCallManager" doesn't exist` error.
>
> Looking at windows driver log, the device issues AT*ECAV command
> to initiate voice call like this:
>
> AT*ECAV: 1,1,1,,,"1503",129
Then you will have to trace why the voicecall atom never registers. Do
note that unless the linktop supports some way of obtaining audio, we
prefer not to enable the voicecall driver and associated interfaces.
Pretty much every single usb datacard on the market can make calls, but
95% of them do not support audio.
Also, I notice that the device reports support of *ENAP, which is used
for high-speed context activation. Is the kernel detecting a high-speed
interface (e.g. ethernet) when you insert the linktop device? Or is
this device only capable of PPP?
Regards,
-Denis
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] linktop: reimplemented with minimum features.
@ 2011-06-27 6:22 Amit Mendapara
2011-06-27 6:22 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
0 siblings, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-06-27 6:22 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 8336 bytes --]
The device supports subset of ST-Ericsson AT command
extensions but nither STE nor the MBM plugin works with
these devices.
Fixes MeeGo bug #14784
---
plugins/linktop.c | 120 +++++++++++++++++++++++------------------------------
1 files changed, 52 insertions(+), 68 deletions(-)
diff --git a/plugins/linktop.c b/plugins/linktop.c
index 953f634..2eb1c55 100644
--- a/plugins/linktop.c
+++ b/plugins/linktop.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <gatchat.h>
@@ -34,10 +35,6 @@
#define OFONO_API_SUBJECT_TO_CHANGE
#include <ofono/plugin.h>
#include <ofono/modem.h>
-#include <ofono/call-barring.h>
-#include <ofono/call-forwarding.h>
-#include <ofono/call-meter.h>
-#include <ofono/call-settings.h>
#include <ofono/devinfo.h>
#include <ofono/message-waiting.h>
#include <ofono/netreg.h>
@@ -45,22 +42,20 @@
#include <ofono/cbs.h>
#include <ofono/sms.h>
#include <ofono/ussd.h>
-#include <ofono/call-volume.h>
-#include <ofono/voicecall.h>
#include <ofono/gprs.h>
#include <ofono/gprs-context.h>
#include <ofono/phonebook.h>
#include <ofono/radio-settings.h>
#include <ofono/log.h>
-#include <drivers/atmodem/vendor.h>
#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
static const char *none_prefix[] = { NULL };
struct linktop_data {
GAtChat *modem;
- GAtChat *control;
+ GAtChat *aux;
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
};
@@ -89,16 +84,16 @@ static void linktop_remove(struct ofono_modem *modem)
ofono_modem_set_data(modem, NULL);
g_at_chat_unref(data->modem);
- g_at_chat_unref(data->control);
+ g_at_chat_unref(data->aux);
g_free(data);
}
static void linktop_debug(const char *str, void *user_data)
{
- const char *prefix = user_data;
+ const char *prefix = user_data;
- ofono_info("%s%s", prefix, str);
+ ofono_info("%s%s", prefix, str);
}
static GAtChat *open_device(struct ofono_modem *modem,
@@ -138,10 +133,9 @@ static void linktop_disconnect(gpointer user_data)
struct ofono_modem *modem = user_data;
struct linktop_data *data = ofono_modem_get_data(modem);
- DBG("");
+ DBG("%p, data->gc %p", modem, data->gc);
- if (data->gc)
- ofono_gprs_context_remove(data->gc);
+ ofono_gprs_context_remove(data->gc);
g_at_chat_unref(data->modem);
data->modem = NULL;
@@ -151,7 +145,7 @@ static void linktop_disconnect(gpointer user_data)
return;
g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
+ linktop_disconnect, modem);
ofono_info("Reopened GPRS context channel");
@@ -176,31 +170,25 @@ static int linktop_enable(struct ofono_modem *modem)
DBG("%p", modem);
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return -EINVAL;
+ data->aux = open_device(modem, "Aux", "Aux: ");
+ if (data->aux == NULL)
+ return -EIO;
- g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
+ data->modem = open_device(modem, "Modem", "Modem: ");
+ if (data->modem == NULL) {
+ g_at_chat_unref(data->aux);
+ data->aux = NULL;
- data->control = open_device(modem, "Control", "Control: ");
- if (data->control == NULL) {
- g_at_chat_unref(data->modem);
- data->modem = NULL;
return -EIO;
}
- g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
- NULL, NULL, NULL);
-
- g_at_chat_send(data->modem, "AT", none_prefix,
- NULL, NULL, NULL);
-
- g_at_chat_send(data->modem, "AT &F", none_prefix,
- NULL, NULL, NULL);
+ g_at_chat_set_disconnect_function(data->modem,
+ linktop_disconnect, modem);
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_enable, modem, NULL);
+ g_at_chat_send(data->aux, "ATE0 +CMEE=1", none_prefix,
+ NULL, NULL, NULL);
+ g_at_chat_send(data->aux, "AT+CFUN=4", none_prefix,
+ cfun_enable, modem, NULL);
return -EINPROGRESS;
}
@@ -212,8 +200,11 @@ static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
DBG("");
- g_at_chat_unref(data->control);
- data->control = NULL;
+ g_at_chat_unref(data->aux);
+ data->aux = NULL;
+
+ g_at_chat_unref(data->modem);
+ data->modem = NULL;
if (ok)
ofono_modem_set_powered(modem, FALSE);
@@ -232,13 +223,12 @@ static int linktop_disable(struct ofono_modem *modem)
data->modem = NULL;
}
- if (data->control == NULL)
+ if (data->aux == NULL)
return 0;
- g_at_chat_cancel_all(data->control);
- g_at_chat_unregister_all(data->control);
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_disable, modem, NULL);
+ g_at_chat_cancel_all(data->aux);
+ g_at_chat_unregister_all(data->aux);
+ g_at_chat_send(data->aux, "AT+CFUN=4", NULL, cfun_disable, modem, NULL);
return -EINPROGRESS;
}
@@ -247,22 +237,25 @@ static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct cb_data *cbd = user_data;
ofono_modem_online_cb_t cb = cbd->cb;
- struct ofono_error error;
- decode_at_error(&error, g_at_result_final_response(result));
- cb(&error, cbd->data);
+ if (ok)
+ CALLBACK_WITH_SUCCESS(cb, cbd->data);
+ else
+ CALLBACK_WITH_FAILURE(cb, cbd->data);
}
static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t online,
ofono_modem_online_cb_t cb, void *user_data)
{
struct linktop_data *data = ofono_modem_get_data(modem);
- GAtChat *chat = data->control;
+ GAtChat *chat = data->aux;
struct cb_data *cbd = cb_data_new(cb, user_data);
char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
DBG("modem %p %s", modem, online ? "online" : "offline");
+ cbd->user = data;
+
if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
return;
@@ -278,9 +271,8 @@ static void linktop_pre_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_devinfo_create(modem, 0, "atmodem", data->control);
- sim = ofono_sim_create(modem, 0, "atmodem", data->control);
- ofono_voicecall_create(modem, 0, "stemodem", data->control);
+ ofono_devinfo_create(modem, 0, "atmodem", data->aux);
+ sim = ofono_sim_create(modem, 0, "atmodem", data->aux);
if (sim)
ofono_sim_inserted_notify(sim, TRUE);
@@ -292,35 +284,27 @@ static void linktop_post_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_radio_settings_create(modem, 0, "stemodem", data->control);
- ofono_phonebook_create(modem, 0, "atmodem", data->control);
- ofono_sms_create(modem, 0, "atmodem", data->control);
+ ofono_radio_settings_create(modem, 0, "stemodem", data->aux);
+ ofono_phonebook_create(modem, 0, "atmodem", data->aux);
+ ofono_sms_create(modem, 0, "atmodem", data->aux);
}
static void linktop_post_online(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
struct ofono_message_waiting *mw;
- struct ofono_gprs *gprs;
- struct ofono_gprs_context *gc;
DBG("%p", modem);
- ofono_ussd_create(modem, 0, "atmodem", data->control);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
- ofono_call_settings_create(modem, 0, "atmodem", data->control);
- ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem", data->control);
- ofono_call_meter_create(modem, 0, "atmodem", data->control);
- ofono_call_barring_create(modem, 0, "atmodem", data->control);
- ofono_call_volume_create(modem, 0, "atmodem", data->control);
- ofono_cbs_create(modem, 0, "atmodem", data->control);
-
- gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
- "atmodem", data->control);
- gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (gprs && gc)
- ofono_gprs_add_context(gprs, gc);
+ ofono_netreg_create(modem, 0, "atmodem", data->aux);
+ ofono_cbs_create(modem, 0, "atmodem", data->aux);
+ ofono_ussd_create(modem, 0, "atmodem", data->aux);
+
+ data->gprs = ofono_gprs_create(modem, 0, "atmodem", data->aux);
+ data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+
+ if (data->gprs && data->gc)
+ ofono_gprs_add_context(data->gprs, data->gc);
mw = ofono_message_waiting_create(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/2] udev: changed linktop device strings
2011-06-27 6:22 [PATCH 1/2] linktop: reimplemented with minimum features Amit Mendapara
@ 2011-06-27 6:22 ` Amit Mendapara
2011-06-27 15:35 ` Denis Kenzior
0 siblings, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-06-27 6:22 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 793 bytes --]
---
plugins/udev.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/udev.c b/plugins/udev.c
index 99303e9..1580b02 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -577,10 +577,10 @@ static void add_linktop(struct ofono_modem *modem,
if (g_strcmp0(intfnum, "01") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Modem", devnode);
+ ofono_modem_set_string(modem, "Aux", devnode);
} else if (g_strcmp0(intfnum, "03") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Control", devnode);
+ ofono_modem_set_string(modem, "Modem", devnode);
ofono_modem_set_integer(modem, "Registered", 1);
ofono_modem_register(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 1/2] linktop: reimplemented linktop plugin with minimum features.
@ 2011-06-20 7:35 Amit Mendapara
2011-06-20 7:35 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
0 siblings, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-06-20 7:35 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 11264 bytes --]
The device supports subset of ST-Ericsson AT command extensions but nither
STE nor the MBM plugin works with these devices.
- Supports voice call and has builtin soundcard but unable to hear any sound.
- Supports sim toolkit commands but I am unable to test this feature.
Fixes MeeGo bug #14784
---
plugins/linktop.c | 234 +++++++++++++++++++++++++----------------------------
1 files changed, 112 insertions(+), 122 deletions(-)
diff --git a/plugins/linktop.c b/plugins/linktop.c
index 953f634..bd8aa3e 100644
--- a/plugins/linktop.c
+++ b/plugins/linktop.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <gatchat.h>
@@ -34,33 +35,30 @@
#define OFONO_API_SUBJECT_TO_CHANGE
#include <ofono/plugin.h>
#include <ofono/modem.h>
-#include <ofono/call-barring.h>
-#include <ofono/call-forwarding.h>
-#include <ofono/call-meter.h>
-#include <ofono/call-settings.h>
#include <ofono/devinfo.h>
#include <ofono/message-waiting.h>
#include <ofono/netreg.h>
#include <ofono/sim.h>
-#include <ofono/cbs.h>
#include <ofono/sms.h>
#include <ofono/ussd.h>
-#include <ofono/call-volume.h>
-#include <ofono/voicecall.h>
#include <ofono/gprs.h>
#include <ofono/gprs-context.h>
#include <ofono/phonebook.h>
#include <ofono/radio-settings.h>
#include <ofono/log.h>
-#include <drivers/atmodem/vendor.h>
#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
+static const char *cpin_prefix[] = { "+CPIN:", NULL };
static const char *none_prefix[] = { NULL };
struct linktop_data {
- GAtChat *modem;
- GAtChat *control;
+ GAtChat *modem_port;
+ GAtChat *data_port;
+ guint cpin_poll_source;
+ guint cpin_poll_count;
+ gboolean have_sim;
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
};
@@ -88,25 +86,79 @@ static void linktop_remove(struct ofono_modem *modem)
ofono_modem_set_data(modem, NULL);
- g_at_chat_unref(data->modem);
- g_at_chat_unref(data->control);
+ g_at_chat_unref(data->data_port);
+ g_at_chat_unref(data->modem_port);
+
+ if (data->cpin_poll_source > 0)
+ g_source_remove(data->cpin_poll_source);
g_free(data);
}
static void linktop_debug(const char *str, void *user_data)
{
- const char *prefix = user_data;
+ const char *prefix = user_data;
+
+ ofono_info("%s%s", prefix, str);
+}
+
+static gboolean init_simpin_check(gpointer user_data);
+
+static void simpin_check(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ /* Modem returns an error if SIM is not ready. */
+ if (!ok && data->cpin_poll_count++ < 5) {
+ data->cpin_poll_source =
+ g_timeout_add_seconds(1, init_simpin_check, modem);
+ return;
+ }
+
+ data->cpin_poll_count = 0;
+
+ /* There is probably no SIM if SIM is not ready after 5 seconds. */
+ data->have_sim = ok;
+
+ ofono_modem_set_powered(modem, TRUE);
+}
+
+static gboolean init_simpin_check(gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ data->cpin_poll_source = 0;
- ofono_info("%s%s", prefix, str);
+ g_at_chat_send(data->modem_port, "AT+CPIN?", cpin_prefix,
+ simpin_check, modem, NULL);
+
+ return FALSE;
+}
+
+static void cfun_enable_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+
+ DBG("");
+
+ if (!ok) {
+ ofono_modem_set_powered(modem, FALSE);
+ return;
+ }
+
+ init_simpin_check(modem);
}
static GAtChat *open_device(struct ofono_modem *modem,
const char *key, char *debug)
{
- const char *device;
GAtSyntax *syntax;
GIOChannel *channel;
+ const char *device;
GAtChat *chat;
device = ofono_modem_get_string(modem, key);
@@ -126,94 +178,53 @@ static GAtChat *open_device(struct ofono_modem *modem,
if (chat == NULL)
return NULL;
-
+
if (getenv("OFONO_AT_DEBUG"))
g_at_chat_set_debug(chat, linktop_debug, debug);
return chat;
}
-static void linktop_disconnect(gpointer user_data)
-{
- struct ofono_modem *modem = user_data;
- struct linktop_data *data = ofono_modem_get_data(modem);
-
- DBG("");
-
- if (data->gc)
- ofono_gprs_context_remove(data->gc);
-
- g_at_chat_unref(data->modem);
- data->modem = NULL;
-
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return;
-
- g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
-
- ofono_info("Reopened GPRS context channel");
-
- data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (data->gprs && data->gc)
- ofono_gprs_add_context(data->gprs, data->gc);
-}
-
-static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
-{
- struct ofono_modem *modem = user_data;
-
- DBG("");
-
- ofono_modem_set_powered(modem, ok);
-}
-
static int linktop_enable(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
DBG("%p", modem);
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
+ data->modem_port = open_device(modem, "ModemDevice", "Modem: ");
+ if (data->modem_port == NULL)
return -EINVAL;
- g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
+ data->data_port = open_device(modem, "DataDevice", "Data: ");
+ if (data->data_port == NULL) {
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
- data->control = open_device(modem, "Control", "Control: ");
- if (data->control == NULL) {
- g_at_chat_unref(data->modem);
- data->modem = NULL;
return -EIO;
}
- g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
- NULL, NULL, NULL);
-
- g_at_chat_send(data->modem, "AT", none_prefix,
- NULL, NULL, NULL);
-
- g_at_chat_send(data->modem, "AT &F", none_prefix,
- NULL, NULL, NULL);
-
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_enable, modem, NULL);
-
+ g_at_chat_send(data->modem_port, "AT&F E0 V1 X4 &C1 +CMEE=1", none_prefix,
+ cfun_enable_cb, modem, NULL);
+ g_at_chat_send(data->data_port, "AT&F E0 V1 X4 &C1 +CMEE=1", none_prefix,
+ cfun_enable_cb, modem, NULL);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", none_prefix,
+ cfun_enable_cb, modem, NULL);
+
return -EINPROGRESS;
}
-static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
+static void cfun_disable_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct ofono_modem *modem = user_data;
struct linktop_data *data = ofono_modem_get_data(modem);
DBG("");
- g_at_chat_unref(data->control);
- data->control = NULL;
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
+
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
if (ok)
ofono_modem_set_powered(modem, FALSE);
@@ -225,20 +236,14 @@ static int linktop_disable(struct ofono_modem *modem)
DBG("%p", modem);
- if (data->modem) {
- g_at_chat_cancel_all(data->modem);
- g_at_chat_unregister_all(data->modem);
- g_at_chat_unref(data->modem);
- data->modem = NULL;
- }
-
- if (data->control == NULL)
+ if (data->modem_port == NULL)
return 0;
- g_at_chat_cancel_all(data->control);
- g_at_chat_unregister_all(data->control);
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_disable, modem, NULL);
+ g_at_chat_cancel_all(data->modem_port);
+ g_at_chat_unregister_all(data->modem_port);
+
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", NULL,
+ cfun_disable_cb, modem, NULL);
return -EINPROGRESS;
}
@@ -257,12 +262,14 @@ static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t online,
ofono_modem_online_cb_t cb, void *user_data)
{
struct linktop_data *data = ofono_modem_get_data(modem);
- GAtChat *chat = data->control;
+ GAtChat *chat = data->modem_port;
struct cb_data *cbd = cb_data_new(cb, user_data);
char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
DBG("modem %p %s", modem, online ? "online" : "offline");
+ cbd->user = data;
+
if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
return;
@@ -278,49 +285,33 @@ static void linktop_pre_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_devinfo_create(modem, 0, "atmodem", data->control);
- sim = ofono_sim_create(modem, 0, "atmodem", data->control);
- ofono_voicecall_create(modem, 0, "stemodem", data->control);
+ ofono_devinfo_create(modem, 0, "atmodem", data->modem_port);
+ sim = ofono_sim_create(modem, 0, "atmodem", data->modem_port);
- if (sim)
+ if (data->have_sim && sim)
ofono_sim_inserted_notify(sim, TRUE);
}
static void linktop_post_sim(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
-
- DBG("%p", modem);
-
- ofono_radio_settings_create(modem, 0, "stemodem", data->control);
- ofono_phonebook_create(modem, 0, "atmodem", data->control);
- ofono_sms_create(modem, 0, "atmodem", data->control);
-}
-
-static void linktop_post_online(struct ofono_modem *modem)
-{
- struct linktop_data *data = ofono_modem_get_data(modem);
struct ofono_message_waiting *mw;
- struct ofono_gprs *gprs;
- struct ofono_gprs_context *gc;
DBG("%p", modem);
- ofono_ussd_create(modem, 0, "atmodem", data->control);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
- ofono_call_settings_create(modem, 0, "atmodem", data->control);
- ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem", data->control);
- ofono_call_meter_create(modem, 0, "atmodem", data->control);
- ofono_call_barring_create(modem, 0, "atmodem", data->control);
- ofono_call_volume_create(modem, 0, "atmodem", data->control);
- ofono_cbs_create(modem, 0, "atmodem", data->control);
-
- gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
- "atmodem", data->control);
- gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+ ofono_radio_settings_create(modem, 0, "stemodem", data->modem_port);
+ ofono_phonebook_create(modem, 0, "atmodem", data->modem_port);
+ ofono_sms_create(modem, 0, "atmodem", data->modem_port);
+ ofono_ussd_create(modem, 0, "atmodem", data->modem_port);
+ ofono_netreg_create(modem, 0, "atmodem", data->modem_port);
+
+ data->gprs = ofono_gprs_create(modem, 0,
+ "atmodem", data->modem_port);
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
- if (gprs && gc)
- ofono_gprs_add_context(gprs, gc);
+ if (data->gprs && data->gc)
+ ofono_gprs_add_context(data->gprs, data->gc);
mw = ofono_message_waiting_create(modem);
@@ -336,8 +327,7 @@ static struct ofono_modem_driver linktop_driver = {
.disable = linktop_disable,
.set_online = linktop_set_online,
.pre_sim = linktop_pre_sim,
- .post_sim = linktop_post_sim,
- .post_online = linktop_post_online,
+ .post_sim = linktop_post_sim
};
static int linktop_init(void)
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/2] udev: changed linktop device strings
2011-06-20 7:35 [PATCH 1/2] linktop: reimplemented linktop plugin with minimum features Amit Mendapara
@ 2011-06-20 7:35 ` Amit Mendapara
0 siblings, 0 replies; 11+ messages in thread
From: Amit Mendapara @ 2011-06-20 7:35 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 806 bytes --]
---
plugins/udev.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/udev.c b/plugins/udev.c
index 0234fc0..4f4e6d8 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -577,10 +577,10 @@ static void add_linktop(struct ofono_modem *modem,
if (g_strcmp0(intfnum, "01") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Modem", devnode);
+ ofono_modem_set_string(modem, "ModemDevice", devnode);
} else if (g_strcmp0(intfnum, "03") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Control", devnode);
+ ofono_modem_set_string(modem, "DataDevice", devnode);
ofono_modem_set_integer(modem, "Registered", 1);
ofono_modem_register(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm with minimum features
@ 2011-06-15 7:13 Amit Mendapara
2011-06-15 7:13 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
0 siblings, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-06-15 7:13 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 14273 bytes --]
The AT commands listed with AT+CLAC matches with MBM supported devices.
However, the mbm plugin doesn't work for this devices and the specification is
also quite different.
I have also adopted some fixes from huawei plugin to fix MeeGo bug #14784
The device supports voice call but I am unable to hear any sound after
making calls even though the soundcard is detected by the kernel.
The device also supports sim toolkit commands but I am unable to test
this feature.
All these untested features will be added later.
---
plugins/linktop.c | 299 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 199 insertions(+), 100 deletions(-)
diff --git a/plugins/linktop.c b/plugins/linktop.c
index 953f634..4083f17 100644
--- a/plugins/linktop.c
+++ b/plugins/linktop.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <gatchat.h>
@@ -34,10 +35,6 @@
#define OFONO_API_SUBJECT_TO_CHANGE
#include <ofono/plugin.h>
#include <ofono/modem.h>
-#include <ofono/call-barring.h>
-#include <ofono/call-forwarding.h>
-#include <ofono/call-meter.h>
-#include <ofono/call-settings.h>
#include <ofono/devinfo.h>
#include <ofono/message-waiting.h>
#include <ofono/netreg.h>
@@ -45,24 +42,27 @@
#include <ofono/cbs.h>
#include <ofono/sms.h>
#include <ofono/ussd.h>
-#include <ofono/call-volume.h>
-#include <ofono/voicecall.h>
#include <ofono/gprs.h>
#include <ofono/gprs-context.h>
#include <ofono/phonebook.h>
#include <ofono/radio-settings.h>
#include <ofono/log.h>
-#include <drivers/atmodem/vendor.h>
#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
+static const char *cpin_prefix[] = { "+CPIN:", NULL };
static const char *none_prefix[] = { NULL };
struct linktop_data {
- GAtChat *modem;
- GAtChat *control;
+ GAtChat *modem_port;
+ GAtChat *data_port;
+ guint cpin_poll_source;
+ guint cpin_poll_count;
+ gboolean have_sim;
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
+ guint reopen_source;
};
static int linktop_probe(struct ofono_modem *modem)
@@ -86,35 +86,86 @@ static void linktop_remove(struct ofono_modem *modem)
DBG("%p", modem);
+ if (data->reopen_source > 0) {
+ g_source_remove(data->reopen_source);
+ data->reopen_source = 0;
+ }
+
ofono_modem_set_data(modem, NULL);
- g_at_chat_unref(data->modem);
- g_at_chat_unref(data->control);
+ g_at_chat_unref(data->data_port);
+ g_at_chat_unref(data->modem_port);
+
+ if (data->cpin_poll_source > 0)
+ g_source_remove(data->cpin_poll_source);
g_free(data);
}
static void linktop_debug(const char *str, void *user_data)
{
- const char *prefix = user_data;
+ const char *prefix = user_data;
+
+ ofono_info("%s%s", prefix, str);
+}
+
+static gboolean init_simpin_check(gpointer user_data);
+
+static void simpin_check(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ /* Modem returns an error if SIM is not ready. */
+ if (!ok && data->cpin_poll_count++ < 5) {
+ data->cpin_poll_source =
+ g_timeout_add_seconds(1, init_simpin_check, modem);
+ return;
+ }
+
+ data->cpin_poll_count = 0;
+
+ /* There is probably no SIM if SIM is not ready after 5 seconds. */
+ data->have_sim = ok;
+
+ ofono_modem_set_powered(modem, TRUE);
+}
+
+static gboolean init_simpin_check(gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ data->cpin_poll_source = 0;
- ofono_info("%s%s", prefix, str);
+ g_at_chat_send(data->modem_port, "AT+CPIN?", cpin_prefix,
+ simpin_check, modem, NULL);
+
+ return FALSE;
}
-static GAtChat *open_device(struct ofono_modem *modem,
- const char *key, char *debug)
+static void cfun_enable_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+
+ DBG("");
+
+ if (!ok) {
+ ofono_modem_set_powered(modem, FALSE);
+ return;
+ }
+
+ init_simpin_check(modem);
+}
+
+static GAtChat *create_port(const char *device)
{
- const char *device;
GAtSyntax *syntax;
GIOChannel *channel;
GAtChat *chat;
- device = ofono_modem_get_string(modem, key);
- if (device == NULL)
- return NULL;
-
- DBG("%s %s", key, device);
-
channel = g_at_tty_open(device, NULL);
if (channel == NULL)
return NULL;
@@ -127,93 +178,130 @@ static GAtChat *open_device(struct ofono_modem *modem,
if (chat == NULL)
return NULL;
- if (getenv("OFONO_AT_DEBUG"))
- g_at_chat_set_debug(chat, linktop_debug, debug);
-
return chat;
}
-static void linktop_disconnect(gpointer user_data)
+static void linktop_disconnect(gpointer user_data);
+
+static gboolean reopen_callback(gpointer user_data)
{
struct ofono_modem *modem = user_data;
struct linktop_data *data = ofono_modem_get_data(modem);
+ const char *data_dev;
+
+ data_dev = ofono_modem_get_string(modem, "DataDevice");
+ data->data_port = create_port(data_dev);
+ /* retry once if failed */
+ if (data->data_port == NULL) {
+ if (data->reopen_source > 0)
+ return FALSE;
+
+ data->reopen_source = g_timeout_add_seconds(1,
+ reopen_callback, modem);
+ ofono_debug("opening data port failed, retrying...");
+ return FALSE;
+ }
- DBG("");
-
- if (data->gc)
- ofono_gprs_context_remove(data->gc);
-
- g_at_chat_unref(data->modem);
- data->modem = NULL;
-
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return;
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
- g_at_chat_set_disconnect_function(data->modem,
+ g_at_chat_set_disconnect_function(data->data_port,
linktop_disconnect, modem);
ofono_info("Reopened GPRS context channel");
- data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
if (data->gprs && data->gc)
ofono_gprs_add_context(data->gprs, data->gc);
+
+ data->reopen_source = 0;
+
+ return FALSE;
}
-static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+static void linktop_disconnect(gpointer user_data)
{
struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
- DBG("");
+ DBG("%p, data->gc %p", modem, data->gc);
- ofono_modem_set_powered(modem, ok);
+ /* gprs_context has been destructed and needs not reopen */
+ if (data->gc == NULL)
+ return
+
+ ofono_gprs_context_remove(data->gc);
+
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
+
+ /* Waiting for the +CGEV: ME DEACT might also work */
+ if (data->reopen_source > 0)
+ g_source_remove(data->reopen_source);
+
+ data->reopen_source = g_timeout_add_seconds(1, reopen_callback, modem);
}
static int linktop_enable(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
+ const char *modem_dev;
+ const char *data_dev;
DBG("%p", modem);
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return -EINVAL;
+ modem_dev = ofono_modem_get_string(modem, "ModemDevice");
+ data_dev = ofono_modem_get_string(modem, "DataDevice");
- g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
+ DBG("%s, %s", modem_dev, data_dev);
- data->control = open_device(modem, "Control", "Control: ");
- if (data->control == NULL) {
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ if (modem_dev == NULL || data_dev == NULL)
+ return -EINVAL;
+
+ data->modem_port = create_port(modem_dev);
+ if (data->modem_port == NULL)
return -EIO;
- }
- g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
- NULL, NULL, NULL);
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->modem_port, linktop_debug, "Modem: ");
- g_at_chat_send(data->modem, "AT", none_prefix,
- NULL, NULL, NULL);
+ data->data_port = create_port(data_dev);
+ if (data->data_port == NULL) {
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
+
+ return -EIO;
+ }
- g_at_chat_send(data->modem, "AT &F", none_prefix,
- NULL, NULL, NULL);
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_enable, modem, NULL);
+ g_at_chat_set_disconnect_function(data->data_port,
+ linktop_disconnect, modem);
+ g_at_chat_send(data->modem_port, "AT&F E0 V1 X4 &C1 +CMEE=1", none_prefix,
+ cfun_enable_cb, modem, NULL);
+ g_at_chat_send(data->data_port, "AT&F E0 V1 X4 &C1 +CMEE=1", none_prefix,
+ cfun_enable_cb, modem, NULL);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", none_prefix,
+ cfun_enable_cb, modem, NULL);
+
return -EINPROGRESS;
}
-static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
+static void cfun_disable_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct ofono_modem *modem = user_data;
struct linktop_data *data = ofono_modem_get_data(modem);
DBG("");
- g_at_chat_unref(data->control);
- data->control = NULL;
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
+
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
if (ok)
ofono_modem_set_powered(modem, FALSE);
@@ -225,20 +313,18 @@ static int linktop_disable(struct ofono_modem *modem)
DBG("%p", modem);
- if (data->modem) {
- g_at_chat_cancel_all(data->modem);
- g_at_chat_unregister_all(data->modem);
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ if (data->reopen_source > 0) {
+ g_source_remove(data->reopen_source);
+ data->reopen_source = 0;
}
- if (data->control == NULL)
+ if (data->modem_port == NULL)
return 0;
- g_at_chat_cancel_all(data->control);
- g_at_chat_unregister_all(data->control);
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_disable, modem, NULL);
+ g_at_chat_cancel_all(data->modem_port);
+ g_at_chat_unregister_all(data->modem_port);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", NULL,
+ cfun_disable_cb, modem, NULL);
return -EINPROGRESS;
}
@@ -253,17 +339,37 @@ static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
cb(&error, cbd->data);
}
+static void set_offline_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct cb_data *cbd = user_data;
+ ofono_modem_online_cb_t cb = cbd->cb;
+ struct ofono_error error;
+
+ if (ok) {
+ struct linktop_data *data = cbd->user;
+
+ data->gc = NULL;
+ data->gprs = NULL;
+ }
+
+ decode_at_error(&error, g_at_result_final_response(result));
+ cb(&error, cbd->data);
+}
+
static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t online,
ofono_modem_online_cb_t cb, void *user_data)
{
struct linktop_data *data = ofono_modem_get_data(modem);
- GAtChat *chat = data->control;
+ GAtChat *chat = data->modem_port;
struct cb_data *cbd = cb_data_new(cb, user_data);
char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
DBG("modem %p %s", modem, online ? "online" : "offline");
- if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
+ cbd->user = data;
+
+ if (g_at_chat_send(chat, command, NULL,
+ online ? set_online_cb : set_offline_cb, cbd, g_free))
return;
g_free(cbd);
@@ -278,11 +384,10 @@ static void linktop_pre_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_devinfo_create(modem, 0, "atmodem", data->control);
- sim = ofono_sim_create(modem, 0, "atmodem", data->control);
- ofono_voicecall_create(modem, 0, "stemodem", data->control);
+ ofono_devinfo_create(modem, 0, "atmodem", data->modem_port);
+ sim = ofono_sim_create(modem, 0, "atmodem", data->modem_port);
- if (sim)
+ if (data->have_sim && sim)
ofono_sim_inserted_notify(sim, TRUE);
}
@@ -292,35 +397,29 @@ static void linktop_post_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_radio_settings_create(modem, 0, "stemodem", data->control);
- ofono_phonebook_create(modem, 0, "atmodem", data->control);
- ofono_sms_create(modem, 0, "atmodem", data->control);
+ ofono_radio_settings_create(modem, 0, "stemodem", data->modem_port);
+ ofono_phonebook_create(modem, 0, "atmodem", data->modem_port);
+ ofono_sms_create(modem, 0, "atmodem", data->modem_port);
}
static void linktop_post_online(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
struct ofono_message_waiting *mw;
- struct ofono_gprs *gprs;
- struct ofono_gprs_context *gc;
DBG("%p", modem);
- ofono_ussd_create(modem, 0, "atmodem", data->control);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
- ofono_call_settings_create(modem, 0, "atmodem", data->control);
- ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem", data->control);
- ofono_call_meter_create(modem, 0, "atmodem", data->control);
- ofono_call_barring_create(modem, 0, "atmodem", data->control);
- ofono_call_volume_create(modem, 0, "atmodem", data->control);
- ofono_cbs_create(modem, 0, "atmodem", data->control);
-
- gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
- "atmodem", data->control);
- gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (gprs && gc)
- ofono_gprs_add_context(gprs, gc);
+ ofono_netreg_create(modem, 0, "atmodem", data->modem_port);
+ ofono_cbs_create(modem, 0, "atmodem", data->modem_port);
+ ofono_ussd_create(modem, 0, "atmodem", data->modem_port);
+
+ data->gprs = ofono_gprs_create(modem, 0,
+ "atmodem", data->modem_port);
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
+
+ if (data->gprs && data->gc)
+ ofono_gprs_add_context(data->gprs, data->gc);
mw = ofono_message_waiting_create(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/2] udev: changed linktop device strings
2011-06-15 7:13 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm with minimum features Amit Mendapara
@ 2011-06-15 7:13 ` Amit Mendapara
0 siblings, 0 replies; 11+ messages in thread
From: Amit Mendapara @ 2011-06-15 7:13 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 806 bytes --]
---
plugins/udev.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/udev.c b/plugins/udev.c
index 0234fc0..4f4e6d8 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -577,10 +577,10 @@ static void add_linktop(struct ofono_modem *modem,
if (g_strcmp0(intfnum, "01") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Modem", devnode);
+ ofono_modem_set_string(modem, "ModemDevice", devnode);
} else if (g_strcmp0(intfnum, "03") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Control", devnode);
+ ofono_modem_set_string(modem, "DataDevice", devnode);
ofono_modem_set_integer(modem, "Registered", 1);
ofono_modem_register(modem);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm
@ 2011-04-14 10:13 Amit Mendapara
2011-04-14 10:13 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
0 siblings, 1 reply; 11+ messages in thread
From: Amit Mendapara @ 2011-04-14 10:13 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 13057 bytes --]
The AT commands listed with AT+CLAC matches with MBM supported devices.
However, the mbm plugin doesn't work for this devices and the specification is
also quite different.
Fixes MeeGo bug #14784
---
plugins/linktop.c | 268 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 177 insertions(+), 91 deletions(-)
diff --git a/plugins/linktop.c b/plugins/linktop.c
index 953f634..2f603a9 100644
--- a/plugins/linktop.c
+++ b/plugins/linktop.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <gatchat.h>
@@ -42,6 +43,7 @@
#include <ofono/message-waiting.h>
#include <ofono/netreg.h>
#include <ofono/sim.h>
+#include <ofono/stk.h>
#include <ofono/cbs.h>
#include <ofono/sms.h>
#include <ofono/ussd.h>
@@ -53,16 +55,21 @@
#include <ofono/radio-settings.h>
#include <ofono/log.h>
-#include <drivers/atmodem/vendor.h>
#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
+static const char *cpin_prefix[] = { "+CPIN:", NULL };
static const char *none_prefix[] = { NULL };
struct linktop_data {
- GAtChat *modem;
- GAtChat *control;
+ GAtChat *modem_port;
+ GAtChat *data_port;
+ guint cpin_poll_source;
+ guint cpin_poll_count;
+ gboolean have_sim;
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
+ guint reopen_source;
};
static int linktop_probe(struct ofono_modem *modem)
@@ -86,35 +93,86 @@ static void linktop_remove(struct ofono_modem *modem)
DBG("%p", modem);
+ if (data->reopen_source > 0) {
+ g_source_remove(data->reopen_source);
+ data->reopen_source = 0;
+ }
+
ofono_modem_set_data(modem, NULL);
- g_at_chat_unref(data->modem);
- g_at_chat_unref(data->control);
+ g_at_chat_unref(data->data_port);
+ g_at_chat_unref(data->modem_port);
+
+ if (data->cpin_poll_source > 0)
+ g_source_remove(data->cpin_poll_source);
g_free(data);
}
static void linktop_debug(const char *str, void *user_data)
{
- const char *prefix = user_data;
+ const char *prefix = user_data;
+
+ ofono_info("%s%s", prefix, str);
+}
+
+static gboolean init_simpin_check(gpointer user_data);
+
+static void simpin_check(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ /* Modem returns an error if SIM is not ready. */
+ if (!ok && data->cpin_poll_count++ < 5) {
+ data->cpin_poll_source =
+ g_timeout_add_seconds(1, init_simpin_check, modem);
+ return;
+ }
+
+ data->cpin_poll_count = 0;
+
+ /* There is probably no SIM if SIM is not ready after 5 seconds. */
+ data->have_sim = ok;
+
+ ofono_modem_set_powered(modem, TRUE);
+}
+
+static gboolean init_simpin_check(gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
+
+ data->cpin_poll_source = 0;
+
+ g_at_chat_send(data->modem_port, "AT+CPIN?", cpin_prefix,
+ simpin_check, modem, NULL);
+
+ return FALSE;
+}
+
+static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+
+ DBG("");
- ofono_info("%s%s", prefix, str);
+ if (!ok) {
+ ofono_modem_set_powered(modem, FALSE);
+ return;
+ }
+
+ init_simpin_check(modem);
}
-static GAtChat *open_device(struct ofono_modem *modem,
- const char *key, char *debug)
+static GAtChat *create_port(const char *device)
{
- const char *device;
GAtSyntax *syntax;
GIOChannel *channel;
GAtChat *chat;
- device = ofono_modem_get_string(modem, key);
- if (device == NULL)
- return NULL;
-
- DBG("%s %s", key, device);
-
channel = g_at_tty_open(device, NULL);
if (channel == NULL)
return NULL;
@@ -127,81 +185,106 @@ static GAtChat *open_device(struct ofono_modem *modem,
if (chat == NULL)
return NULL;
- if (getenv("OFONO_AT_DEBUG"))
- g_at_chat_set_debug(chat, linktop_debug, debug);
-
return chat;
}
-static void linktop_disconnect(gpointer user_data)
+static void linktop_disconnect(gpointer user_data);
+
+static gboolean reopen_callback(gpointer user_data)
{
struct ofono_modem *modem = user_data;
struct linktop_data *data = ofono_modem_get_data(modem);
+ const char *data_dev;
- DBG("");
+ data->reopen_source = 0;
- if (data->gc)
- ofono_gprs_context_remove(data->gc);
+ data_dev = ofono_modem_get_string(modem, "DataDevice");
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ data->data_port = create_port(data_dev);
+ if (data->data_port == NULL)
+ return FALSE;
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return;
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
- g_at_chat_set_disconnect_function(data->modem,
+ g_at_chat_set_disconnect_function(data->data_port,
linktop_disconnect, modem);
ofono_info("Reopened GPRS context channel");
- data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (data->gprs && data->gc)
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
+ if (data->gprs && data->gc) {
ofono_gprs_add_context(data->gprs, data->gc);
+ }
+
+ return FALSE;
}
-static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+static void linktop_disconnect(gpointer user_data)
{
struct ofono_modem *modem = user_data;
+ struct linktop_data *data = ofono_modem_get_data(modem);
DBG("");
- ofono_modem_set_powered(modem, ok);
+ if (data->gc)
+ ofono_gprs_context_remove(data->gc);
+
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
+
+ /* Waiting for the +CGEV: ME DEACT might also work */
+ if (data->reopen_source > 0)
+ g_source_remove(data->reopen_source);
+
+ data->reopen_source = g_timeout_add_seconds(1, reopen_callback, modem);
}
static int linktop_enable(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
+ const char *modem_dev;
+ const char *data_dev;
DBG("%p", modem);
- data->modem = open_device(modem, "Modem", "Modem: ");
- if (data->modem == NULL)
- return -EINVAL;
+ modem_dev = ofono_modem_get_string(modem, "ModemDevice");
+ data_dev = ofono_modem_get_string(modem, "DataDevice");
- g_at_chat_set_disconnect_function(data->modem,
- linktop_disconnect, modem);
+ DBG("%s, %s", modem_dev, data_dev);
+
+ if (modem_dev == NULL || data_dev == NULL)
+ return -EINVAL;
- data->control = open_device(modem, "Control", "Control: ");
- if (data->control == NULL) {
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ data->modem_port = create_port(modem_dev);
+ if (data->modem_port == NULL)
return -EIO;
- }
- g_at_chat_send(data->control, "ATE0 +CMEE=1", none_prefix,
- NULL, NULL, NULL);
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->modem_port, linktop_debug, "Modem: ");
- g_at_chat_send(data->modem, "AT", none_prefix,
- NULL, NULL, NULL);
+ data->data_port = create_port(data_dev);
+ if (data->data_port == NULL) {
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
- g_at_chat_send(data->modem, "AT &F", none_prefix,
- NULL, NULL, NULL);
+ return -EIO;
+ }
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
- cfun_enable, modem, NULL);
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(data->data_port, linktop_debug, "Data: ");
+
+ g_at_chat_set_disconnect_function(data->data_port,
+ linktop_disconnect, modem);
+ g_at_chat_send(data->modem_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
+ NULL, NULL, NULL);
+ g_at_chat_send(data->data_port, "AT&F E0 V1 X4 &C1 +CMEE=1", NULL,
+ NULL, NULL, NULL);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", none_prefix,
+ cfun_enable, modem, NULL);
+
return -EINPROGRESS;
}
@@ -212,8 +295,11 @@ static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
DBG("");
- g_at_chat_unref(data->control);
- data->control = NULL;
+ g_at_chat_unref(data->modem_port);
+ data->modem_port = NULL;
+
+ g_at_chat_unref(data->data_port);
+ data->data_port = NULL;
if (ok)
ofono_modem_set_powered(modem, FALSE);
@@ -225,19 +311,17 @@ static int linktop_disable(struct ofono_modem *modem)
DBG("%p", modem);
- if (data->modem) {
- g_at_chat_cancel_all(data->modem);
- g_at_chat_unregister_all(data->modem);
- g_at_chat_unref(data->modem);
- data->modem = NULL;
+ if (data->reopen_source > 0) {
+ g_source_remove(data->reopen_source);
+ data->reopen_source = 0;
}
- if (data->control == NULL)
+ if (data->modem_port == NULL)
return 0;
- g_at_chat_cancel_all(data->control);
- g_at_chat_unregister_all(data->control);
- g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
+ g_at_chat_cancel_all(data->modem_port);
+ g_at_chat_unregister_all(data->modem_port);
+ g_at_chat_send(data->modem_port, "AT+CFUN=4", NULL,
cfun_disable, modem, NULL);
return -EINPROGRESS;
@@ -247,17 +331,18 @@ static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct cb_data *cbd = user_data;
ofono_modem_online_cb_t cb = cbd->cb;
- struct ofono_error error;
- decode_at_error(&error, g_at_result_final_response(result));
- cb(&error, cbd->data);
+ if (ok)
+ CALLBACK_WITH_SUCCESS(cb, cbd->data);
+ else
+ CALLBACK_WITH_FAILURE(cb, cbd->data);
}
static void linktop_set_online(struct ofono_modem *modem, ofono_bool_t online,
ofono_modem_online_cb_t cb, void *user_data)
{
struct linktop_data *data = ofono_modem_get_data(modem);
- GAtChat *chat = data->control;
+ GAtChat *chat = data->modem_port;
struct cb_data *cbd = cb_data_new(cb, user_data);
char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
@@ -278,11 +363,11 @@ static void linktop_pre_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_devinfo_create(modem, 0, "atmodem", data->control);
- sim = ofono_sim_create(modem, 0, "atmodem", data->control);
- ofono_voicecall_create(modem, 0, "stemodem", data->control);
+ ofono_devinfo_create(modem, 0, "atmodem", data->modem_port);
+ sim = ofono_sim_create(modem, 0, "atmodem", data->modem_port);
+ ofono_voicecall_create(modem, 0, "stemodem", data->modem_port);
- if (sim)
+ if (data->have_sim && sim)
ofono_sim_inserted_notify(sim, TRUE);
}
@@ -292,35 +377,36 @@ static void linktop_post_sim(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_radio_settings_create(modem, 0, "stemodem", data->control);
- ofono_phonebook_create(modem, 0, "atmodem", data->control);
- ofono_sms_create(modem, 0, "atmodem", data->control);
+ ofono_stk_create(modem, 0, "mbmmodem", data->modem_port);
+ ofono_radio_settings_create(modem, 0, "stemodem", data->modem_port);
+ ofono_phonebook_create(modem, 0, "atmodem", data->modem_port);
+ ofono_sms_create(modem, 0, "atmodem", data->modem_port);
}
static void linktop_post_online(struct ofono_modem *modem)
{
struct linktop_data *data = ofono_modem_get_data(modem);
struct ofono_message_waiting *mw;
- struct ofono_gprs *gprs;
- struct ofono_gprs_context *gc;
DBG("%p", modem);
- ofono_ussd_create(modem, 0, "atmodem", data->control);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->control);
- ofono_call_settings_create(modem, 0, "atmodem", data->control);
- ofono_netreg_create(modem, OFONO_VENDOR_MBM, "atmodem", data->control);
- ofono_call_meter_create(modem, 0, "atmodem", data->control);
- ofono_call_barring_create(modem, 0, "atmodem", data->control);
- ofono_call_volume_create(modem, 0, "atmodem", data->control);
- ofono_cbs_create(modem, 0, "atmodem", data->control);
-
- gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
- "atmodem", data->control);
- gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
-
- if (gprs && gc)
- ofono_gprs_add_context(gprs, gc);
+ ofono_netreg_create(modem, 0, "atmodem", data->modem_port);
+ ofono_cbs_create(modem, 0, "atmodem", data->modem_port);
+ ofono_ussd_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_forwarding_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_settings_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_meter_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_barring_create(modem, 0, "atmodem", data->modem_port);
+ ofono_call_volume_create(modem, 0, "atmodem", data->modem_port);
+
+ data->gprs = ofono_gprs_create(modem, 0,
+ "atmodem", data->modem_port);
+ data->gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->data_port);
+
+ if (data->gprs && data->gc) {
+ ofono_gprs_add_context(data->gprs, data->gc);
+ }
mw = ofono_message_waiting_create(modem);
--
1.7.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/2] udev: changed linktop device strings
2011-04-14 10:13 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Amit Mendapara
@ 2011-04-14 10:13 ` Amit Mendapara
0 siblings, 0 replies; 11+ messages in thread
From: Amit Mendapara @ 2011-04-14 10:13 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 804 bytes --]
---
plugins/udev.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/udev.c b/plugins/udev.c
index cbb596d..5c3ca58 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -578,10 +578,10 @@ static void add_linktop(struct ofono_modem *modem,
if (g_strcmp0(intfnum, "01") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Modem", devnode);
+ ofono_modem_set_string(modem, "ModemDevice", devnode);
} else if (g_strcmp0(intfnum, "03") == 0) {
devnode = udev_device_get_devnode(udev_device);
- ofono_modem_set_string(modem, "Control", devnode);
+ ofono_modem_set_string(modem, "DataDevice", devnode);
ofono_modem_set_integer(modem, "Registered", 1);
ofono_modem_register(modem);
--
1.7.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-06-27 15:35 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-08 9:46 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Amit Mendapara
2011-06-08 9:46 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
2011-06-11 14:05 ` Denis Kenzior
2011-06-11 14:03 ` [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Denis Kenzior
2011-06-13 7:30 ` Amit Mendapara
2011-06-12 8:57 ` Denis Kenzior
-- strict thread matches above, loose matches on Subject: below --
2011-06-27 6:22 [PATCH 1/2] linktop: reimplemented with minimum features Amit Mendapara
2011-06-27 6:22 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
2011-06-27 15:35 ` Denis Kenzior
2011-06-20 7:35 [PATCH 1/2] linktop: reimplemented linktop plugin with minimum features Amit Mendapara
2011-06-20 7:35 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
2011-06-15 7:13 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm with minimum features Amit Mendapara
2011-06-15 7:13 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
2011-04-14 10:13 [PATCH 1/2] linktop: reimplemented linktop plugin based on mbm Amit Mendapara
2011-04-14 10:13 ` [PATCH 2/2] udev: changed linktop device strings Amit Mendapara
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.