修改 Arduino 库中的静态变量
Posted
技术标签:
【中文标题】修改 Arduino 库中的静态变量【英文标题】:Modify static variable in Arduino libraries 【发布时间】:2017-09-06 12:01:21 【问题描述】:Arduino 上的许多基于 Web/Http 的库都带有自己预定义的 Web 内容,例如
static const char serverIndex[] PROGMEM =
R"(<html><body>....</body></html>)";
除了修改库,有没有办法直接在程序草图中干预变量内容?
问候,
【问题讨论】:
【参考方案1】:您可以像更改任何其他静态类属性一样更改静态类属性,但不能更改存储在 PROGMEM 中的数据。这就是为什么这个变量也被称为 const 的原因。
PROGMEM 数据存储在闪存中,是草图二进制文件的一部分。
一种可能的解决方案是使用SPIFFS,但这需要更改库代码。
另一种解决方案是编写自己的派生类:参见Are static variables in a base class shared by all derived classes?
但这很混乱,所以恕我直言,改成原来的课程更容易。
【讨论】:
我的意思是在编译时,比如覆盖声明/定义本身,以便它占用我的。 在编译时不可能有两个相同变量名的定义(你的和他们的)。由于 arduino 库通常是开源的,您可能希望获取库源并根据需要对其进行修改。以上是关于修改 Arduino 库中的静态变量的主要内容,如果未能解决你的问题,请参考以下文章