DeviceManagementClient.GetDeviceClassesAsync(String, RequestContext) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene una lista de todas las clases de dispositivo (conjuntos de dispositivos compatibles con las mismas actualizaciones basadas en las propiedades id. de modelo y compatibilidad notificadas en la interfaz PnP de Device Update en IoT Hub) para todos los dispositivos conectados a Device Update para IoT Hub.
public virtual Azure.AsyncPageable<BinaryData> GetDeviceClassesAsync(string filter = default, Azure.RequestContext context = default);
abstract member GetDeviceClassesAsync : string * Azure.RequestContext -> Azure.AsyncPageable<BinaryData>
override this.GetDeviceClassesAsync : string * Azure.RequestContext -> Azure.AsyncPageable<BinaryData>
Public Overridable Function GetDeviceClassesAsync (Optional filter As String = Nothing, Optional context As RequestContext = Nothing) As AsyncPageable(Of BinaryData)
Parámetros
- filter
- String
Restringe el conjunto de clases de dispositivo devueltas. Puede filtrar por nombre descriptivo.
- context
- RequestContext
Contexto de solicitud, que puede invalidar los comportamientos predeterminados de la canalización de cliente por llamada.
Devoluciones
del AsyncPageable<T> servicio que contiene una lista de BinaryData objetos. Los detalles del esquema de cuerpo de cada elemento de la colección se encuentran en la sección Comentarios siguiente.
Excepciones
El servicio devolvió un código de estado no correcto.
Ejemplos
En este ejemplo se muestra cómo llamar a GetDeviceClassesAsync y analizar el resultado.
var credential = new DefaultAzureCredential();
var endpoint = new Uri("<https://my-service.azure.com>");
var client = new DeviceManagementClient(endpoint, "<instanceId>", credential);
await foreach (var data in client.GetDeviceClassesAsync())
{
JsonElement result = JsonDocument.Parse(data.ToStream()).RootElement;
Console.WriteLine(result.GetProperty("deviceClassId").ToString());
Console.WriteLine(result.GetProperty("deviceClassProperties").GetProperty("compatProperties").GetProperty("<test>").ToString());
}
En este ejemplo se muestra cómo llamar a GetDeviceClassesAsync con todos los parámetros y cómo analizar el resultado.
var credential = new DefaultAzureCredential();
var endpoint = new Uri("<https://my-service.azure.com>");
var client = new DeviceManagementClient(endpoint, "<instanceId>", credential);
await foreach (var data in client.GetDeviceClassesAsync("<filter>"))
{
JsonElement result = JsonDocument.Parse(data.ToStream()).RootElement;
Console.WriteLine(result.GetProperty("deviceClassId").ToString());
Console.WriteLine(result.GetProperty("friendlyName").ToString());
Console.WriteLine(result.GetProperty("deviceClassProperties").GetProperty("contractModel").GetProperty("id").ToString());
Console.WriteLine(result.GetProperty("deviceClassProperties").GetProperty("contractModel").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("deviceClassProperties").GetProperty("compatProperties").GetProperty("<test>").ToString());
Console.WriteLine(result.GetProperty("bestCompatibleUpdate").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("bestCompatibleUpdate").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("bestCompatibleUpdate").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("bestCompatibleUpdate").GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("bestCompatibleUpdate").GetProperty("friendlyName").ToString());
}
Comentarios
A continuación se muestra el esquema JSON de un elemento de la respuesta paginable.
Cuerpo de la respuesta:
Esquema para DeviceClassesListValue
:
{
deviceClassId: string, # Required. The device class identifier. This is generated from the model Id and the compat properties reported by the device update agent in the Device Update PnP interface in IoT Hub. It is a hex-encoded SHA1 hash.
friendlyName: string, # Optional. The device class friendly name. This can be updated by callers after the device class has been automatically created.
deviceClassProperties: {
contractModel: {
id: string, # Required. The Device Update agent contract model Id of the device class. This is also used to calculate the device class Id.
name: string, # Required. The Device Update agent contract model name of the device class. Intended to be a more readable form of the contract model Id.
}, # Optional. The Device Update agent contract model.
compatProperties: Dictionary<string, string>, # Required. The compat properties of the device class. This object can be thought of as a set of key-value pairs where the key is the name of the compatibility property and the value is the value of the compatibility property. There will always be at least 1 compat property
}, # Required. The device class properties that are used to calculate the device class Id
bestCompatibleUpdate: {
updateId: {
provider: string, # Required. Update provider.
name: string, # Required. Update name.
version: string, # Required. Update version.
}, # Required. Update identifier.
description: string, # Optional. Update description.
friendlyName: string, # Optional. Friendly update name.
}, # Optional. Update that is the highest version compatible with this device class.
}
Se aplica a
Azure SDK for .NET