file - 有没有办法让 Arduino 服务器将现有的 .html 文件发送到 Arduino 客户端?

标签 file text import arduino arduino-uno

我正在为 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/

相关文章:

python - 只读 tkinter 文本小部件

jQuery 如何在文本上制作卡拉 OK 效果?

c# - 如何在文档末尾插入文本

c++ - 如何将文件读入元组 vector ?

php - 如何将一个目录移动到另一个目录?

python - 如何使用 Python 实现最大写入速度?

javascript - 在 Create React App 中设置导入的全局服务

python - 根据路径列表导入图像

mysql - 在 Yii2 中导入 Excel

java - 无法在 GNU/Linux 上使用 File.renameTo() 更改文件名