如何在C#中获取IOT集线器设备的上次活动时间

时间:2018-08-04 13:07:04

标签: c# azure iot azure-iot-hub

我在ASP.NET MVC中有一个应用程序,用于列出IOT设备及其管理。现在,我在列表中具有所有孪生属性和设备属性。我需要设备的上次活动时间来获取活动的,最近活动的设备的详细信息。我想为此,我需要上一次活动时间。有什么方法可以收集上次活动时间。在IOT设备的Azure门户中,显示了“上次活动时间”。

2 个答案:

答案 0 :(得分:3)

您可以使用RegistryManager访问IotHub设备双胞胎。在这里,您可以只创建所需的查询,然后将结果转换为内置的Twin Type。这将使您保持代码类型并处理对象。

这是我编写的示例代码,其中列出了双胞胎的“ LastActivityTime”(控制台应用程序):

 private static RegistryManager registryManager;
    private static string iotHubConnectionString = "<YOUR IOT HUB CONNECTION STRING";
    static void Main(string[] args)
    {
        MainAsync();
        Console.ReadLine();
    }
    static async void MainAsync()
    {
        registryManager = RegistryManager.CreateFromConnectionString(iotHubConnectionString);
        var queryResult = registryManager.CreateQuery("SELECT * FROM devices");
        while (queryResult.HasMoreResults)
        {
            var page = await queryResult.GetNextAsTwinAsync();
            foreach (var twin in page)
            {
                Console.WriteLine("The last activity time of the device {0} is {1}", twin.DeviceId, twin.LastActivityTime);
            }
        }

    }

您应该阅读有关孪生兄弟(IoT中心)和与其相关的内置属性的标准。 Here是一篇很好的文章。

答案 1 :(得分:0)

使用REST API来了解Service - Query IoT Hub

您可以在有效负载请求中使用查询字符串,用于分页的标题等。

POST https://*****.azure-devices.net/devices/query?api-version=2018-06-30
Authorization: ---sasToken---
x-ms-max-item-count: 50
x-ms-continuation: ********

{
  "query": "SELECT * FROM devices "
}