我用NODEMCU ESP8266
控制沙发后面的LED灯带。我有一个网络服务器,每个循环中都用server.send()
发布HTML。现在,我希望网站显示led条的当前状态,但是我不能仅仅将变量集成到网站的HTML代码中,因为服务器显然会将其视为HTML,而不是实际读取变量。
//a variable I use for the LEDs
int colorCode;
// thats in the handler function
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
// thats the website
const char MAIN_page[] PROGMEM = R"=====(
<!DOCTYPE HTML>
<html lang="de">
...website...
</html>
)=====";
在将int colorCode
这样的变量通过server.send()
发送到服务器之前,如何将变量import numpy as np
from itertools import combinations
combos = np.array(list(combinations(range(1, 50), 6))) # build all combos
# combos is shape (13983816, 6)
filt = np.where(np.bincount(np.where(np.abs(
np.subtract(combos[:, :-1], combos[:, 1:])) == 1)[0]) <= 1)[0] # magic!
filtered = combos[filt]
# filtered is shape (12489092, 6)
集成到HTML中,我只需要一个小提示。
答案 0 :(得分:0)
类似的事情由OpenEVSE硬件项目完成,例如builds its JSON responses in Arduino strings(字符串JSON):
json += "{";
json += "\"rssi\":"+String(WiFi.RSSI(i));
json += ",\"hidden\":"+String(WiFi.isHidden(i)?"true":"false");
json += "}";
只要send()
收到正确的字符串类型,您就可以这样做。这将涉及删除PROGMEM
,可能是const
,并且可能为了方便起见使用高级字符串类。请注意,OpenEVSE选择保留HTML static的原因有多种:
实际上,程序存储器可以存储大字符串,但是它们不是动态的。如果在编译时不知道该字符串,则必须在运行时对其进行汇编,并且将使用RAM来跟踪它。只要页面很小且变量很少,就可以用字符串构建网页。