- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经思考这个问题很长时间了。我正在打开从 ESP32 到 NodeJS 后端的 websocket 连接。收到消息时,将使用 ArduinoJSON 解析内容。
我将解析的内容存储在全局变量中,以便我可以在 void Loop() 中访问它们。每次收到新消息时,它们都会被覆盖。事情应该是这样的。
变量声明:
uint8_t brightness = 10;
uint8_t lastMillis = 0;
int ArrayPointer = 0;
int interval = 2000;
bool immediate = true;
const size_t capacity = JSON_ARRAY_SIZE(32) + JSON_OBJECT_SIZE(1) + 290;
无效Setup()之后
void onMessageCallback(WebsocketsMessage message) {
Serial.print("Got Message: ");
DynamicJsonBuffer jsonBuffer(capacity);
JsonObject & JSONResponse = jsonBuffer.parseObject(message);
JsonArray & PixelArray = JSONResponse["frame"];
brightness = JSONResponse["brightness"];
ArrayPointer = 0;
immediate = true;
}
void loop() {
client.poll();
if(millis() - lastMillis >= interval || immediate == true) {
// Here I would like to access the Variable PixelArray
lastMillis = millis();
}
}
当然,我无法在 void 循环中访问 PixelArray,因为它的范围不同。现在我需要一种方法来使 PixelArray 全局可访问。
我尝试过的:
希望有人能帮助我;)
提前致谢;)
PS:目前我使用的是ArduinoJson 5,但升级没有问题。
最佳答案
不要那样做。
您应该仅使用 ArduinoJson 来序列化和反序列化 JSON 对象,而不是存储程序状态。 Its documentation makes that very clear.
执行此操作的正确方法(ArduinoJSON 包设计的使用方式)是维护内部数据结构并将 JSON 对象序列化和反序列化到其中。
因此,您将拥有一个全局变量,它将作为 PixelArray 的内部表示形式,然后在收到 JSON 消息时将 JsonArray 中的值复制到其中。您在这里正确使用了亮度
;您应该对 PixelArray
执行相同的操作。
关于c - 使 ArduinoJSON 数组全局可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58717829/
我在运行 https://github.com/bblanchon/ArduinoJson 中的示例时遇到问题 我已经安装了该库并运行了一个简单的示例。 /* * Arduino JSON libra
我已经思考这个问题很长时间了。我正在打开从 ESP32 到 NodeJS 后端的 websocket 连接。收到消息时,将使用 ArduinoJSON 解析内容。 我将解析的内容存储在全局变量中,以便
我正在绘制草图,我正在使用 ArduinoJSON。我想我可能会解决这个问题,看看人们是否看到了这个错误。 WifiNest.cpp.o:(.text._ZN11ArduinoJson9JsonArr
我正在尝试使用 ArduinoJson 来解析 Google 的 quickdraw 数据集,其中包含 .ndjson 文件,其中包含多个对象。我想出了如何使用以下简单代码检索文件中的第一个对象: D
我无法获得使用 ArduinoJson 库解析此 JSON 的正确方法 这是我需要解析的结果 json。 { "Error": false, "Message": "Success", "Sensor
在有人将其标记为重复之前,我已经找到了这两个链接,但它们都没有完全适用,尽管我至少实现了其中的一点点。 Buffer gets overwritten Arduino reading json fro
我是一名优秀的程序员,十分优秀!