cli: new '--set-power-state-on' and '--set-power-state-low' commands

This commit is contained in:
Aleksander Morgado
2013-01-01 12:23:33 +01:00
parent 091c47d695
commit 669f0928f3

View File

@@ -49,6 +49,8 @@ static gboolean info_flag; /* set when no action found */
static gboolean monitor_state_flag;
static gboolean enable_flag;
static gboolean disable_flag;
static gboolean set_power_state_on_flag;
static gboolean set_power_state_low_flag;
static gboolean reset_flag;
static gchar *factory_reset_str;
static gchar *command_str;
@@ -72,6 +74,14 @@ static GOptionEntry entries[] = {
"Disable a given modem",
NULL
},
{ "set-power-state-on", 0, 0, G_OPTION_ARG_NONE, &set_power_state_on_flag,
"Set full power state in the modem",
NULL
},
{ "set-power-state-low", 0, 0, G_OPTION_ARG_NONE, &set_power_state_low_flag,
"Set low power state in the modem",
NULL
},
{ "reset", 'r', 0, G_OPTION_ARG_NONE, &reset_flag,
"Reset a given modem",
NULL
@@ -139,6 +149,8 @@ mmcli_modem_options_enabled (void)
n_actions = (monitor_state_flag +
enable_flag +
disable_flag +
set_power_state_on_flag +
set_power_state_low_flag +
reset_flag +
list_bearers_flag +
!!create_bearer_str +
@@ -496,6 +508,33 @@ disable_ready (MMModem *modem,
mmcli_async_operation_done ();
}
static void
set_power_state_process_reply (gboolean result,
const GError *error)
{
if (!result) {
g_printerr ("error: couldn't set new power state in the modem: '%s'\n",
error ? error->message : "unknown error");
exit (EXIT_FAILURE);
}
g_print ("successfully set new power state in the modem\n");
}
static void
set_power_state_ready (MMModem *modem,
GAsyncResult *result,
gpointer nothing)
{
gboolean operation_result;
GError *error = NULL;
operation_result = mm_modem_set_power_state_finish (modem, result, &error);
set_power_state_process_reply (operation_result, error);
mmcli_async_operation_done ();
}
static void
reset_process_reply (gboolean result,
const GError *error)
@@ -864,6 +903,28 @@ get_modem_ready (GObject *source,
return;
}
/* Request to full power the modem? */
if (set_power_state_on_flag) {
g_debug ("Asynchronously setting full power...");
mm_modem_set_power_state (ctx->modem,
MM_MODEM_POWER_STATE_ON,
ctx->cancellable,
(GAsyncReadyCallback)set_power_state_ready,
NULL);
return;
}
/* Request to low power the modem? */
if (set_power_state_low_flag) {
g_debug ("Asynchronously setting low power...");
mm_modem_set_power_state (ctx->modem,
MM_MODEM_POWER_STATE_LOW,
ctx->cancellable,
(GAsyncReadyCallback)set_power_state_ready,
NULL);
return;
}
/* Request to reset the modem? */
if (reset_flag) {
g_debug ("Asynchronously reseting modem...");
@@ -1047,6 +1108,26 @@ mmcli_modem_run_synchronous (GDBusConnection *connection)
return;
}
/* Request to set full power state? */
if (set_power_state_on_flag) {
gboolean result;
g_debug ("Synchronously setting full power...");
result = mm_modem_set_power_state_sync (ctx->modem, MM_MODEM_POWER_STATE_ON, NULL, &error);
set_power_state_process_reply (result, error);
return;
}
/* Request to set low power state? */
if (set_power_state_low_flag) {
gboolean result;
g_debug ("Synchronously setting low power...");
result = mm_modem_set_power_state_sync (ctx->modem, MM_MODEM_POWER_STATE_LOW, NULL, &error);
set_power_state_process_reply (result, error);
return;
}
/* Request to reset the modem? */
if (reset_flag) {
gboolean result;