我正在使用Azure IOT SDK,尝试使用字符串正文将Cloud发送到Device Message,并在SDK中接收它。无论我发送什么,SDK均以字节数组格式表示。如何从云端向设备SDK发送字符串而不是字节数组?
这是我的回叫:
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}]
答案 0 :(得分:0)
不知道您是否查看过这篇文章,因为我使用了给定的相同解决方案的变体,并且它对我来说很适合进行C2D通信。
Sending Cloud to Device Messages using IoT DevKit and Azure IoT Hub - Device Code
希望这会有所帮助。