Я использую пакет SDK для устройств Azure IoT для C, чтобы создать приложение устройства, которое взаимодействует с порталом Azure IoT и обновляет своего двойника устройства.
Использует ли двойник устройства для связи протокол HTTP или MQTT?
Я думал, что это MQTT. Однако я получаю коды состояния ответа HTTP, когда обновляю сообщаемые свойства двойника устройства.
Когда я создаю обработчик устройства в своем коде, я указываю MQTT в качестве транспортного протокола, поэтому я запутался.
Фрагмент кода для создания обработчика устройства:
IOTHUB_CLIENT_TRANSPORT_PROVIDER iothub_transport = MQTT_Protocol;
device_handler = IoTHubDeviceClient_CreateFromDeviceAuth(user_ctx.iothub_uri, user_ctx.device_id, iothub_transport
Фрагмент кода для обновления сообщаемых свойств:
char* reportedProperties = SerializeEnergyInfoToJson(&info);// my own function which returns a JSON char* created from my data.
(void)IoTHubDeviceClient_SendReportedState(device_handler, (const unsigned char*)reportedProperties, strlen(reportedProperties), ReportedStateCallback, NULL);