【问题标题】:Sending Data in JSON schema using AT Commands使用 AT 命令以 JSON 模式发送数据
【发布时间】:2021-06-07 12:37:31
【问题描述】:

我正在建立与服务器的 MQTT 连接。 我需要使用 AT 命令以 JSON 模式格式将数据发送到服务器。
N58有方模块中使用的模块。使用 AT 命令建立连接并用于向/从服务器发布数据或订阅数据,它应该以 JSON 格式发生。
使用的 AT 命令是:

AT+MQTTPUB=1,1,<"topic_name">,<"data">

我需要发送 JSON 模式来代替数据。
寻找任何建议/帮助。

源代码基于C。

【问题讨论】:

  • JSON 样式转义是否适合 data 引号转义格式? ...仅供参考,如果您正在寻找可以转换为/从 JSON 转换的软类型系统,您可以查看来自facil.io 的 FIOBJ(我是作者)。下一个版本正在开发中this GitHub repo
  • 你看过the Neoway N58 manual吗?
  • 仅供参考:请求帮助查找图书馆的问题被认为是题外话,可能会被关闭。图书馆搜索有更好的论坛/网站。

标签: c json parsing at-command


【解决方案1】:

通过 AT 命令发送 JSON 的问题在于它包含双引号 ",不幸的是,根据 AT 命令 ETSI 规范将其解释为字符串参数的开头。因此,在许多模块中发生的情况是,发送 JSON 字符串作为参数是不可能的。

一些调制解调器供应商通过启动在线模式来解决这个问题,在这种模式下数据可以原始发送。
N58 使用不同的策略,即转义特殊字符。在AT command guide 中称为数据链接转义

虽然指南可能会更好(没有明确解释数据链接转义),但我们可以从示例中推断出来(例如参见AT+UDPSEND 中的那个):为了转义" 字符,只需像在 C 字符串中那样写\"。示例:

AT+MQTTPUB=1,1,"topic_name","{\"menu\":{\"id\":\"1\",\"value\":\"2\"}}"

【讨论】:

  • 感谢您的回复。使用转义序列后,格式正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
相关资源
最近更新 更多