gpt4 book ai didi

c - 来自脚本的 MQTT 有效负载

转载 作者:行者123 更新时间:2023-11-30 19:31:45 25 4
gpt4 key购买 nike

我有这段代码用于编写和发送 MQTT 有效负载。

snprintf_P(mqtt_data, 
sizeof(mqtt_data),
PSTR("{\"" D_JSON_SYNC "\":%d,\"" D_JSON_LOW "\":%d,\"" D_JSON_HIGH "\":%d,\"" D_JSON_DATA "\":\"%06X\",\"" D_CMND_RFKEY "\":%s, \"" D_TOPIC "\":%s}"),
sync_time,
low_time,
high_time,
received_id,
rfkey,
Settings.mqtt_topic);
MqttPublishPrefixTopic_P(6, PSTR(D_RFRECEIVED));

您可以看到“Settings.mqtt_topic”是消息中包含的“topic”的值。

这是收到的消息

{"Sync":12230,"Low":390,"High":1190,"Data":"596F91","RfKey":1, "Topic":10101019}

我还有另一个 MQTT 负载代码。

snprintf_P(mqtt_data, 
sizeof(mqtt_data),
S_JSON_COMMAND_INDEX_SVALUE,
D_CMND_RFKEY,
sonoff_bridge_learn_key,
D_LEARNED);
MqttPublishPrefixTopic_P(5, PSTR(D_CMND_RFKEY));

这是收到的消息

{"Rfkey1":Learned}

有人可以给我一种方法来将“主题”包含在第二个代码的有效负载中吗?

我需要接收这样的消息

{"Rfkey1":Learned, "Topic":10101019}

尝试了好几种方法都没有成功。

我尝试过这样的事情

snprintf_P(mqtt_data, 
sizeof(mqtt_data),
S_JSON_COMMAND_INDEX_SVALUE,
D_CMND_RFKEY,
D_TOPIC,
sonoff_bridge_learn_key,
D_LEARNED,
Settings.mqtt_topic);

最佳答案

这看起来只是使用 snprintf (doc here )

这需要 3 个初始参数

  1. 输出缓冲区
  2. 输出缓冲区的大小
  3. 用于构建输出的格式字符串

这 3 个参数后面的参数是要插入到格式字符串中的值。您不能只在末尾添加额外的值而不更新格式字符串以及放置它们的位置以及它们应采用的格式。

您尚未包含第二个示例的格式字符串,因此我无法建议如何编辑它。

关于c - 来自脚本的 MQTT 有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48050135/

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