如何以IOTHUBMESSAGE_STRING格式发送Azure云到设备消息?

时间:2019-10-29 21:47:36

标签: cloud azure-iot-hub

我正在使用Azure IOT SDK,尝试使用字符串正文将Cloud发送到Device Message,并在SDK中接收它。无论我发送什么,SDK均以字节数组格式表示。如何从云端向设备SDK发送字符串而不是字节数组?

这是我遵循的代码示例: https://github.com/Azure/azure-iot-sdk-c/blob/master/iothub_client/samples/iothub_ll_c2d_sample/iothub_ll_c2d_sample.c

这是我的回叫:

IOTHUBMESSAGE_DISPOSITION_RESULT CAzureProcessor::ReceiveMessageCallback(IOTHUB_MESSAGE_HANDLE message, void* userContextCallback)
{
    CMyObject* pObject = (CMyObject*)userContextCallback;
    if (pObject != NULL)
    {
       IOTHUBMESSAGE_CONTENT_TYPE content_type = IoTHubMessage_GetContentType(message);
        if (content_type == IOTHUBMESSAGE_STRING)
       {
            //do stuff
       }
    }
    return IOTHUBMESSAGE_ACCEPTED;
}

我的问题是我永远也不会进入“垃圾箱”,因为当我从Azure门户的“消息发送到设备”页面或设备浏览器发送C2D消息时,IoTHubMessage_GetContentType总是返回IOTHUBMESSAGE_BYTEARRAY。我该如何从这两点之一发送一个字符串?

如果有帮助,这是我尝试发送的字符串:

  

[{“ devicename”:“我的中华民国”,“别名”:“海拔”,“值”:100}]

1 个答案:

答案 0 :(得分:0)

不知道您是否查看过这篇文章,因为我使用了给定的相同解决方案的变体,并且它对我来说很适合进行C2D通信。

Sending Cloud to Device Messages using IoT DevKit and Azure IoT Hub - Device Code

希望这会有所帮助。