qmicli: new '--get-service-version-info'
$ sudo qmicli -d /dev/cdc-wdm0 --get-service-version-info [/dev/cdc-wdm0] Supported versions: ctl (1.3) wds (1.2) dms (1.1) nas (1.0) wms (1.0) pds (1.0) auth (1.0) cat (1.0) rms (1.0)
This commit is contained in:
parent
96d0e9bbe1
commit
4bc0798c3e
61
cli/qmicli.c
61
cli/qmicli.c
|
@ -46,6 +46,7 @@ static gboolean operation_status;
|
|||
|
||||
/* Main options */
|
||||
static gchar *device_str;
|
||||
static gboolean get_service_version_info_flag;
|
||||
static gchar *device_set_instance_id_str;
|
||||
static gboolean device_open_version_info_flag;
|
||||
static gboolean device_open_sync_flag;
|
||||
|
@ -60,6 +61,10 @@ static GOptionEntry main_entries[] = {
|
|||
"Specify device path",
|
||||
"[PATH]"
|
||||
},
|
||||
{ "get-service-version-info", 0, 0, G_OPTION_ARG_NONE, &get_service_version_info_flag,
|
||||
"Get service version info",
|
||||
NULL
|
||||
},
|
||||
{ "device-set-instance-id", 0, 0, G_OPTION_ARG_STRING, &device_set_instance_id_str,
|
||||
"Set instance ID",
|
||||
"[Instance ID]"
|
||||
|
@ -191,7 +196,8 @@ generic_options_enabled (void)
|
|||
if (checked)
|
||||
return !!n_actions;
|
||||
|
||||
n_actions = !!device_set_instance_id_str;
|
||||
n_actions = (!!device_set_instance_id_str +
|
||||
get_service_version_info_flag);
|
||||
|
||||
if (n_actions > 1) {
|
||||
g_printerr ("error: too many generic actions requested\n");
|
||||
|
@ -369,6 +375,57 @@ device_set_instance_id (QmiDevice *dev)
|
|||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
get_service_version_info_ready (QmiDevice *dev,
|
||||
GAsyncResult *res)
|
||||
{
|
||||
GError *error = NULL;
|
||||
GArray *services;
|
||||
guint i;
|
||||
|
||||
services = qmi_device_get_service_version_info_finish (dev, res, &error);
|
||||
if (!services) {
|
||||
g_printerr ("error: couldn't get service version info: %s\n",
|
||||
error->message);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
g_print ("[%s] Supported versions:\n",
|
||||
qmi_device_get_path_display (dev));
|
||||
for (i = 0; i < services->len; i++) {
|
||||
QmiDeviceServiceVersionInfo *info;
|
||||
const gchar *service_str;
|
||||
|
||||
info = &g_array_index (services, QmiDeviceServiceVersionInfo, i);
|
||||
service_str = qmi_service_get_string (info->service);
|
||||
if (service_str)
|
||||
g_print ("\t%s (%u.%u)\n",
|
||||
service_str,
|
||||
info->major_version,
|
||||
info->minor_version);
|
||||
else
|
||||
g_print ("\tunknown [0x%02x] (%u.%u)\n",
|
||||
info->service,
|
||||
info->major_version,
|
||||
info->minor_version);
|
||||
}
|
||||
g_array_unref (services);
|
||||
|
||||
/* We're done now */
|
||||
qmicli_async_operation_done (TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
device_get_service_version_info (QmiDevice *dev)
|
||||
{
|
||||
g_debug ("Getting service version info...");
|
||||
qmi_device_get_service_version_info (dev,
|
||||
10,
|
||||
cancellable,
|
||||
(GAsyncReadyCallback)get_service_version_info_ready,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
device_open_ready (QmiDevice *dev,
|
||||
GAsyncResult *res)
|
||||
|
@ -386,6 +443,8 @@ device_open_ready (QmiDevice *dev,
|
|||
|
||||
if (device_set_instance_id_str)
|
||||
device_set_instance_id (dev);
|
||||
else if (get_service_version_info_flag)
|
||||
device_get_service_version_info (dev);
|
||||
else
|
||||
device_allocate_client (dev);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue