我正在为 Arduino 构建一个单页应用程序。它以图形方式在连接 wifi 的平板电脑上显示模拟引脚值。
我已经构建了草图,但想清理它。我已经能够将草图上传到我的(Uno Wifi Rev 2)Arduino,初始化 Wifi,并使用平板电脑连接到它。我可以将静态页面“框架”发送到平板电脑。 该静态框架能够使用 XMLHttpRequest 对象请求和接收 Arduino 模拟引脚值。
但是发送庞大的静态页面很笨重。教程会做类似的事情,
client.println("<html><body>");
client.println("Hello World!");
client.println("</body></html>");
我试图巧妙地创建一个 FileText.h 头文件:
#define constFileText=
"<html><body>"
"Hello World!"
"</body></html>";
并将其与:
#include "FileText.h"
client.println(constFileText);
我想做的是创建一个标准的 FileText.html:
Hello World !
然后用类似的东西处理它:
ifstream hFile ("FileText.html");
while (getline(hFile, strLine))
client.println(strLine);
这将使编辑 html 文件变得更加容易。它将消除包含所有那些 serial.println 调用的浪费。它还将消除常量值的最大长度限制。
有什么方法可以向 Arduino 编译器提供文本文件并让 Arduino 服务器将其发送给 Arduino 的客户端?
最佳答案
C++ 有“原始字符串文字”。您可以将常量字符串(不转义特殊字符)放入开始和结束“标记”之间的源代码中。您可以选择标签作为原始字符串中不存在的内容。在下面的例子中,标签是 =====
。
const char* s1 = R"=====(Hello
"World")=====";
与
相同const char* s2 = "Hello\n\"World\"";
通过这种方式,您可以将大字符串放入单独的 .h 文件中并包含它们。在 AVR 上使用 PROGMEM 来节省 RAM。
关于file - 有没有办法让 Arduino 服务器将现有的 .html 文件发送到 Arduino 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54358721/