完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试实现 ESP8266WebServer 以使其成为服务器页面。只要所有内容都在我的核心脚本中,它就可以正常工作,但当它移入外部库时(对于我的项目,此功能属于该库),它就无法正常工作。当我这样做时,它只提供一个页面,之后 Firefox 说“Firefox 无法建立与服务器的连接”,仅此而已,直到我重置它。与此同时,它确实会响应 ping。
由于我的代码分布在多个类中,而且太大而无法在此处全部发布(而且我还没有设置 git),特此提供相关片段。设置未完成(它添加了用于 OTA 和连接到 WiFi 的代码,所有这些都很好用)。函数循环完成,这就是其中的全部内容。 ESP8266WebServer 的其他值得注意的行为是第一个请求需要大约 5 秒才能得到服务,而任何后续请求都会立即出现。将我的 PC 和 ESP8266 连接到同一个 WiFi 路由器(PC 有线连接)。 .ino 脚本: 代码:全选void setup() { master.begin(); } void loop() { master.execute(); ArduinoOTA.handle(); } 来自 master.cpp: 代码:全选void HydroMonitorMaster::begin() { Serial.print(F("Size (in bytes) of settings: ")); Serial.println(String(sizeof(settings))); // Initialise the EEPROM storage. EEPROM.begin(EEPROM_SIZE); // Start by trying to read the existing settings from flash storage. readSettings(); // Set up the http request handlers. server.on("/", std::bind(&HydroMonitorMaster::handleRoot, this)); server.begin(); yield(); return; } void HydroMonitorMaster::execute() { // Check for incoming connections. server.handleClient(); } 来自 master.h: 代码:全选public: void execute(void); private: void handleRoot(); 现在,当我将以下内容添加到 master 时,它起作用了: 代码:全选void HydroMonitorMaster::handleRoot() { server.send(200, "text/html", "Request for ROOT received."); } 但是当我想将 html 响应卸载到第二个类时,它失败了。该页面在我第一次请求时加载,但之后就不再加载了。 master.cpp 的替代代码: 代码:全选void HydroMonitorMaster::handleRoot() { network.htmlResponse(server, "test HTML network class response!"); } 这会调用 HydromonitorNetwork.cpp 中的一个函数: 代码:全选void HydroMonitorNetwork::htmlResponse(ESP8266WebServer server, String response) { server.send(200, "text/html", response); return; } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
142 浏览 1 评论
550浏览 6评论
460浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
442浏览 5评论
444浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 00:06 , Processed in 0.732174 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号