【以下的问题经过翻译处理】 由于我的问题似乎是由AWS嵌入式C SDK引起的,所以我是通过IT支持来到这里的。我正在使用CC3235S编程板。
我已经成功地发布、订阅和更新了Shadows/Topics,但是从发布的topic接收JSON负载一直是一个挑战。我在我的回调函数中设置了断点,但是除非我将超时秒数设置为0,否则它们永远不会被命中,这会导致立即超时。在超时、拒绝或接受状态下应该会调用回调函数。
我的thing/shadow/get/accepted主题正在发布。问题在于我无法将其捕获到我的微控制器中。
我还可以告诉您,我的AWS Iot Core/Thing策略不是问题。我已经为测试尽可能宽松地设置了权限。
我已经确认客户端订阅了/shadow/get/rejected+ /accepted主题,并确认Shadow可以正常在我的设备中更新。
我已经尝试过:
- 在我的GET和UPDATE函数之后添加aws_iot_shadow_yield()/aws_iot_mqtt_yield()
- 不同的超时时间
- 将持久性订阅参数设置为true和false
- 调整权限,然后将它们恢复到已知的好的值
返回代码始终对此例程中的所有aws函数返回SUCCESS,并且在GET函数期间,我已经确认客户端正在连接到AWS。
我的GET函数:
IoT_Error_t rcGS;
rcGS = aws_iot_shadow_get(&client, AWS_IOT_MY_THING_NAME, getShadowCallback, NULL, 5, true);
我的GET函数回调:
static void getShadowCallback(const char *pThingName, ShadowActions_t action, Shadow_Ack_Status_t status,
const char *pReceivedJsonDocument, void *pContextData){
IOT_UNUSED(action);
IOT_UNUSED(pContextData);
IOT_UNUSED(pReceivedJsonDocument