gpt4 book ai didi

c++ - Azure IoT Edge C++ 模块未将设备发送到云遥测

转载 作者:行者123 更新时间:2023-12-03 07:02:51 25 4
gpt4 key购买 nike

我编写了一个 IoT Edge C++ 模块,该模块使用以下函数调用发送事件输出:

bool IoTEdgeClient::sendMessageAsync(std::string message)
{
bool retVal = false;

LOGGER_TRACE(IOT_CONNECTION_LOG, className + "::sendMessageAsync(...) START");
LOGGER_DEBUG(IOT_CONNECTION_LOG, className + "::sendMessageAsync(...) message : " << message);

Poco::Mutex::ScopedLock lock(_accessMutex);

MESSAGE_INSTANCE *messageInstance = CreateMessageInstance(message);

IOTHUB_CLIENT_RESULT clientResult = IoTHubModuleClient_LL_SendEventToOutputAsync(_iotHubModuleClientHandle, messageInstance->messageHandle, "output1", SendConfirmationCallback, messageInstance);
if (clientResult != IOTHUB_CLIENT_OK)
{
LOGGER_ERROR(IOT_CONNECTION_LOG, className + "::sendMessageAsync(...) ERROR : " << message << " Message id: " << messageInstance->messageTrackingId);
retVal = false;
}
else
{
retVal = true;
}

LOGGER_TRACE(IOT_CONNECTION_LOG, className + "::sendMessageAsync(...) END");
return retVal;
}

函数调用 IoTHubModuleClient_LL_SendEventToOutputAsync 的结果始终为 IOTHUB_CLIENT_OK。我的模块名称是MicroServer,配置的路由是:

FROM /messages/modules/MicroServer/outputs/output1 INTO $upstream

我没有看到 SendConfirmationCallback 函数被调用。此外,我没有看到 IoT 中心中出现任何设备到云消息。有什么想法为什么会发生这种情况以及如何解决它吗?

最佳答案

事实证明,我每秒至少需要调用这个函数几次

IoTHubModuleClient_LL_DoWork(_iotHubModuleClientHandle);

我没有这样做。结果,代码无法正常工作。一旦我开始这样做。代码刚刚工作。

关于c++ - Azure IoT Edge C++ 模块未将设备发送到云遥测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72035480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com