Как получить ключ устройства с помощью идентификатора устройства из кода IoT хаба c #? - PullRequest
0 голосов
/ 04 октября 2018

Я создал концентратор IoT в Azure.

Зарегистрируйте устройство в концентраторе IoT, используя следующий код -

 public async Task<HttpResponseMessage> RegisterDeviceAsyncData(DeviceData deviceApp)
        {


                        deviceApp.PlatformName = _appSettingsAccessor.GetAppSettingValue(DEFAULT_HUB_KEY);



                    var result = await _deviceRegistrationHandler.RegisterDeviceAsync(deviceApp);


                response = HttpResponseMessageFactory.CreateMessageWithObjectBody(results);
            }

успешно регистрирует устройства в концентраторе Iot. Теперь я хочу отправитьданные на эти устройства, используя код c #

У меня есть код для отправки данных на устройство ниже, но я не знаю, как получить строку подключения конкретного устройства или ключ для отправки данных.

 private static async Task SendDeviceToCloudMessagesAsync()
        {
    DeviceClient deviceClient = DeviceClient.CreateFromConnectionString("deviceConnectionString");
            while (true)
            {

                string messageString = string.Empty;
                Message iotHubMsg = new Message();

                foreach (BaseMessage msg in currentDevice.Messages)
                {


                        iotHubMsg = msg.ReadAsIotHubMessage();

                    messageString = Encoding.UTF8.GetString(iotHubMsg.GetBytes());

                        //Send the current messages and clear them
                        await deviceClient.SendEventAsync(iotHubMsg);
                        }
                        }
                        }

на данный момент я пытался получить строку подключения с помощью portal.azure.com, но в режиме реального времени после регистрации устройства, как я могу получить строку подключения?используя токен SAS или что-то в этом роде, я не знаю никакой помощи?

1 Ответ

0 голосов
/ 04 октября 2018

Я бы попытался решить эту проблему с помощью одного из следующих подходов:

  1. Используя общую строку подключения устройства:
    a) перейдите в IoT Hub и из «Политики общего доступа» получитестрока подключения для политики 'device' (например, HostName = iothub.azure-devices.net; SharedAccessKeyName = устройство; SharedAccessKey = abcd1234)
    b) Это общая строка подключения. Если добавить "DeviceId = "это будет характерно для вашего устройства, и IotHub сможет идентифицировать ваше новое / существующее устройство (например, HostName = iothub.azure-devices.net; SharedAccessKeyName = device; SharedAccessKey = abcd1234; DeviceId = device001)
  2. Использование автоматической инициализации устройства с помощью Служба инициализации устройства Azure . Я никогда не использовал его лично, но он должен работать. Кроме того, такой подход должен быть, если у вас естьдействительно большое количество устройств.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...