mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-07 16:23:38 +03:00
examples: format all .ino files
This formats all the example source files using Arduino style rules.
This commit is contained in:
parent
e226251b27
commit
61cd8d8385
@ -32,10 +32,11 @@ void setup() {
|
||||
|
||||
ArduinoOTA.onStart([]() {
|
||||
String type;
|
||||
if (ArduinoOTA.getCommand() == U_FLASH)
|
||||
if (ArduinoOTA.getCommand() == U_FLASH) {
|
||||
type = "sketch";
|
||||
else // U_SPIFFS
|
||||
} else { // U_SPIFFS
|
||||
type = "filesystem";
|
||||
}
|
||||
|
||||
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
|
||||
Serial.println("Start updating " + type);
|
||||
@ -48,11 +49,17 @@ void setup() {
|
||||
});
|
||||
ArduinoOTA.onError([](ota_error_t error) {
|
||||
Serial.printf("Error[%u]: ", error);
|
||||
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
|
||||
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
|
||||
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
|
||||
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
|
||||
else if (error == OTA_END_ERROR) Serial.println("End Failed");
|
||||
if (error == OTA_AUTH_ERROR) {
|
||||
Serial.println("Auth Failed");
|
||||
} else if (error == OTA_BEGIN_ERROR) {
|
||||
Serial.println("Begin Failed");
|
||||
} else if (error == OTA_CONNECT_ERROR) {
|
||||
Serial.println("Connect Failed");
|
||||
} else if (error == OTA_RECEIVE_ERROR) {
|
||||
Serial.println("Receive Failed");
|
||||
} else if (error == OTA_END_ERROR) {
|
||||
Serial.println("End Failed");
|
||||
}
|
||||
});
|
||||
ArduinoOTA.begin();
|
||||
Serial.println("Ready");
|
||||
|
@ -34,28 +34,30 @@ void setup() {
|
||||
analogWriteRange(1000);
|
||||
analogWrite(led_pin, 990);
|
||||
|
||||
for (int i=0; i<N_DIMMERS; i++)
|
||||
{
|
||||
for (int i = 0; i < N_DIMMERS; i++) {
|
||||
pinMode(dimmer_pin[i], OUTPUT);
|
||||
analogWrite(dimmer_pin[i], 50);
|
||||
}
|
||||
|
||||
ArduinoOTA.setHostname(host);
|
||||
ArduinoOTA.onStart([]() { // switch off all the PWMs during upgrade
|
||||
for(int i=0; i<N_DIMMERS;i++)
|
||||
for (int i = 0; i < N_DIMMERS; i++) {
|
||||
analogWrite(dimmer_pin[i], 0);
|
||||
}
|
||||
analogWrite(led_pin, 0);
|
||||
});
|
||||
|
||||
ArduinoOTA.onEnd([]() { // do a fancy thing with our board led at end
|
||||
for (int i=0;i<30;i++)
|
||||
{
|
||||
for (int i = 0; i < 30; i++) {
|
||||
analogWrite(led_pin, (i * 100) % 1001);
|
||||
delay(50);
|
||||
}
|
||||
});
|
||||
|
||||
ArduinoOTA.onError([](ota_error_t error) { (void)error; ESP.restart(); });
|
||||
ArduinoOTA.onError([](ota_error_t error) {
|
||||
(void)error;
|
||||
ESP.restart();
|
||||
});
|
||||
|
||||
/* setup the OTA server */
|
||||
ArduinoOTA.begin();
|
||||
|
@ -6,15 +6,15 @@
|
||||
#include <EEPROM.h>
|
||||
|
||||
/*
|
||||
* This example serves a "hello world" on a WLAN and a SoftAP at the same time.
|
||||
* The SoftAP allow you to configure WLAN parameters at run time. They are not setup in the sketch but saved on EEPROM.
|
||||
*
|
||||
* Connect your computer or cell phone to wifi network ESP_ap with password 12345678. A popup may appear and it allow you to go to WLAN config. If it does not then navigate to http://192.168.4.1/wifi and config it there.
|
||||
* Then wait for the module to connect to your wifi and take note of the WLAN IP it got. Then you can disconnect from ESP_ap and return to your regular WLAN.
|
||||
*
|
||||
* Now the ESP8266 is in your network. You can reach it through http://192.168.x.x/ (the IP you took note of) or maybe at http://esp8266.local too.
|
||||
*
|
||||
* This is a captive portal because through the softAP it will redirect any http request to http://192.168.4.1/
|
||||
This example serves a "hello world" on a WLAN and a SoftAP at the same time.
|
||||
The SoftAP allow you to configure WLAN parameters at run time. They are not setup in the sketch but saved on EEPROM.
|
||||
|
||||
Connect your computer or cell phone to wifi network ESP_ap with password 12345678. A popup may appear and it allow you to go to WLAN config. If it does not then navigate to http://192.168.4.1/wifi and config it there.
|
||||
Then wait for the module to connect to your wifi and take note of the WLAN IP it got. Then you can disconnect from ESP_ap and return to your regular WLAN.
|
||||
|
||||
Now the ESP8266 is in your network. You can reach it through http://192.168.x.x/ (the IP you took note of) or maybe at http://esp8266.local too.
|
||||
|
||||
This is a captive portal because through the softAP it will redirect any http request to http://192.168.4.1/
|
||||
*/
|
||||
|
||||
/* Set these to your desired softAP credentials. They are not configurable at runtime */
|
||||
|
@ -1,19 +1,19 @@
|
||||
/*
|
||||
* EEPROM Clear
|
||||
*
|
||||
* Sets all of the bytes of the EEPROM to 0.
|
||||
* This example code is in the public domain.
|
||||
EEPROM Clear
|
||||
|
||||
Sets all of the bytes of the EEPROM to 0.
|
||||
This example code is in the public domain.
|
||||
|
||||
*/
|
||||
|
||||
#include <EEPROM.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
EEPROM.begin(512);
|
||||
// write a 0 to all 512 bytes of the EEPROM
|
||||
for (int i = 0; i < 512; i++)
|
||||
for (int i = 0; i < 512; i++) {
|
||||
EEPROM.write(i, 0);
|
||||
}
|
||||
|
||||
// turn the LED on when we're done
|
||||
pinMode(13, OUTPUT);
|
||||
@ -21,6 +21,5 @@ void setup()
|
||||
EEPROM.end();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*
|
||||
* EEPROM Read
|
||||
*
|
||||
* Reads the value of each byte of the EEPROM and prints it
|
||||
* to the computer.
|
||||
* This example code is in the public domain.
|
||||
EEPROM Read
|
||||
|
||||
Reads the value of each byte of the EEPROM and prints it
|
||||
to the computer.
|
||||
This example code is in the public domain.
|
||||
*/
|
||||
|
||||
#include <EEPROM.h>
|
||||
@ -12,8 +12,7 @@
|
||||
int address = 0;
|
||||
byte value;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// initialize serial and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -22,8 +21,7 @@ void setup()
|
||||
EEPROM.begin(512);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// read a byte from the current address of the EEPROM
|
||||
value = EEPROM.read(address);
|
||||
|
||||
@ -37,8 +35,9 @@ void loop()
|
||||
|
||||
// there are only 512 bytes of EEPROM, from 0 to 511, so if we're
|
||||
// on address 512, wrap around to address 0
|
||||
if (address == 512)
|
||||
if (address == 512) {
|
||||
address = 0;
|
||||
}
|
||||
|
||||
delay(500);
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*
|
||||
* EEPROM Write
|
||||
*
|
||||
* Stores values read from analog input 0 into the EEPROM.
|
||||
* These values will stay in the EEPROM when the board is
|
||||
* turned off and may be retrieved later by another sketch.
|
||||
EEPROM Write
|
||||
|
||||
Stores values read from analog input 0 into the EEPROM.
|
||||
These values will stay in the EEPROM when the board is
|
||||
turned off and may be retrieved later by another sketch.
|
||||
*/
|
||||
|
||||
#include <EEPROM.h>
|
||||
@ -12,13 +12,11 @@
|
||||
// we're going to write to next)
|
||||
int addr = 0;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
EEPROM.begin(512);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// need to divide by 4 because analog inputs range from
|
||||
// 0 to 1023 and each byte of the EEPROM can only hold a
|
||||
// value from 0 to 255.
|
||||
@ -33,8 +31,7 @@ void loop()
|
||||
// the EEPROM, so go back to 0 when we hit 512.
|
||||
// save all changes to the flash.
|
||||
addr = addr + 1;
|
||||
if (addr == 512)
|
||||
{
|
||||
if (addr == 512) {
|
||||
addr = 0;
|
||||
EEPROM.commit();
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* Authorization.ino
|
||||
*
|
||||
* Created on: 09.12.2015
|
||||
*
|
||||
Authorization.ino
|
||||
|
||||
Created on: 09.12.2015
|
||||
|
||||
*/
|
||||
|
||||
#include <Arduino.h>
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* BasicHTTPClient.ino
|
||||
*
|
||||
* Created on: 24.05.2015
|
||||
*
|
||||
BasicHTTPClient.ino
|
||||
|
||||
Created on: 24.05.2015
|
||||
|
||||
*/
|
||||
|
||||
#include <Arduino.h>
|
||||
|
@ -22,7 +22,9 @@ const char *uri = "/digest-auth/auth/admin/admin/MD5";
|
||||
|
||||
String exractParam(String& authReq, const String& param, const char delimit) {
|
||||
int _begin = authReq.indexOf(param);
|
||||
if (_begin==-1) return "";
|
||||
if (_begin == -1) {
|
||||
return "";
|
||||
}
|
||||
return authReq.substring(_begin + param.length(), authReq.indexOf(delimit, _begin + param.length()));
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* reuseConnection.ino
|
||||
*
|
||||
* Created on: 22.11.2015
|
||||
*
|
||||
reuseConnection.ino
|
||||
|
||||
Created on: 22.11.2015
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* StreamHTTPClient.ino
|
||||
*
|
||||
* Created on: 24.05.2015
|
||||
*
|
||||
StreamHTTPClient.ino
|
||||
|
||||
Created on: 24.05.2015
|
||||
|
||||
*/
|
||||
|
||||
#include <Arduino.h>
|
||||
|
@ -156,8 +156,7 @@ static const uint8_t rsakey[] PROGMEM = {
|
||||
0xe1, 0x40, 0x2b, 0xe3, 0xbd, 0x98, 0x44, 0xad
|
||||
};
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
|
||||
Serial.begin(115200);
|
||||
Serial.println();
|
||||
@ -182,7 +181,6 @@ void setup()
|
||||
"'%s'\n", host, update_path, update_username, update_password);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
httpServer.handleClient();
|
||||
}
|
||||
|
@ -1,58 +1,58 @@
|
||||
/*
|
||||
* ESP8266 LLMNR responder sample
|
||||
* Copyright (C) 2017 Stephen Warren <swarren@wwwdotorg.org>
|
||||
*
|
||||
* Based on:
|
||||
* ESP8266 Multicast DNS (port of CC3000 Multicast DNS library)
|
||||
* Version 1.1
|
||||
* Copyright (c) 2013 Tony DiCola (tony@tonydicola.com)
|
||||
* ESP8266 port (c) 2015 Ivan Grokhotkov (ivan@esp8266.com)
|
||||
* MDNS-SD Suport 2015 Hristo Gochkov
|
||||
* Extended MDNS-SD support 2016 Lars Englund (lars.englund@gmail.com)
|
||||
*
|
||||
* License (MIT license):
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
ESP8266 LLMNR responder sample
|
||||
Copyright (C) 2017 Stephen Warren <swarren@wwwdotorg.org>
|
||||
|
||||
Based on:
|
||||
ESP8266 Multicast DNS (port of CC3000 Multicast DNS library)
|
||||
Version 1.1
|
||||
Copyright (c) 2013 Tony DiCola (tony@tonydicola.com)
|
||||
ESP8266 port (c) 2015 Ivan Grokhotkov (ivan@esp8266.com)
|
||||
MDNS-SD Suport 2015 Hristo Gochkov
|
||||
Extended MDNS-SD support 2016 Lars Englund (lars.englund@gmail.com)
|
||||
|
||||
License (MIT license):
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
*/
|
||||
/*
|
||||
* This is an example of an HTTP server that is accessible via http://esp8266/
|
||||
* (or perhaps http://esp8266.local/) thanks to the LLMNR responder.
|
||||
*
|
||||
* Instructions:
|
||||
* - Update WiFi SSID and password as necessary.
|
||||
* - Flash the sketch to the ESP8266 board.
|
||||
* - Windows:
|
||||
* - No additional software is necessary.
|
||||
* - Point your browser to http://esp8266/, you should see a response. In most
|
||||
* cases, it is important that you manually type the "http://" to force the
|
||||
* browser to search for a hostname to connect to, rather than perform a web
|
||||
* search.
|
||||
* - Alternatively, run the following command from the command prompt:
|
||||
* ping esp8266
|
||||
* - Linux:
|
||||
* - To validate LLMNR, install the systemd-resolve utility.
|
||||
* - Execute the following command:
|
||||
* systemd-resolve -4 -p llmnr esp8266
|
||||
* - It may be possible to configure your system to use LLMNR for all name
|
||||
* lookups. However, that is beyond the scope of this description.
|
||||
*
|
||||
This is an example of an HTTP server that is accessible via http://esp8266/
|
||||
(or perhaps http://esp8266.local/) thanks to the LLMNR responder.
|
||||
|
||||
Instructions:
|
||||
- Update WiFi SSID and password as necessary.
|
||||
- Flash the sketch to the ESP8266 board.
|
||||
- Windows:
|
||||
- No additional software is necessary.
|
||||
- Point your browser to http://esp8266/, you should see a response. In most
|
||||
cases, it is important that you manually type the "http://" to force the
|
||||
browser to search for a hostname to connect to, rather than perform a web
|
||||
search.
|
||||
- Alternatively, run the following command from the command prompt:
|
||||
ping esp8266
|
||||
- Linux:
|
||||
- To validate LLMNR, install the systemd-resolve utility.
|
||||
- Execute the following command:
|
||||
systemd-resolve -4 -p llmnr esp8266
|
||||
- It may be possible to configure your system to use LLMNR for all name
|
||||
lookups. However, that is beyond the scope of this description.
|
||||
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
@ -8,8 +8,7 @@ const char* password = "..............";
|
||||
ESP8266WebServer wwwserver(80);
|
||||
String content;
|
||||
|
||||
static void handleRoot(void)
|
||||
{
|
||||
static void handleRoot(void) {
|
||||
content = F("<!DOCTYPE HTML>\n<html>Hello world from ESP8266");
|
||||
content += F("<p>");
|
||||
content += F("</html>");
|
||||
@ -17,8 +16,7 @@ static void handleRoot(void)
|
||||
wwwserver.send(200, F("text/html"), content);
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
||||
// Connect to WiFi network
|
||||
@ -44,7 +42,6 @@ void setup()
|
||||
NBNS.begin("ESP");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
wwwserver.handleClient();
|
||||
}
|
||||
|
@ -41,7 +41,9 @@ void setup() {
|
||||
Serial.printf("Ready!\n");
|
||||
} else {
|
||||
Serial.printf("WiFi Failed\n");
|
||||
while(1) delay(100);
|
||||
while (1) {
|
||||
delay(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,31 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Majenko Technologies
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
Copyright (c) 2015, Majenko Technologies
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* * Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this
|
||||
* list of conditions and the following disclaimer in the documentation and/or
|
||||
* other materials provided with the distribution.
|
||||
*
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
* * Neither the name of Majenko Technologies nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
@ -52,30 +52,47 @@ String formatBytes(size_t bytes){
|
||||
}
|
||||
|
||||
String getContentType(String filename) {
|
||||
if(server.hasArg("download")) return "application/octet-stream";
|
||||
else if(filename.endsWith(".htm")) return "text/html";
|
||||
else if(filename.endsWith(".html")) return "text/html";
|
||||
else if(filename.endsWith(".css")) return "text/css";
|
||||
else if(filename.endsWith(".js")) return "application/javascript";
|
||||
else if(filename.endsWith(".png")) return "image/png";
|
||||
else if(filename.endsWith(".gif")) return "image/gif";
|
||||
else if(filename.endsWith(".jpg")) return "image/jpeg";
|
||||
else if(filename.endsWith(".ico")) return "image/x-icon";
|
||||
else if(filename.endsWith(".xml")) return "text/xml";
|
||||
else if(filename.endsWith(".pdf")) return "application/x-pdf";
|
||||
else if(filename.endsWith(".zip")) return "application/x-zip";
|
||||
else if(filename.endsWith(".gz")) return "application/x-gzip";
|
||||
if (server.hasArg("download")) {
|
||||
return "application/octet-stream";
|
||||
} else if (filename.endsWith(".htm")) {
|
||||
return "text/html";
|
||||
} else if (filename.endsWith(".html")) {
|
||||
return "text/html";
|
||||
} else if (filename.endsWith(".css")) {
|
||||
return "text/css";
|
||||
} else if (filename.endsWith(".js")) {
|
||||
return "application/javascript";
|
||||
} else if (filename.endsWith(".png")) {
|
||||
return "image/png";
|
||||
} else if (filename.endsWith(".gif")) {
|
||||
return "image/gif";
|
||||
} else if (filename.endsWith(".jpg")) {
|
||||
return "image/jpeg";
|
||||
} else if (filename.endsWith(".ico")) {
|
||||
return "image/x-icon";
|
||||
} else if (filename.endsWith(".xml")) {
|
||||
return "text/xml";
|
||||
} else if (filename.endsWith(".pdf")) {
|
||||
return "application/x-pdf";
|
||||
} else if (filename.endsWith(".zip")) {
|
||||
return "application/x-zip";
|
||||
} else if (filename.endsWith(".gz")) {
|
||||
return "application/x-gzip";
|
||||
}
|
||||
return "text/plain";
|
||||
}
|
||||
|
||||
bool handleFileRead(String path) {
|
||||
DBG_OUTPUT_PORT.println("handleFileRead: " + path);
|
||||
if(path.endsWith("/")) path += "index.htm";
|
||||
if (path.endsWith("/")) {
|
||||
path += "index.htm";
|
||||
}
|
||||
String contentType = getContentType(path);
|
||||
String pathWithGz = path + ".gz";
|
||||
if (SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)) {
|
||||
if(SPIFFS.exists(pathWithGz))
|
||||
if (SPIFFS.exists(pathWithGz)) {
|
||||
path += ".gz";
|
||||
}
|
||||
File file = SPIFFS.open(path, "r");
|
||||
server.streamFile(file, contentType);
|
||||
file.close();
|
||||
@ -85,58 +102,75 @@ bool handleFileRead(String path){
|
||||
}
|
||||
|
||||
void handleFileUpload() {
|
||||
if(server.uri() != "/edit") return;
|
||||
if (server.uri() != "/edit") {
|
||||
return;
|
||||
}
|
||||
HTTPUpload& upload = server.upload();
|
||||
if (upload.status == UPLOAD_FILE_START) {
|
||||
String filename = upload.filename;
|
||||
if(!filename.startsWith("/")) filename = "/"+filename;
|
||||
if (!filename.startsWith("/")) {
|
||||
filename = "/" + filename;
|
||||
}
|
||||
DBG_OUTPUT_PORT.print("handleFileUpload Name: "); DBG_OUTPUT_PORT.println(filename);
|
||||
fsUploadFile = SPIFFS.open(filename, "w");
|
||||
filename = String();
|
||||
} else if (upload.status == UPLOAD_FILE_WRITE) {
|
||||
//DBG_OUTPUT_PORT.print("handleFileUpload Data: "); DBG_OUTPUT_PORT.println(upload.currentSize);
|
||||
if(fsUploadFile)
|
||||
if (fsUploadFile) {
|
||||
fsUploadFile.write(upload.buf, upload.currentSize);
|
||||
}
|
||||
} else if (upload.status == UPLOAD_FILE_END) {
|
||||
if(fsUploadFile)
|
||||
if (fsUploadFile) {
|
||||
fsUploadFile.close();
|
||||
}
|
||||
DBG_OUTPUT_PORT.print("handleFileUpload Size: "); DBG_OUTPUT_PORT.println(upload.totalSize);
|
||||
}
|
||||
}
|
||||
|
||||
void handleFileDelete() {
|
||||
if(server.args() == 0) return server.send(500, "text/plain", "BAD ARGS");
|
||||
if (server.args() == 0) {
|
||||
return server.send(500, "text/plain", "BAD ARGS");
|
||||
}
|
||||
String path = server.arg(0);
|
||||
DBG_OUTPUT_PORT.println("handleFileDelete: " + path);
|
||||
if(path == "/")
|
||||
if (path == "/") {
|
||||
return server.send(500, "text/plain", "BAD PATH");
|
||||
if(!SPIFFS.exists(path))
|
||||
}
|
||||
if (!SPIFFS.exists(path)) {
|
||||
return server.send(404, "text/plain", "FileNotFound");
|
||||
}
|
||||
SPIFFS.remove(path);
|
||||
server.send(200, "text/plain", "");
|
||||
path = String();
|
||||
}
|
||||
|
||||
void handleFileCreate() {
|
||||
if(server.args() == 0)
|
||||
if (server.args() == 0) {
|
||||
return server.send(500, "text/plain", "BAD ARGS");
|
||||
}
|
||||
String path = server.arg(0);
|
||||
DBG_OUTPUT_PORT.println("handleFileCreate: " + path);
|
||||
if(path == "/")
|
||||
if (path == "/") {
|
||||
return server.send(500, "text/plain", "BAD PATH");
|
||||
if(SPIFFS.exists(path))
|
||||
}
|
||||
if (SPIFFS.exists(path)) {
|
||||
return server.send(500, "text/plain", "FILE EXISTS");
|
||||
}
|
||||
File file = SPIFFS.open(path, "w");
|
||||
if(file)
|
||||
if (file) {
|
||||
file.close();
|
||||
else
|
||||
} else {
|
||||
return server.send(500, "text/plain", "CREATE FAILED");
|
||||
}
|
||||
server.send(200, "text/plain", "");
|
||||
path = String();
|
||||
}
|
||||
|
||||
void handleFileList() {
|
||||
if(!server.hasArg("dir")) {server.send(500, "text/plain", "BAD ARGS"); return;}
|
||||
if (!server.hasArg("dir")) {
|
||||
server.send(500, "text/plain", "BAD ARGS");
|
||||
return;
|
||||
}
|
||||
|
||||
String path = server.arg("dir");
|
||||
DBG_OUTPUT_PORT.println("handleFileList: " + path);
|
||||
@ -146,7 +180,9 @@ void handleFileList() {
|
||||
String output = "[";
|
||||
while (dir.next()) {
|
||||
File entry = dir.openFile("r");
|
||||
if (output != "[") output += ',';
|
||||
if (output != "[") {
|
||||
output += ',';
|
||||
}
|
||||
bool isDir = false;
|
||||
output += "{\"type\":\"";
|
||||
output += (isDir) ? "dir" : "file";
|
||||
@ -202,7 +238,9 @@ void setup(void){
|
||||
server.on("/list", HTTP_GET, handleFileList);
|
||||
//load editor
|
||||
server.on("/edit", HTTP_GET, []() {
|
||||
if(!handleFileRead("/edit.htm")) server.send(404, "text/plain", "FileNotFound");
|
||||
if (!handleFileRead("/edit.htm")) {
|
||||
server.send(404, "text/plain", "FileNotFound");
|
||||
}
|
||||
});
|
||||
//create file
|
||||
server.on("/edit", HTTP_PUT, handleFileCreate);
|
||||
@ -210,13 +248,16 @@ void setup(void){
|
||||
server.on("/edit", HTTP_DELETE, handleFileDelete);
|
||||
//first callback is called after the request has ended with all parsed arguments
|
||||
//second callback handles file uploads at that location
|
||||
server.on("/edit", HTTP_POST, [](){ server.send(200, "text/plain", ""); }, handleFileUpload);
|
||||
server.on("/edit", HTTP_POST, []() {
|
||||
server.send(200, "text/plain", "");
|
||||
}, handleFileUpload);
|
||||
|
||||
//called when the url is not defined here
|
||||
//use it to load content from SPIFFS
|
||||
server.onNotFound([]() {
|
||||
if(!handleFileRead(server.uri()))
|
||||
if (!handleFileRead(server.uri())) {
|
||||
server.send(404, "text/plain", "FileNotFound");
|
||||
}
|
||||
});
|
||||
|
||||
//get heap status, analog input value and all GPIO statuses in one json call
|
||||
|
@ -41,7 +41,9 @@ void setup() {
|
||||
//Digest Auth Method with Custom realm and empty Failure Response
|
||||
//return server.requestAuthentication(DIGEST_AUTH, www_realm);
|
||||
//Digest Auth Method with Custom realm and Failure Response
|
||||
{
|
||||
return server.requestAuthentication(DIGEST_AUTH, www_realm, authFailResponse);
|
||||
}
|
||||
server.send(200, "text/plain", "Login OK");
|
||||
});
|
||||
server.begin();
|
||||
|
@ -23,8 +23,9 @@ void setup() {
|
||||
ArduinoOTA.begin();
|
||||
|
||||
server.on("/", []() {
|
||||
if(!server.authenticate(www_username, www_password))
|
||||
if (!server.authenticate(www_username, www_password)) {
|
||||
return server.requestAuthentication();
|
||||
}
|
||||
server.send(200, "text/plain", "Login OK");
|
||||
});
|
||||
server.begin();
|
||||
|
@ -56,19 +56,33 @@ void returnFail(String msg) {
|
||||
|
||||
bool loadFromSdCard(String path) {
|
||||
String dataType = "text/plain";
|
||||
if(path.endsWith("/")) path += "index.htm";
|
||||
if (path.endsWith("/")) {
|
||||
path += "index.htm";
|
||||
}
|
||||
|
||||
if(path.endsWith(".src")) path = path.substring(0, path.lastIndexOf("."));
|
||||
else if(path.endsWith(".htm")) dataType = "text/html";
|
||||
else if(path.endsWith(".css")) dataType = "text/css";
|
||||
else if(path.endsWith(".js")) dataType = "application/javascript";
|
||||
else if(path.endsWith(".png")) dataType = "image/png";
|
||||
else if(path.endsWith(".gif")) dataType = "image/gif";
|
||||
else if(path.endsWith(".jpg")) dataType = "image/jpeg";
|
||||
else if(path.endsWith(".ico")) dataType = "image/x-icon";
|
||||
else if(path.endsWith(".xml")) dataType = "text/xml";
|
||||
else if(path.endsWith(".pdf")) dataType = "application/pdf";
|
||||
else if(path.endsWith(".zip")) dataType = "application/zip";
|
||||
if (path.endsWith(".src")) {
|
||||
path = path.substring(0, path.lastIndexOf("."));
|
||||
} else if (path.endsWith(".htm")) {
|
||||
dataType = "text/html";
|
||||
} else if (path.endsWith(".css")) {
|
||||
dataType = "text/css";
|
||||
} else if (path.endsWith(".js")) {
|
||||
dataType = "application/javascript";
|
||||
} else if (path.endsWith(".png")) {
|
||||
dataType = "image/png";
|
||||
} else if (path.endsWith(".gif")) {
|
||||
dataType = "image/gif";
|
||||
} else if (path.endsWith(".jpg")) {
|
||||
dataType = "image/jpeg";
|
||||
} else if (path.endsWith(".ico")) {
|
||||
dataType = "image/x-icon";
|
||||
} else if (path.endsWith(".xml")) {
|
||||
dataType = "text/xml";
|
||||
} else if (path.endsWith(".pdf")) {
|
||||
dataType = "application/pdf";
|
||||
} else if (path.endsWith(".zip")) {
|
||||
dataType = "application/zip";
|
||||
}
|
||||
|
||||
File dataFile = SD.open(path.c_str());
|
||||
if (dataFile.isDirectory()) {
|
||||
@ -77,10 +91,13 @@ bool loadFromSdCard(String path){
|
||||
dataFile = SD.open(path.c_str());
|
||||
}
|
||||
|
||||
if (!dataFile)
|
||||
if (!dataFile) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (server.hasArg("download")) dataType = "application/octet-stream";
|
||||
if (server.hasArg("download")) {
|
||||
dataType = "application/octet-stream";
|
||||
}
|
||||
|
||||
if (server.streamFile(dataFile, dataType) != dataFile.size()) {
|
||||
DBG_OUTPUT_PORT.println("Sent less data than expected!");
|
||||
@ -91,17 +108,25 @@ bool loadFromSdCard(String path){
|
||||
}
|
||||
|
||||
void handleFileUpload() {
|
||||
if(server.uri() != "/edit") return;
|
||||
if (server.uri() != "/edit") {
|
||||
return;
|
||||
}
|
||||
HTTPUpload& upload = server.upload();
|
||||
if (upload.status == UPLOAD_FILE_START) {
|
||||
if(SD.exists((char *)upload.filename.c_str())) SD.remove((char *)upload.filename.c_str());
|
||||
if (SD.exists((char *)upload.filename.c_str())) {
|
||||
SD.remove((char *)upload.filename.c_str());
|
||||
}
|
||||
uploadFile = SD.open(upload.filename.c_str(), FILE_WRITE);
|
||||
DBG_OUTPUT_PORT.print("Upload: START, filename: "); DBG_OUTPUT_PORT.println(upload.filename);
|
||||
} else if (upload.status == UPLOAD_FILE_WRITE) {
|
||||
if(uploadFile) uploadFile.write(upload.buf, upload.currentSize);
|
||||
if (uploadFile) {
|
||||
uploadFile.write(upload.buf, upload.currentSize);
|
||||
}
|
||||
DBG_OUTPUT_PORT.print("Upload: WRITE, Bytes: "); DBG_OUTPUT_PORT.println(upload.currentSize);
|
||||
} else if (upload.status == UPLOAD_FILE_END) {
|
||||
if(uploadFile) uploadFile.close();
|
||||
if (uploadFile) {
|
||||
uploadFile.close();
|
||||
}
|
||||
DBG_OUTPUT_PORT.print("Upload: END, Size: "); DBG_OUTPUT_PORT.println(upload.totalSize);
|
||||
}
|
||||
}
|
||||
@ -117,7 +142,9 @@ void deleteRecursive(String path){
|
||||
file.rewindDirectory();
|
||||
while (true) {
|
||||
File entry = file.openNextFile();
|
||||
if (!entry) break;
|
||||
if (!entry) {
|
||||
break;
|
||||
}
|
||||
String entryPath = path + "/" + entry.name();
|
||||
if (entry.isDirectory()) {
|
||||
entry.close();
|
||||
@ -134,7 +161,9 @@ void deleteRecursive(String path){
|
||||
}
|
||||
|
||||
void handleDelete() {
|
||||
if(server.args() == 0) return returnFail("BAD ARGS");
|
||||
if (server.args() == 0) {
|
||||
return returnFail("BAD ARGS");
|
||||
}
|
||||
String path = server.arg(0);
|
||||
if (path == "/" || !SD.exists((char *)path.c_str())) {
|
||||
returnFail("BAD PATH");
|
||||
@ -145,7 +174,9 @@ void handleDelete(){
|
||||
}
|
||||
|
||||
void handleCreate() {
|
||||
if(server.args() == 0) return returnFail("BAD ARGS");
|
||||
if (server.args() == 0) {
|
||||
return returnFail("BAD ARGS");
|
||||
}
|
||||
String path = server.arg(0);
|
||||
if (path == "/" || SD.exists((char *)path.c_str())) {
|
||||
returnFail("BAD PATH");
|
||||
@ -165,9 +196,13 @@ void handleCreate(){
|
||||
}
|
||||
|
||||
void printDirectory() {
|
||||
if(!server.hasArg("dir")) return returnFail("BAD ARGS");
|
||||
if (!server.hasArg("dir")) {
|
||||
return returnFail("BAD ARGS");
|
||||
}
|
||||
String path = server.arg("dir");
|
||||
if(path != "/" && !SD.exists((char *)path.c_str())) return returnFail("BAD PATH");
|
||||
if (path != "/" && !SD.exists((char *)path.c_str())) {
|
||||
return returnFail("BAD PATH");
|
||||
}
|
||||
File dir = SD.open((char *)path.c_str());
|
||||
path = String();
|
||||
if (!dir.isDirectory()) {
|
||||
@ -182,12 +217,14 @@ void printDirectory() {
|
||||
server.sendContent("[");
|
||||
for (int cnt = 0; true; ++cnt) {
|
||||
File entry = dir.openNextFile();
|
||||
if (!entry)
|
||||
if (!entry) {
|
||||
break;
|
||||
}
|
||||
|
||||
String output;
|
||||
if (cnt > 0)
|
||||
if (cnt > 0) {
|
||||
output = ',';
|
||||
}
|
||||
|
||||
output += "{\"type\":\"";
|
||||
output += (entry.isDirectory()) ? "dir" : "file";
|
||||
@ -203,7 +240,9 @@ void printDirectory() {
|
||||
}
|
||||
|
||||
void handleNotFound() {
|
||||
if(hasSD && loadFromSdCard(server.uri())) return;
|
||||
if (hasSD && loadFromSdCard(server.uri())) {
|
||||
return;
|
||||
}
|
||||
String message = "SDCARD Not Detected\n\n";
|
||||
message += "URI: ";
|
||||
message += server.uri();
|
||||
@ -236,7 +275,9 @@ void setup(void){
|
||||
if (i == 21) {
|
||||
DBG_OUTPUT_PORT.print("Could not connect to");
|
||||
DBG_OUTPUT_PORT.println(ssid);
|
||||
while(1) delay(500);
|
||||
while (1) {
|
||||
delay(500);
|
||||
}
|
||||
}
|
||||
DBG_OUTPUT_PORT.print("Connected! IP address: ");
|
||||
DBG_OUTPUT_PORT.println(WiFi.localIP());
|
||||
@ -253,7 +294,9 @@ void setup(void){
|
||||
server.on("/list", HTTP_GET, printDirectory);
|
||||
server.on("/edit", HTTP_DELETE, handleDelete);
|
||||
server.on("/edit", HTTP_PUT, handleCreate);
|
||||
server.on("/edit", HTTP_POST, [](){ returnOK(); }, handleFileUpload);
|
||||
server.on("/edit", HTTP_POST, []() {
|
||||
returnOK();
|
||||
}, handleFileUpload);
|
||||
server.onNotFound(handleNotFound);
|
||||
|
||||
server.begin();
|
||||
|
@ -1,19 +1,19 @@
|
||||
/*
|
||||
* HTTP over TLS (HTTPS) example sketch
|
||||
*
|
||||
* This example demonstrates how to use
|
||||
* WiFiClientSecure class to access HTTPS API.
|
||||
* We fetch and display the status of
|
||||
* esp8266/Arduino project continuous integration
|
||||
* build.
|
||||
*
|
||||
* Limitations:
|
||||
* only RSA certificates
|
||||
* no support of Perfect Forward Secrecy (PFS)
|
||||
* TLSv1.2 is supported since version 2.4.0-rc1
|
||||
*
|
||||
* Created by Ivan Grokhotkov, 2015.
|
||||
* This example is in public domain.
|
||||
HTTP over TLS (HTTPS) example sketch
|
||||
|
||||
This example demonstrates how to use
|
||||
WiFiClientSecure class to access HTTPS API.
|
||||
We fetch and display the status of
|
||||
esp8266/Arduino project continuous integration
|
||||
build.
|
||||
|
||||
Limitations:
|
||||
only RSA certificates
|
||||
no support of Perfect Forward Secrecy (PFS)
|
||||
TLSv1.2 is supported since version 2.4.0-rc1
|
||||
|
||||
Created by Ivan Grokhotkov, 2015.
|
||||
This example is in public domain.
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
@ -28,7 +28,7 @@ char pass[] = "********"; // your network password
|
||||
unsigned int localPort = 2390; // local port to listen for UDP packets
|
||||
|
||||
/* Don't hardwire the IP address or we won't get the benefits of the pool.
|
||||
* Lookup the IP address for the host name instead */
|
||||
Lookup the IP address for the host name instead */
|
||||
//IPAddress timeServer(129, 6, 15, 28); // time.nist.gov NTP server
|
||||
IPAddress timeServerIP; // time.nist.gov NTP server address
|
||||
const char* ntpServerName = "time.nist.gov";
|
||||
@ -40,8 +40,7 @@ byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing pack
|
||||
// A UDP instance to let us send and receive packets over UDP
|
||||
WiFiUDP udp;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.println();
|
||||
Serial.println();
|
||||
@ -68,8 +67,7 @@ void setup()
|
||||
Serial.println(udp.localPort());
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
//get a random server from the pool
|
||||
WiFi.hostByName(ntpServerName, timeServerIP);
|
||||
|
||||
@ -80,8 +78,7 @@ void loop()
|
||||
int cb = udp.parsePacket();
|
||||
if (!cb) {
|
||||
Serial.println("no packet yet");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.print("packet received, length=");
|
||||
Serial.println(cb);
|
||||
// We've received a packet, read the data from it
|
||||
@ -129,8 +126,7 @@ void loop()
|
||||
}
|
||||
|
||||
// send an NTP request to the time server at the given address
|
||||
void sendNTPpacket(IPAddress& address)
|
||||
{
|
||||
void sendNTPpacket(IPAddress& address) {
|
||||
Serial.println("sending NTP packet...");
|
||||
// set all bytes in the buffer to 0
|
||||
memset(packetBuffer, 0, NTP_PACKET_SIZE);
|
||||
|
@ -1,31 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Majenko Technologies
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
Copyright (c) 2015, Majenko Technologies
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* * Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this
|
||||
* list of conditions and the following disclaimer in the documentation and/or
|
||||
* other materials provided with the distribution.
|
||||
*
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
* * Neither the name of Majenko Technologies nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* Create a WiFi access point and provide a web server on it. */
|
||||
@ -41,7 +41,7 @@ const char *password = "thereisnospoon";
|
||||
ESP8266WebServer server(80);
|
||||
|
||||
/* Just a little test message. Go to http://192.168.4.1 in a web browser
|
||||
* connected to this access point to see it.
|
||||
connected to this access point to see it.
|
||||
*/
|
||||
void handleRoot() {
|
||||
server.send(200, "text/html", "<h1>You are connected</h1>");
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*
|
||||
* This sketch sends data via HTTP GET requests to data.sparkfun.com service.
|
||||
*
|
||||
* You need to get streamId and privateKey at data.sparkfun.com and paste them
|
||||
* below. Or just customize this script to talk to other HTTP servers.
|
||||
*
|
||||
This sketch sends data via HTTP GET requests to data.sparkfun.com service.
|
||||
|
||||
You need to get streamId and privateKey at data.sparkfun.com and paste them
|
||||
below. Or just customize this script to talk to other HTTP servers.
|
||||
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* This sketch sends a message to a TCP server
|
||||
*
|
||||
This sketch sends a message to a TCP server
|
||||
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
@ -173,11 +173,11 @@ void loop() {
|
||||
|
||||
// Match the request
|
||||
int val;
|
||||
if (req.indexOf("/gpio/0") != -1)
|
||||
if (req.indexOf("/gpio/0") != -1) {
|
||||
val = 0;
|
||||
else if (req.indexOf("/gpio/1") != -1)
|
||||
} else if (req.indexOf("/gpio/1") != -1) {
|
||||
val = 1;
|
||||
else {
|
||||
} else {
|
||||
Serial.println("invalid request");
|
||||
client.print("HTTP/1.1 404 Not Found\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html><body>Not found</body></html>");
|
||||
return;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* This sketch trys to Connect to the best AP based on a given list
|
||||
*
|
||||
This sketch trys to Connect to the best AP based on a given list
|
||||
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* This sketch demonstrates how to scan WiFi networks.
|
||||
* The API is almost the same as with the WiFi Shield library,
|
||||
* the most obvious difference being the different file you need to include:
|
||||
This sketch demonstrates how to scan WiFi networks.
|
||||
The API is almost the same as with the WiFi Shield library,
|
||||
the most obvious difference being the different file you need to include:
|
||||
*/
|
||||
#include "ESP8266WiFi.h"
|
||||
|
||||
@ -22,14 +22,12 @@ void loop() {
|
||||
// WiFi.scanNetworks will return the number of networks found
|
||||
int n = WiFi.scanNetworks();
|
||||
Serial.println("scan done");
|
||||
if (n == 0)
|
||||
if (n == 0) {
|
||||
Serial.println("no networks found");
|
||||
else
|
||||
{
|
||||
} else {
|
||||
Serial.print(n);
|
||||
Serial.println(" networks found");
|
||||
for (int i = 0; i < n; ++i)
|
||||
{
|
||||
for (int i = 0; i < n; ++i) {
|
||||
// Print SSID and RSSI for each network found
|
||||
Serial.print(i + 1);
|
||||
Serial.print(": ");
|
||||
|
@ -34,10 +34,14 @@ void setup() {
|
||||
WiFi.begin(ssid, password);
|
||||
Serial1.print("\nConnecting to "); Serial1.println(ssid);
|
||||
uint8_t i = 0;
|
||||
while (WiFi.status() != WL_CONNECTED && i++ < 20) delay(500);
|
||||
while (WiFi.status() != WL_CONNECTED && i++ < 20) {
|
||||
delay(500);
|
||||
}
|
||||
if (i == 21) {
|
||||
Serial1.print("Could not connect to"); Serial1.println(ssid);
|
||||
while(1) delay(500);
|
||||
while (1) {
|
||||
delay(500);
|
||||
}
|
||||
}
|
||||
//start UART and the server
|
||||
Serial.begin(115200);
|
||||
@ -56,7 +60,9 @@ void loop() {
|
||||
for (i = 0; i < MAX_SRV_CLIENTS; i++) {
|
||||
//find free/disconnected spot
|
||||
if (!serverClients[i] || !serverClients[i].connected()) {
|
||||
if(serverClients[i]) serverClients[i].stop();
|
||||
if (serverClients[i]) {
|
||||
serverClients[i].stop();
|
||||
}
|
||||
serverClients[i] = server.available();
|
||||
Serial1.print("New client: "); Serial1.print(i);
|
||||
break;
|
||||
@ -74,7 +80,9 @@ void loop() {
|
||||
if (serverClients[i] && serverClients[i].connected()) {
|
||||
if (serverClients[i].available()) {
|
||||
//get data from the telnet client and push it to the UART
|
||||
while(serverClients[i].available()) Serial.write(serverClients[i].read());
|
||||
while (serverClients[i].available()) {
|
||||
Serial.write(serverClients[i].read());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
/*
|
||||
* This sketch demonstrates how to set up a simple HTTP-like server.
|
||||
* The server will set a GPIO pin depending on the request
|
||||
* http://server_ip/gpio/0 will set the GPIO2 low,
|
||||
* http://server_ip/gpio/1 will set the GPIO2 high
|
||||
* server_ip is the IP address of the ESP8266 module, will be
|
||||
* printed to Serial when the module is connected.
|
||||
This sketch demonstrates how to set up a simple HTTP-like server.
|
||||
The server will set a GPIO pin depending on the request
|
||||
http://server_ip/gpio/0 will set the GPIO2 low,
|
||||
http://server_ip/gpio/1 will set the GPIO2 high
|
||||
server_ip is the IP address of the ESP8266 module, will be
|
||||
printed to Serial when the module is connected.
|
||||
*/
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
@ -68,11 +68,11 @@ void loop() {
|
||||
|
||||
// Match the request
|
||||
int val;
|
||||
if (req.indexOf("/gpio/0") != -1)
|
||||
if (req.indexOf("/gpio/0") != -1) {
|
||||
val = 0;
|
||||
else if (req.indexOf("/gpio/1") != -1)
|
||||
} else if (req.indexOf("/gpio/1") != -1) {
|
||||
val = 1;
|
||||
else {
|
||||
} else {
|
||||
Serial.println("invalid request");
|
||||
client.stop();
|
||||
return;
|
||||
|
@ -10,13 +10,12 @@ String manageRequest(String request);
|
||||
ESP8266WiFiMesh mesh_node = ESP8266WiFiMesh(ESP.getChipId(), manageRequest);
|
||||
|
||||
/**
|
||||
* Callback for when other nodes send you data
|
||||
*
|
||||
* @request The string received from another node in the mesh
|
||||
* @returns The string to send back to the other node
|
||||
Callback for when other nodes send you data
|
||||
|
||||
@request The string received from another node in the mesh
|
||||
@returns The string to send back to the other node
|
||||
*/
|
||||
String manageRequest(String request)
|
||||
{
|
||||
String manageRequest(String request) {
|
||||
/* Print out received message */
|
||||
Serial.print("received: ");
|
||||
Serial.println(request);
|
||||
@ -27,8 +26,7 @@ String manageRequest(String request)
|
||||
return response;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
delay(10);
|
||||
|
||||
@ -40,8 +38,7 @@ void setup()
|
||||
mesh_node.begin();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
/* Accept any incoming connections */
|
||||
mesh_node.acceptRequest();
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* httpUpdate.ino
|
||||
*
|
||||
* Created on: 27.11.2015
|
||||
*
|
||||
httpUpdate.ino
|
||||
|
||||
Created on: 27.11.2015
|
||||
|
||||
*/
|
||||
|
||||
#include <Arduino.h>
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* httpUpdateSPIFFS.ino
|
||||
*
|
||||
* Created on: 05.12.2015
|
||||
*
|
||||
httpUpdateSPIFFS.ino
|
||||
|
||||
Created on: 05.12.2015
|
||||
|
||||
*/
|
||||
|
||||
#include <Arduino.h>
|
||||
|
@ -1,15 +1,15 @@
|
||||
/**
|
||||
* @file OTA-mDNS-SPIFFS.ino
|
||||
*
|
||||
* @author Pascal Gollor (http://www.pgollor.de/cms/)
|
||||
* @date 2015-09-18
|
||||
*
|
||||
* changelog:
|
||||
* 2015-10-22:
|
||||
* - Use new ArduinoOTA library.
|
||||
* - loadConfig function can handle different line endings
|
||||
* - remove mDNS studd. ArduinoOTA handle it.
|
||||
*
|
||||
@file OTA-mDNS-SPIFFS.ino
|
||||
|
||||
@author Pascal Gollor (http://www.pgollor.de/cms/)
|
||||
@date 2015-09-18
|
||||
|
||||
changelog:
|
||||
2015-10-22:
|
||||
- Use new ArduinoOTA library.
|
||||
- loadConfig function can handle different line endings
|
||||
- remove mDNS studd. ArduinoOTA handle it.
|
||||
|
||||
*/
|
||||
|
||||
// includes
|
||||
@ -21,15 +21,15 @@
|
||||
|
||||
|
||||
/**
|
||||
* @brief mDNS and OTA Constants
|
||||
* @{
|
||||
@brief mDNS and OTA Constants
|
||||
@{
|
||||
*/
|
||||
#define HOSTNAME "ESP8266-OTA-" ///< Hostename. The setup function adds the Chip ID at the end.
|
||||
/// @}
|
||||
|
||||
/**
|
||||
* @brief Default WiFi connection information.
|
||||
* @{
|
||||
@brief Default WiFi connection information.
|
||||
@{
|
||||
*/
|
||||
const char* ap_default_ssid = "esp8266"; ///< Default SSID.
|
||||
const char* ap_default_psk = "esp8266esp8266"; ///< Default PSK.
|
||||
@ -39,21 +39,19 @@ const char* ap_default_psk = "esp8266esp8266"; ///< Default PSK.
|
||||
//#define SERIAL_VERBOSE
|
||||
|
||||
/**
|
||||
* @brief Read WiFi connection information from file system.
|
||||
* @param ssid String pointer for storing SSID.
|
||||
* @param pass String pointer for storing PSK.
|
||||
* @return True or False.
|
||||
*
|
||||
* The config file have to containt the WiFi SSID in the first line
|
||||
* and the WiFi PSK in the second line.
|
||||
* Line seperator can be \r\n (CR LF) \r or \n.
|
||||
@brief Read WiFi connection information from file system.
|
||||
@param ssid String pointer for storing SSID.
|
||||
@param pass String pointer for storing PSK.
|
||||
@return True or False.
|
||||
|
||||
The config file have to containt the WiFi SSID in the first line
|
||||
and the WiFi PSK in the second line.
|
||||
Line seperator can be \r\n (CR LF) \r or \n.
|
||||
*/
|
||||
bool loadConfig(String *ssid, String *pass)
|
||||
{
|
||||
bool loadConfig(String *ssid, String *pass) {
|
||||
// open file for reading.
|
||||
File configFile = SPIFFS.open("/cl_conf.txt", "r");
|
||||
if (!configFile)
|
||||
{
|
||||
if (!configFile) {
|
||||
Serial.println("Failed to open cl_conf.txt.");
|
||||
|
||||
return false;
|
||||
@ -69,19 +67,16 @@ bool loadConfig(String *ssid, String *pass)
|
||||
int8_t pos = content.indexOf("\r\n");
|
||||
uint8_t le = 2;
|
||||
// check for linux and mac line ending.
|
||||
if (pos == -1)
|
||||
{
|
||||
if (pos == -1) {
|
||||
le = 1;
|
||||
pos = content.indexOf("\n");
|
||||
if (pos == -1)
|
||||
{
|
||||
if (pos == -1) {
|
||||
pos = content.indexOf("\r");
|
||||
}
|
||||
}
|
||||
|
||||
// If there is no second line: Some information is missing.
|
||||
if (pos == -1)
|
||||
{
|
||||
if (pos == -1) {
|
||||
Serial.println("Infvalid content.");
|
||||
Serial.println(content);
|
||||
|
||||
@ -108,17 +103,15 @@ bool loadConfig(String *ssid, String *pass)
|
||||
|
||||
|
||||
/**
|
||||
* @brief Save WiFi SSID and PSK to configuration file.
|
||||
* @param ssid SSID as string pointer.
|
||||
* @param pass PSK as string pointer,
|
||||
* @return True or False.
|
||||
@brief Save WiFi SSID and PSK to configuration file.
|
||||
@param ssid SSID as string pointer.
|
||||
@param pass PSK as string pointer,
|
||||
@return True or False.
|
||||
*/
|
||||
bool saveConfig(String *ssid, String *pass)
|
||||
{
|
||||
bool saveConfig(String *ssid, String *pass) {
|
||||
// Open config file for writing.
|
||||
File configFile = SPIFFS.open("/cl_conf.txt", "w");
|
||||
if (!configFile)
|
||||
{
|
||||
if (!configFile) {
|
||||
Serial.println("Failed to open cl_conf.txt for writing");
|
||||
|
||||
return false;
|
||||
@ -135,10 +128,9 @@ bool saveConfig(String *ssid, String *pass)
|
||||
|
||||
|
||||
/**
|
||||
* @brief Arduino setup function.
|
||||
@brief Arduino setup function.
|
||||
*/
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
String station_ssid = "";
|
||||
String station_psk = "";
|
||||
|
||||
@ -161,15 +153,13 @@ void setup()
|
||||
|
||||
|
||||
// Initialize file system.
|
||||
if (!SPIFFS.begin())
|
||||
{
|
||||
if (!SPIFFS.begin()) {
|
||||
Serial.println("Failed to mount file system");
|
||||
return;
|
||||
}
|
||||
|
||||
// Load wifi connection information.
|
||||
if (! loadConfig(&station_ssid, &station_psk))
|
||||
{
|
||||
if (! loadConfig(&station_ssid, &station_psk)) {
|
||||
station_ssid = "";
|
||||
station_psk = "";
|
||||
|
||||
@ -178,15 +168,13 @@ void setup()
|
||||
|
||||
// Check WiFi connection
|
||||
// ... check mode
|
||||
if (WiFi.getMode() != WIFI_STA)
|
||||
{
|
||||
if (WiFi.getMode() != WIFI_STA) {
|
||||
WiFi.mode(WIFI_STA);
|
||||
delay(10);
|
||||
}
|
||||
|
||||
// ... Compare file config with sdk config.
|
||||
if (WiFi.SSID() != station_ssid || WiFi.psk() != station_psk)
|
||||
{
|
||||
if (WiFi.SSID() != station_ssid || WiFi.psk() != station_psk) {
|
||||
Serial.println("WiFi config changed.");
|
||||
|
||||
// ... Try to connect to WiFi station.
|
||||
@ -198,9 +186,7 @@ void setup()
|
||||
|
||||
// ... Uncomment this for debugging output.
|
||||
//WiFi.printDiag(Serial);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// ... Begin with sdk config.
|
||||
WiFi.begin();
|
||||
}
|
||||
@ -209,8 +195,7 @@ void setup()
|
||||
|
||||
// ... Give ESP 10 seconds to connect to station.
|
||||
unsigned long startTime = millis();
|
||||
while (WiFi.status() != WL_CONNECTED && millis() - startTime < 10000)
|
||||
{
|
||||
while (WiFi.status() != WL_CONNECTED && millis() - startTime < 10000) {
|
||||
Serial.write('.');
|
||||
//Serial.print(WiFi.status());
|
||||
delay(500);
|
||||
@ -218,14 +203,11 @@ void setup()
|
||||
Serial.println();
|
||||
|
||||
// Check connection
|
||||
if(WiFi.status() == WL_CONNECTED)
|
||||
{
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
// ... print IP Address
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
Serial.println("Can not connect to WiFi station. Go into AP mode.");
|
||||
|
||||
// Go into software AP mode.
|
||||
@ -246,10 +228,9 @@ void setup()
|
||||
|
||||
|
||||
/**
|
||||
* @brief Arduino loop function.
|
||||
@brief Arduino loop function.
|
||||
*/
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// Handle OTA server.
|
||||
ArduinoOTA.handle();
|
||||
yield();
|
||||
|
@ -49,8 +49,7 @@ void setup() {
|
||||
Serial.println("mDNS query done");
|
||||
if (n == 0) {
|
||||
Serial.println("no services found");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.print(n);
|
||||
Serial.println(" service(s) found");
|
||||
for (int i = 0; i < n; ++i) {
|
||||
|
@ -26,8 +26,7 @@ const char* password = "..............";
|
||||
// TCP server at port 80 will respond to HTTP requests
|
||||
WiFiServer server(80);
|
||||
|
||||
void setup(void)
|
||||
{
|
||||
void setup(void) {
|
||||
Serial.begin(115200);
|
||||
|
||||
// Connect to WiFi network
|
||||
@ -67,8 +66,7 @@ void setup(void)
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
}
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
void loop(void) {
|
||||
// Check if a client has connected
|
||||
WiFiClient client = server.available();
|
||||
if (!client) {
|
||||
@ -100,17 +98,14 @@ void loop(void)
|
||||
client.flush();
|
||||
|
||||
String s;
|
||||
if (req == "/")
|
||||
{
|
||||
if (req == "/") {
|
||||
IPAddress ip = WiFi.localIP();
|
||||
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
|
||||
s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>Hello from ESP8266 at ";
|
||||
s += ipStr;
|
||||
s += "</html>\r\n\r\n";
|
||||
Serial.println("Sending 200");
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
s = "HTTP/1.1 404 Not Found\r\n\r\n";
|
||||
Serial.println("Sending 404");
|
||||
}
|
||||
|
@ -8,8 +8,8 @@
|
||||
Using an Arduino Wiznet Ethernet shield.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
* Analog inputs attached to pins A0 through A5 (optional)
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Analog inputs attached to pins A0 through A5 (optional)
|
||||
|
||||
created 18 Dec 2009
|
||||
by David A. Mellis
|
||||
@ -27,7 +27,8 @@
|
||||
// The IP address will be dependent on your local network.
|
||||
// gateway and subnet are optional:
|
||||
byte mac[] = {
|
||||
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
|
||||
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
|
||||
};
|
||||
IPAddress ip(192, 168, 1, 177);
|
||||
IPAddress gateway(192, 168, 1, 1);
|
||||
IPAddress subnet(255, 255, 0, 0);
|
||||
|
@ -156,8 +156,7 @@ void listenForEthernetClients() {
|
||||
if (c == '\n') {
|
||||
// you're starting a new line
|
||||
currentLineIsBlank = true;
|
||||
}
|
||||
else if (c != '\r') {
|
||||
} else if (c != '\r') {
|
||||
// you've gotten a character on the current line
|
||||
currentLineIsBlank = false;
|
||||
}
|
||||
|
@ -7,8 +7,8 @@
|
||||
Using an Arduino Wiznet Ethernet shield.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
* Analog inputs attached to pins A0 through A5 (optional)
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Analog inputs attached to pins A0 through A5 (optional)
|
||||
|
||||
created 18 Dec 2009
|
||||
by David A. Mellis
|
||||
|
@ -6,7 +6,7 @@
|
||||
using an Arduino Wiznet Ethernet shield.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
|
||||
created 12 April 2011
|
||||
modified 9 Apr 2012
|
||||
|
@ -9,7 +9,7 @@
|
||||
THis version attempts to get an IP address using DHCP
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
|
||||
created 21 May 2011
|
||||
modified 9 Apr 2012
|
||||
|
@ -10,7 +10,7 @@
|
||||
http://processing.org/
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
|
||||
created 14 Sep 2010
|
||||
modified 9 Apr 2012
|
||||
@ -54,15 +54,13 @@ void setup() {
|
||||
// if you get a connection, report back via serial:
|
||||
if (client.connect(server, 10002)) {
|
||||
Serial.println("connected");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// if you didn't get a connection to the server:
|
||||
Serial.println("connection failed");
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// if there are incoming bytes available
|
||||
// from the server, read them and print them:
|
||||
if (client.available()) {
|
||||
|
@ -45,17 +45,14 @@ void setup() {
|
||||
void loop() {
|
||||
// if there's data available, read a packet
|
||||
int packetSize = Udp.parsePacket();
|
||||
if (packetSize)
|
||||
{
|
||||
if (packetSize) {
|
||||
Serial.print("Received packet of size ");
|
||||
Serial.println(packetSize);
|
||||
Serial.print("From ");
|
||||
IPAddress remote = Udp.remoteIP();
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Serial.print(remote[i], DEC);
|
||||
if (i < 3)
|
||||
{
|
||||
if (i < 3) {
|
||||
Serial.print(".");
|
||||
}
|
||||
}
|
||||
|
@ -37,8 +37,7 @@ byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing pack
|
||||
// A UDP instance to let us send and receive packets over UDP
|
||||
EthernetUDP Udp;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -56,8 +55,7 @@ void setup()
|
||||
Udp.begin(localPort);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
sendNTPpacket(timeServer); // send an NTP packet to a time server
|
||||
|
||||
// wait to see if a reply is available
|
||||
@ -108,8 +106,7 @@ void loop()
|
||||
}
|
||||
|
||||
// send an NTP request to the time server at the given address
|
||||
void sendNTPpacket(char* address)
|
||||
{
|
||||
void sendNTPpacket(char* address) {
|
||||
// set all bytes in the buffer to 0
|
||||
memset(packetBuffer, 0, NTP_PACKET_SIZE);
|
||||
// Initialize values needed to form NTP request
|
||||
|
@ -5,7 +5,7 @@
|
||||
using an Arduino Wiznet Ethernet shield.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
|
||||
created 18 Dec 2009
|
||||
by David A. Mellis
|
||||
@ -59,15 +59,13 @@ void setup() {
|
||||
client.println("Host: www.google.com");
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// kf you didn't get a connection to the server:
|
||||
Serial.println("connection failed");
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// if there are incoming bytes available
|
||||
// from the server, read them and print them:
|
||||
if (client.available()) {
|
||||
|
@ -10,7 +10,7 @@
|
||||
IP address, and DNS address.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
|
||||
created 19 Apr 2012
|
||||
by Tom Igoe
|
||||
@ -98,8 +98,7 @@ void httpRequest() {
|
||||
|
||||
// note the time that the connection was made:
|
||||
lastConnectionTime = millis();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// if you couldn't make a connection:
|
||||
Serial.println("connection failed");
|
||||
}
|
||||
|
@ -5,8 +5,8 @@
|
||||
using an Arduino Wiznet Ethernet shield.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
* Analog inputs attached to pins A0 through A5 (optional)
|
||||
Ethernet shield attached to pins 10, 11, 12, 13
|
||||
Analog inputs attached to pins A0 through A5 (optional)
|
||||
|
||||
created 18 Dec 2009
|
||||
by David A. Mellis
|
||||
@ -84,8 +84,7 @@ void loop() {
|
||||
if (c == '\n') {
|
||||
// you're starting a new line
|
||||
currentLineIsBlank = true;
|
||||
}
|
||||
else if (c != '\r') {
|
||||
} else if (c != '\r') {
|
||||
// you've gotten a character on the current line
|
||||
currentLineIsBlank = false;
|
||||
}
|
||||
|
@ -42,8 +42,7 @@ struct sRFC1305 packetBuffer; //buffer to hold incoming and outgoing packets
|
||||
// A UDP instance to let us send and receive packets over UDP
|
||||
EthernetUDP Udp;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -62,8 +61,7 @@ void setup()
|
||||
Udp.begin(localPort);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
sendNTPpacket(timeServer); // send an NTP packet to a time server
|
||||
|
||||
// wait to see if a reply is available
|
||||
@ -125,8 +123,7 @@ void loop()
|
||||
}
|
||||
|
||||
// send an NTP request to the time server at the given address
|
||||
unsigned long sendNTPpacket(char* address)
|
||||
{
|
||||
unsigned long sendNTPpacket(char* address) {
|
||||
// set all bytes in the buffer to 0
|
||||
memset((char *)&packetBuffer, 0, NTP_PACKET_SIZE);
|
||||
// Initialize values needed to form NTP request
|
||||
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* simple demo to show sha1 calculation
|
||||
simple demo to show sha1 calculation
|
||||
*/
|
||||
#include <Arduino.h>
|
||||
#include <Hash.h>
|
||||
|
@ -6,7 +6,7 @@
|
||||
Very useful for testing a card when you're not sure whether its working or not.
|
||||
|
||||
The circuit:
|
||||
* SD card attached to SPI bus as follows:
|
||||
SD card attached to SPI bus as follows:
|
||||
** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila
|
||||
** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila
|
||||
** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila
|
||||
@ -34,8 +34,7 @@ SdFile root;
|
||||
// Sparkfun SD shield: pin 8
|
||||
const int chipSelect = 4;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
|
@ -5,8 +5,8 @@
|
||||
to an SD card using the SD library.
|
||||
|
||||
The circuit:
|
||||
* analog sensors on analog ins 0, 1, and 2
|
||||
* SD card attached to SPI bus as follows:
|
||||
analog sensors on analog ins 0, 1, and 2
|
||||
SD card attached to SPI bus as follows:
|
||||
** MOSI - pin 11
|
||||
** MISO - pin 12
|
||||
** CLK - pin 13
|
||||
@ -25,8 +25,7 @@
|
||||
|
||||
const int chipSelect = 4;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -45,8 +44,7 @@ void setup()
|
||||
Serial.println("card initialized.");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// make a string for assembling the data to log:
|
||||
String dataString = "";
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
SD library and send it over the serial port.
|
||||
|
||||
The circuit:
|
||||
* SD card attached to SPI bus as follows:
|
||||
SD card attached to SPI bus as follows:
|
||||
** MOSI - pin 11
|
||||
** MISO - pin 12
|
||||
** CLK - pin 13
|
||||
@ -25,8 +25,7 @@
|
||||
|
||||
const int chipSelect = 4;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -61,7 +60,6 @@ void setup()
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
This example shows how to create and destroy an SD card file
|
||||
The circuit:
|
||||
* SD card attached to SPI bus as follows:
|
||||
SD card attached to SPI bus as follows:
|
||||
** MOSI - pin 11
|
||||
** MISO - pin 12
|
||||
** CLK - pin 13
|
||||
@ -22,8 +22,7 @@
|
||||
|
||||
File myFile;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -41,8 +40,7 @@ void setup()
|
||||
|
||||
if (SD.exists("example.txt")) {
|
||||
Serial.println("example.txt exists.");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.println("example.txt doesn't exist.");
|
||||
}
|
||||
|
||||
@ -54,8 +52,7 @@ void setup()
|
||||
// Check to see if the file exists:
|
||||
if (SD.exists("example.txt")) {
|
||||
Serial.println("example.txt exists.");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.println("example.txt doesn't exist.");
|
||||
}
|
||||
|
||||
@ -65,14 +62,12 @@ void setup()
|
||||
|
||||
if (SD.exists("example.txt")) {
|
||||
Serial.println("example.txt exists.");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.println("example.txt doesn't exist.");
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// nothing happens after setup finishes.
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
This example shows how to read and write data to and from an SD card file
|
||||
The circuit:
|
||||
* SD card attached to SPI bus as follows:
|
||||
SD card attached to SPI bus as follows:
|
||||
** MOSI - pin 11
|
||||
** MISO - pin 12
|
||||
** CLK - pin 13
|
||||
@ -23,8 +23,7 @@
|
||||
|
||||
File myFile;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -73,8 +72,7 @@ void setup()
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// nothing happens after setup
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
directory on a SD card
|
||||
|
||||
The circuit:
|
||||
* SD card attached to SPI bus as follows:
|
||||
SD card attached to SPI bus as follows:
|
||||
** MOSI - pin 11
|
||||
** MISO - pin 12
|
||||
** CLK - pin 13
|
||||
@ -26,8 +26,7 @@
|
||||
|
||||
File root;
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
@ -49,8 +48,7 @@ void setup()
|
||||
Serial.println("done!");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// nothing happens after setup finishes.
|
||||
}
|
||||
|
||||
|
@ -16,21 +16,18 @@
|
||||
*/
|
||||
#include <SPI.h>
|
||||
|
||||
class ESPMaster
|
||||
{
|
||||
class ESPMaster {
|
||||
private:
|
||||
uint8_t _ss_pin;
|
||||
|
||||
public:
|
||||
ESPMaster(uint8_t pin): _ss_pin(pin) {}
|
||||
void begin()
|
||||
{
|
||||
void begin() {
|
||||
pinMode(_ss_pin, OUTPUT);
|
||||
digitalWrite(_ss_pin, HIGH);
|
||||
}
|
||||
|
||||
uint32_t readStatus()
|
||||
{
|
||||
uint32_t readStatus() {
|
||||
digitalWrite(_ss_pin, LOW);
|
||||
SPI.transfer(0x04);
|
||||
uint32_t status = (SPI.transfer(0) | ((uint32_t)(SPI.transfer(0)) << 8) | ((uint32_t)(SPI.transfer(0)) << 16) | ((uint32_t)(SPI.transfer(0)) << 24));
|
||||
@ -38,8 +35,7 @@ public:
|
||||
return status;
|
||||
}
|
||||
|
||||
void writeStatus(uint32_t status)
|
||||
{
|
||||
void writeStatus(uint32_t status) {
|
||||
digitalWrite(_ss_pin, LOW);
|
||||
SPI.transfer(0x01);
|
||||
SPI.transfer(status & 0xFF);
|
||||
@ -49,8 +45,7 @@ public:
|
||||
digitalWrite(_ss_pin, HIGH);
|
||||
}
|
||||
|
||||
void readData(uint8_t * data)
|
||||
{
|
||||
void readData(uint8_t * data) {
|
||||
digitalWrite(_ss_pin, LOW);
|
||||
SPI.transfer(0x03);
|
||||
SPI.transfer(0x00);
|
||||
@ -60,8 +55,7 @@ public:
|
||||
digitalWrite(_ss_pin, HIGH);
|
||||
}
|
||||
|
||||
void writeData(uint8_t * data, size_t len)
|
||||
{
|
||||
void writeData(uint8_t * data, size_t len) {
|
||||
uint8_t i = 0;
|
||||
digitalWrite(_ss_pin, LOW);
|
||||
SPI.transfer(0x02);
|
||||
@ -75,24 +69,21 @@ public:
|
||||
digitalWrite(_ss_pin, HIGH);
|
||||
}
|
||||
|
||||
String readData()
|
||||
{
|
||||
String readData() {
|
||||
char data[33];
|
||||
data[32] = 0;
|
||||
readData((uint8_t *)data);
|
||||
return String(data);
|
||||
}
|
||||
|
||||
void writeData(const char * data)
|
||||
{
|
||||
void writeData(const char * data) {
|
||||
writeData((uint8_t *)data, strlen(data));
|
||||
}
|
||||
};
|
||||
|
||||
ESPMaster esp(SS);
|
||||
|
||||
void send(const char * message)
|
||||
{
|
||||
void send(const char * message) {
|
||||
Serial.print("Master: ");
|
||||
Serial.println(message);
|
||||
esp.writeData(message);
|
||||
@ -102,8 +93,7 @@ void send(const char * message)
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
SPI.begin();
|
||||
esp.begin();
|
||||
@ -111,8 +101,7 @@ void setup()
|
||||
send("Hello Slave!");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
delay(1000);
|
||||
send("Are you alive?");
|
||||
}
|
||||
|
@ -17,26 +17,22 @@
|
||||
*/
|
||||
#include <SPI.h>
|
||||
|
||||
class ESPSafeMaster
|
||||
{
|
||||
class ESPSafeMaster {
|
||||
private:
|
||||
uint8_t _ss_pin;
|
||||
void _pulseSS()
|
||||
{
|
||||
void _pulseSS() {
|
||||
digitalWrite(_ss_pin, HIGH);
|
||||
delayMicroseconds(5);
|
||||
digitalWrite(_ss_pin, LOW);
|
||||
}
|
||||
public:
|
||||
ESPSafeMaster(uint8_t pin): _ss_pin(pin) {}
|
||||
void begin()
|
||||
{
|
||||
void begin() {
|
||||
pinMode(_ss_pin, OUTPUT);
|
||||
_pulseSS();
|
||||
}
|
||||
|
||||
uint32_t readStatus()
|
||||
{
|
||||
uint32_t readStatus() {
|
||||
_pulseSS();
|
||||
SPI.transfer(0x04);
|
||||
uint32_t status = (SPI.transfer(0) | ((uint32_t)(SPI.transfer(0)) << 8) | ((uint32_t)(SPI.transfer(0)) << 16) | ((uint32_t)(SPI.transfer(0)) << 24));
|
||||
@ -44,8 +40,7 @@ public:
|
||||
return status;
|
||||
}
|
||||
|
||||
void writeStatus(uint32_t status)
|
||||
{
|
||||
void writeStatus(uint32_t status) {
|
||||
_pulseSS();
|
||||
SPI.transfer(0x01);
|
||||
SPI.transfer(status & 0xFF);
|
||||
@ -55,8 +50,7 @@ public:
|
||||
_pulseSS();
|
||||
}
|
||||
|
||||
void readData(uint8_t * data)
|
||||
{
|
||||
void readData(uint8_t * data) {
|
||||
_pulseSS();
|
||||
SPI.transfer(0x03);
|
||||
SPI.transfer(0x00);
|
||||
@ -66,8 +60,7 @@ public:
|
||||
_pulseSS();
|
||||
}
|
||||
|
||||
void writeData(uint8_t * data, size_t len)
|
||||
{
|
||||
void writeData(uint8_t * data, size_t len) {
|
||||
uint8_t i = 0;
|
||||
_pulseSS();
|
||||
SPI.transfer(0x02);
|
||||
@ -81,24 +74,21 @@ public:
|
||||
_pulseSS();
|
||||
}
|
||||
|
||||
String readData()
|
||||
{
|
||||
String readData() {
|
||||
char data[33];
|
||||
data[32] = 0;
|
||||
readData((uint8_t *)data);
|
||||
return String(data);
|
||||
}
|
||||
|
||||
void writeData(const char * data)
|
||||
{
|
||||
void writeData(const char * data) {
|
||||
writeData((uint8_t *)data, strlen(data));
|
||||
}
|
||||
};
|
||||
|
||||
ESPSafeMaster esp(SS);
|
||||
|
||||
void send(const char * message)
|
||||
{
|
||||
void send(const char * message) {
|
||||
Serial.print("Master: ");
|
||||
Serial.println(message);
|
||||
esp.writeData(message);
|
||||
@ -108,8 +98,7 @@ void send(const char * message)
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
SPI.begin();
|
||||
esp.begin();
|
||||
@ -117,8 +106,7 @@ void setup()
|
||||
send("Hello Slave!");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
delay(1000);
|
||||
send("Are you alive?");
|
||||
}
|
||||
|
@ -17,8 +17,7 @@
|
||||
|
||||
#include "SPISlave.h"
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.setDebugOutput(true);
|
||||
|
||||
|
@ -16,22 +16,19 @@ Servo myservo; // create servo object to control a servo
|
||||
// twelve servo objects can be created on most boards
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
myservo.attach(2); // attaches the servo on GIO2 to the servo object
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
int pos;
|
||||
|
||||
for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
|
||||
{ // in steps of 1 degree
|
||||
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
|
||||
// in steps of 1 degree
|
||||
myservo.write(pos); // tell servo to go to position in variable 'pos'
|
||||
delay(15); // waits 15ms for the servo to reach the position
|
||||
}
|
||||
for(pos = 180; pos>=0; pos-=1) // goes from 180 degrees to 0 degrees
|
||||
{
|
||||
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
|
||||
myservo.write(pos); // tell servo to go to position in variable 'pos'
|
||||
delay(15); // waits 15ms for the servo to reach the position
|
||||
}
|
||||
|
@ -7,8 +7,7 @@
|
||||
#include <TFTv2.h>
|
||||
#include <SPI.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
TFT_BL_ON; //turn on the background light
|
||||
|
||||
Tft.TFTinit(); //init TFT library
|
||||
@ -22,8 +21,7 @@ void setup()
|
||||
Tft.fillCircle(200, 200, 30, BLUE); //center: (200, 200), r = 30 ,color : BLUE
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
||||
|
@ -7,8 +7,7 @@
|
||||
#include <stdint.h>
|
||||
#include <TFTv2.h>
|
||||
#include <SPI.h>
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
TFT_BL_ON; // turn on the background light
|
||||
Tft.TFTinit(); //init TFT library
|
||||
|
||||
@ -21,8 +20,7 @@ void setup()
|
||||
//start: (30, 60), high: 150, color: blue
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
||||
|
@ -8,8 +8,7 @@
|
||||
#include <TFTv2.h>
|
||||
#include <SPI.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
TFT_BL_ON; // turn on the background light
|
||||
|
||||
Tft.TFTinit(); // init TFT library
|
||||
@ -30,8 +29,7 @@ void setup()
|
||||
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
||||
|
@ -7,8 +7,7 @@
|
||||
#include <TFTv2.h>
|
||||
#include <SPI.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
TFT_BL_ON; // turn on the background light
|
||||
Tft.TFTinit(); // init TFT library
|
||||
|
||||
@ -17,8 +16,7 @@ void setup()
|
||||
Tft.drawRectangle(100, 170, 120, 60, BLUE);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
|
||||
}
|
||||
/*********************************************************************************************************
|
||||
|
@ -14,19 +14,16 @@ unsigned int colors[8] = {BLACK, RED, GREEN, BLUE, CYAN, YELLOW, WHITE, GRAY1};
|
||||
|
||||
TouchScreen ts = TouchScreen(XP, YP, XM, YM); //init TouchScreen port pins
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
Tft.TFTinit(); //init TFT library
|
||||
Serial.begin(115200);
|
||||
//Draw the pallet
|
||||
for(int i = 0; i<8; i++)
|
||||
{
|
||||
for (int i = 0; i < 8; i++) {
|
||||
Tft.fillRectangle(i * 30, 0, 30, ColorPaletteHigh, colors[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
// a point object holds x y and z coordinates.
|
||||
Point p = ts.getPoint();
|
||||
|
||||
@ -40,12 +37,9 @@ void loop()
|
||||
|
||||
if (p.z > __PRESURE) {
|
||||
// Detect paint brush color change
|
||||
if(p.y < ColorPaletteHigh+2)
|
||||
{
|
||||
if (p.y < ColorPaletteHigh + 2) {
|
||||
color = colors[p.x / 30];
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
Tft.fillCircle(p.x, p.y, 2, color);
|
||||
}
|
||||
}
|
||||
|
@ -4,16 +4,13 @@
|
||||
#include <TFTv2.h>
|
||||
#include <SPI.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
TFT_BL_ON; // turn on the background light
|
||||
Tft.TFTinit(); // init TFT library
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
for(int r=0;r<115;r=r+2) //set r : 0--115
|
||||
{
|
||||
void loop() {
|
||||
for (int r = 0; r < 115; r = r + 2) { //set r : 0--115
|
||||
Tft.drawCircle(119, 160, r, random(0xFFFF)); //draw circle, center:(119, 160), color: random
|
||||
}
|
||||
delay(10);
|
||||
|
@ -7,8 +7,7 @@
|
||||
#include <TFTv2.h>
|
||||
#include <SPI.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
TFT_BL_ON; // turn on the background light
|
||||
Tft.TFTinit(); // init TFT library
|
||||
|
||||
@ -29,7 +28,6 @@ void setup()
|
||||
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
@ -30,8 +30,7 @@ unsigned char __Gnbmp_image_offset = 0; // offset
|
||||
|
||||
int __Gnfile_num = 3; // num of file
|
||||
|
||||
char __Gsbmp_files[3][FILENAME_LEN] = // add file name here
|
||||
{
|
||||
char __Gsbmp_files[3][FILENAME_LEN] = { // add file name here
|
||||
"flower.BMP",
|
||||
"hibiscus.bmp",
|
||||
"test.bmp",
|
||||
@ -41,8 +40,7 @@ char __Gsbmp_files[3][FILENAME_LEN] = // add file name here
|
||||
File bmpFile;
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
|
||||
Serial.begin(9600);
|
||||
|
||||
@ -54,8 +52,7 @@ void setup()
|
||||
Sd2Card card;
|
||||
card.init(SPI_FULL_SPEED, PIN_SD_CS);
|
||||
|
||||
if(!SD.begin(PIN_SD_CS))
|
||||
{
|
||||
if (!SD.begin(PIN_SD_CS)) {
|
||||
Serial.println("failed!");
|
||||
while (1); // init fail, die here
|
||||
}
|
||||
@ -65,19 +62,15 @@ void setup()
|
||||
TFT_BL_ON;
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
for(unsigned char i=0; i<__Gnfile_num; i++)
|
||||
{
|
||||
void loop() {
|
||||
for (unsigned char i = 0; i < __Gnfile_num; i++) {
|
||||
bmpFile = SD.open(__Gsbmp_files[i]);
|
||||
if (! bmpFile)
|
||||
{
|
||||
if (! bmpFile) {
|
||||
Serial.println("didnt find image");
|
||||
while (1);
|
||||
}
|
||||
|
||||
if(! bmpReadHeader(bmpFile))
|
||||
{
|
||||
if (! bmpReadHeader(bmpFile)) {
|
||||
Serial.println("bad bmp");
|
||||
return;
|
||||
}
|
||||
@ -100,27 +93,23 @@ void loop()
|
||||
#define BUFFPIXEL 60 // must be a divisor of 240
|
||||
#define BUFFPIXEL_X3 180 // BUFFPIXELx3
|
||||
|
||||
void bmpdraw(File f, int x, int y)
|
||||
{
|
||||
void bmpdraw(File f, int x, int y) {
|
||||
bmpFile.seek(__Gnbmp_image_offset);
|
||||
|
||||
uint32_t time = millis();
|
||||
|
||||
uint8_t sdbuffer[BUFFPIXEL_X3]; // 3 * pixels to buffer
|
||||
|
||||
for (int i=0; i< __Gnbmp_height; i++)
|
||||
{
|
||||
for (int i = 0; i < __Gnbmp_height; i++) {
|
||||
|
||||
for(int j=0; j<(240/BUFFPIXEL); j++)
|
||||
{
|
||||
for (int j = 0; j < (240 / BUFFPIXEL); j++) {
|
||||
bmpFile.read(sdbuffer, BUFFPIXEL_X3);
|
||||
uint8_t buffidx = 0;
|
||||
int offset_x = j * BUFFPIXEL;
|
||||
|
||||
unsigned int __color[BUFFPIXEL];
|
||||
|
||||
for(int k=0; k<BUFFPIXEL; k++)
|
||||
{
|
||||
for (int k = 0; k < BUFFPIXEL; k++) {
|
||||
__color[k] = sdbuffer[buffidx + 2] >> 3; // read
|
||||
__color[k] = __color[k] << 6 | (sdbuffer[buffidx + 1] >> 2); // green
|
||||
__color[k] = __color[k] << 5 | (sdbuffer[buffidx + 0] >> 3); // blue
|
||||
@ -135,8 +124,7 @@ void bmpdraw(File f, int x, int y)
|
||||
TFT_DC_HIGH;
|
||||
TFT_CS_LOW;
|
||||
|
||||
for(int m=0; m < BUFFPIXEL; m++)
|
||||
{
|
||||
for (int m = 0; m < BUFFPIXEL; m++) {
|
||||
SPI.transfer(__color[m] >> 8);
|
||||
SPI.transfer(__color[m]);
|
||||
}
|
||||
@ -150,8 +138,7 @@ void bmpdraw(File f, int x, int y)
|
||||
Serial.println(" ms");
|
||||
}
|
||||
|
||||
boolean bmpReadHeader(File f)
|
||||
{
|
||||
boolean bmpReadHeader(File f) {
|
||||
// read header
|
||||
uint32_t tmp;
|
||||
uint8_t bmpDepth;
|
||||
@ -182,13 +169,13 @@ boolean bmpReadHeader(File f)
|
||||
int bmp_width = read32(f);
|
||||
int bmp_height = read32(f);
|
||||
|
||||
if(bmp_width != __Gnbmp_width || bmp_height != __Gnbmp_height) // if image is not 320x240, return false
|
||||
{
|
||||
if (bmp_width != __Gnbmp_width || bmp_height != __Gnbmp_height) { // if image is not 320x240, return false
|
||||
return false;
|
||||
}
|
||||
|
||||
if (read16(f) != 1)
|
||||
if (read16(f) != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bmpDepth = read16(f);
|
||||
Serial.print("bitdepth ");
|
||||
@ -210,8 +197,7 @@ boolean bmpReadHeader(File f)
|
||||
// (the data is stored in little endian format!)
|
||||
|
||||
// LITTLE ENDIAN!
|
||||
uint16_t read16(File f)
|
||||
{
|
||||
uint16_t read16(File f) {
|
||||
uint16_t d;
|
||||
uint8_t b;
|
||||
b = f.read();
|
||||
@ -222,8 +208,7 @@ uint16_t read16(File f)
|
||||
}
|
||||
|
||||
// LITTLE ENDIAN!
|
||||
uint32_t read32(File f)
|
||||
{
|
||||
uint32_t read32(File f) {
|
||||
uint32_t d;
|
||||
uint16_t b;
|
||||
|
||||
|
@ -34,28 +34,31 @@ char __Gsbmp_files[MAX_BMP][FILENAME_LEN]; // file name
|
||||
File bmpFile;
|
||||
|
||||
// if bmp file return 1, else return 0
|
||||
bool checkBMP(char *_name, char r_name[])
|
||||
{
|
||||
bool checkBMP(char *_name, char r_name[]) {
|
||||
int len = 0;
|
||||
|
||||
if(NULL == _name)return false;
|
||||
if (NULL == _name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
while(*_name)
|
||||
{
|
||||
while (*_name) {
|
||||
r_name[len++] = *(_name++);
|
||||
if(len>FILENAME_LEN)return false;
|
||||
if (len > FILENAME_LEN) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
r_name[len] = '\0';
|
||||
|
||||
if(len < 5)return false;
|
||||
if (len < 5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// if xxx.bmp or xxx.BMP
|
||||
if (r_name[len - 4] == '.' \
|
||||
&& (r_name[len - 3] == 'b' || (r_name[len - 3] == 'B')) \
|
||||
&& (r_name[len - 2] == 'm' || (r_name[len - 2] == 'M')) \
|
||||
&& (r_name[len-1] == 'p' || (r_name[len-1] == 'P')) )
|
||||
{
|
||||
&& (r_name[len - 1] == 'p' || (r_name[len - 1] == 'P'))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -64,26 +67,21 @@ bool checkBMP(char *_name, char r_name[])
|
||||
}
|
||||
|
||||
// search root to find bmp file
|
||||
void searchDirectory()
|
||||
{
|
||||
void searchDirectory() {
|
||||
File root = SD.open("/"); // root
|
||||
while(true)
|
||||
{
|
||||
while (true) {
|
||||
File entry = root.openNextFile();
|
||||
|
||||
if (! entry)
|
||||
{
|
||||
if (! entry) {
|
||||
break;
|
||||
}
|
||||
|
||||
if(!entry.isDirectory())
|
||||
{
|
||||
if (!entry.isDirectory()) {
|
||||
char *ptmp = entry.name();
|
||||
|
||||
char __Name[20];
|
||||
|
||||
if(checkBMP(ptmp, __Name))
|
||||
{
|
||||
if (checkBMP(ptmp, __Name)) {
|
||||
Serial.println(__Name);
|
||||
|
||||
strcpy(__Gsbmp_files[__Gnfile_num++], __Name);
|
||||
@ -96,15 +94,13 @@ void searchDirectory()
|
||||
Serial.print(__Gnfile_num);
|
||||
Serial.println(" file: ");
|
||||
|
||||
for(int i=0; i<__Gnfile_num; i++)
|
||||
{
|
||||
for (int i = 0; i < __Gnfile_num; i++) {
|
||||
Serial.println(__Gsbmp_files[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
|
||||
Serial.begin(115200);
|
||||
|
||||
@ -116,8 +112,7 @@ void setup()
|
||||
Sd2Card card;
|
||||
card.init(SPI_FULL_SPEED, PIN_SD_CS);
|
||||
|
||||
if(!SD.begin(PIN_SD_CS))
|
||||
{
|
||||
if (!SD.begin(PIN_SD_CS)) {
|
||||
Serial.println("failed!");
|
||||
while (1); // init fail, die here
|
||||
}
|
||||
@ -129,8 +124,7 @@ void setup()
|
||||
TFT_BL_ON;
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
/*
|
||||
static int dirCtrl = 0;
|
||||
for(unsigned char i=0; i<__Gnfile_num; i++)
|
||||
@ -159,14 +153,12 @@ void loop()
|
||||
|
||||
bmpFile = SD.open("pfvm_1.bmp");
|
||||
|
||||
if (! bmpFile)
|
||||
{
|
||||
if (! bmpFile) {
|
||||
Serial.println("didnt find image");
|
||||
while (1);
|
||||
}
|
||||
|
||||
if(! bmpReadHeader(bmpFile))
|
||||
{
|
||||
if (! bmpReadHeader(bmpFile)) {
|
||||
Serial.println("bad bmp");
|
||||
return;
|
||||
}
|
||||
@ -193,11 +185,9 @@ void loop()
|
||||
|
||||
// dir - 1: up to down
|
||||
// dir - 2: down to up
|
||||
void bmpdraw(File f, int x, int y, int dir)
|
||||
{
|
||||
void bmpdraw(File f, int x, int y, int dir) {
|
||||
|
||||
if(bmpFile.seek(__Gnbmp_image_offset))
|
||||
{
|
||||
if (bmpFile.seek(__Gnbmp_image_offset)) {
|
||||
Serial.print("pos = ");
|
||||
Serial.println(bmpFile.position());
|
||||
}
|
||||
@ -206,15 +196,12 @@ void bmpdraw(File f, int x, int y, int dir)
|
||||
|
||||
uint8_t sdbuffer[BUFFPIXEL_X3]; // 3 * pixels to buffer
|
||||
|
||||
for (int i=0; i< __Gnbmp_height; i++)
|
||||
{
|
||||
if(dir)
|
||||
{
|
||||
for (int i = 0; i < __Gnbmp_height; i++) {
|
||||
if (dir) {
|
||||
bmpFile.seek(__Gnbmp_image_offset + (__Gnbmp_height - 1 - i) * 240 * 3);
|
||||
}
|
||||
|
||||
for(int j=0; j<(240/BUFFPIXEL); j++)
|
||||
{
|
||||
for (int j = 0; j < (240 / BUFFPIXEL); j++) {
|
||||
|
||||
bmpFile.read(sdbuffer, BUFFPIXEL_X3);
|
||||
uint8_t buffidx = 0;
|
||||
@ -222,8 +209,7 @@ void bmpdraw(File f, int x, int y, int dir)
|
||||
|
||||
unsigned int __color[BUFFPIXEL];
|
||||
|
||||
for(int k=0; k<BUFFPIXEL; k++)
|
||||
{
|
||||
for (int k = 0; k < BUFFPIXEL; k++) {
|
||||
__color[k] = sdbuffer[buffidx + 2] >> 3; // read
|
||||
__color[k] = __color[k] << 6 | (sdbuffer[buffidx + 1] >> 2); // green
|
||||
__color[k] = __color[k] << 5 | (sdbuffer[buffidx + 0] >> 3); // blue
|
||||
@ -233,12 +219,9 @@ void bmpdraw(File f, int x, int y, int dir)
|
||||
|
||||
Tft.setCol(offset_x, offset_x + BUFFPIXEL);
|
||||
|
||||
if(dir)
|
||||
{
|
||||
if (dir) {
|
||||
Tft.setPage(i, i);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
Tft.setPage(__Gnbmp_height - i - 1, __Gnbmp_height - i - 1);
|
||||
}
|
||||
|
||||
@ -247,8 +230,7 @@ void bmpdraw(File f, int x, int y, int dir)
|
||||
TFT_DC_HIGH;
|
||||
TFT_CS_LOW;
|
||||
|
||||
for(int m=0; m < BUFFPIXEL; m++)
|
||||
{
|
||||
for (int m = 0; m < BUFFPIXEL; m++) {
|
||||
SPI.transfer(__color[m] >> 8);
|
||||
SPI.transfer(__color[m]);
|
||||
|
||||
@ -264,8 +246,7 @@ void bmpdraw(File f, int x, int y, int dir)
|
||||
Serial.println(" ms");
|
||||
}
|
||||
|
||||
boolean bmpReadHeader(File f)
|
||||
{
|
||||
boolean bmpReadHeader(File f) {
|
||||
// read header
|
||||
uint32_t tmp;
|
||||
uint8_t bmpDepth;
|
||||
@ -295,13 +276,13 @@ boolean bmpReadHeader(File f)
|
||||
int bmp_width = read32(f);
|
||||
int bmp_height = read32(f);
|
||||
|
||||
if(bmp_width != __Gnbmp_width || bmp_height != __Gnbmp_height) // if image is not 320x240, return false
|
||||
{
|
||||
if (bmp_width != __Gnbmp_width || bmp_height != __Gnbmp_height) { // if image is not 320x240, return false
|
||||
return false;
|
||||
}
|
||||
|
||||
if (read16(f) != 1)
|
||||
if (read16(f) != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bmpDepth = read16(f);
|
||||
Serial.print("bitdepth ");
|
||||
@ -323,8 +304,7 @@ boolean bmpReadHeader(File f)
|
||||
// (the data is stored in little endian format!)
|
||||
|
||||
// LITTLE ENDIAN!
|
||||
uint16_t read16(File f)
|
||||
{
|
||||
uint16_t read16(File f) {
|
||||
uint16_t d;
|
||||
uint8_t b;
|
||||
b = f.read();
|
||||
@ -335,8 +315,7 @@ uint16_t read16(File f)
|
||||
}
|
||||
|
||||
// LITTLE ENDIAN!
|
||||
uint32_t read32(File f)
|
||||
{
|
||||
uint32_t read32(File f) {
|
||||
uint32_t d;
|
||||
uint16_t b;
|
||||
|
||||
|
@ -18,20 +18,17 @@ Ticker flipper;
|
||||
|
||||
int count = 0;
|
||||
|
||||
void flip()
|
||||
{
|
||||
void flip() {
|
||||
int state = digitalRead(LED_BUILTIN); // get the current state of GPIO1 pin
|
||||
digitalWrite(LED_BUILTIN, !state); // set pin to the opposite state
|
||||
|
||||
++count;
|
||||
// when the counter reaches a certain value, start blinking like crazy
|
||||
if (count == 20)
|
||||
{
|
||||
if (count == 20) {
|
||||
flipper.attach(0.1, flip);
|
||||
}
|
||||
// when the counter reaches yet another value, stop blinking
|
||||
else if (count == 120)
|
||||
{
|
||||
else if (count == 120) {
|
||||
flipper.detach();
|
||||
}
|
||||
}
|
||||
|
@ -19,15 +19,15 @@ void setup() {
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
unsigned long currentMillis = millis();
|
||||
if (currentMillis - previousMillis >= interval) {
|
||||
previousMillis = currentMillis;
|
||||
if (ledState == LOW)
|
||||
if (ledState == LOW) {
|
||||
ledState = HIGH; // Note that this switches the LED *off*
|
||||
else
|
||||
} else {
|
||||
ledState = LOW; // Note that this switches the LED *on*
|
||||
}
|
||||
digitalWrite(LED_BUILTIN, ledState);
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
|
||||
/*
|
||||
* NativeSdk by Simon Peter
|
||||
* Access functionality from the Espressif ESP8266 SDK
|
||||
* This example code is in the public domain
|
||||
*
|
||||
* This is for advanced users.
|
||||
* Note that this makes your code dependent on the ESP8266, which is generally
|
||||
* a bad idea. So you should try to use esp8266/Arduino functionality
|
||||
* where possible instead, in order to abstract away the hardware dependency.
|
||||
NativeSdk by Simon Peter
|
||||
Access functionality from the Espressif ESP8266 SDK
|
||||
This example code is in the public domain
|
||||
|
||||
This is for advanced users.
|
||||
Note that this makes your code dependent on the ESP8266, which is generally
|
||||
a bad idea. So you should try to use esp8266/Arduino functionality
|
||||
where possible instead, in order to abstract away the hardware dependency.
|
||||
*/
|
||||
|
||||
// Expose Espressif SDK functionality - wrapped in ifdef so that it still
|
||||
|
@ -36,8 +36,7 @@
|
||||
timeval cbtime; // time set in callback
|
||||
bool cbtime_set = false;
|
||||
|
||||
void time_is_set (void)
|
||||
{
|
||||
void time_is_set(void) {
|
||||
gettimeofday(&cbtime, NULL);
|
||||
cbtime_set = true;
|
||||
Serial.println("------------------ settimeofday() was called ------------------");
|
||||
|
@ -45,8 +45,7 @@ void setup() {
|
||||
Serial.println(rtcData.crc32, HEX);
|
||||
if (crcOfData != rtcData.crc32) {
|
||||
Serial.println("CRC32 in RTC memory doesn't match CRC32 of data. Data is probably invalid!");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.println("CRC32 check ok, data is probably valid.");
|
||||
}
|
||||
}
|
||||
@ -71,8 +70,7 @@ void setup() {
|
||||
void loop() {
|
||||
}
|
||||
|
||||
uint32_t calculateCRC32(const uint8_t *data, size_t length)
|
||||
{
|
||||
uint32_t calculateCRC32(const uint8_t *data, size_t length) {
|
||||
uint32_t crc = 0xffffffff;
|
||||
while (length--) {
|
||||
uint8_t c = *data++;
|
||||
@ -99,8 +97,7 @@ void printMemory() {
|
||||
Serial.print(buf);
|
||||
if ((i + 1) % 32 == 0) {
|
||||
Serial.println();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Serial.print(" ");
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
/**
|
||||
* TestEspApi by Max Vilimpoc
|
||||
* This code is released to the public domain.
|
||||
*
|
||||
* Test out the Expressif ESP8266 Non-OS API, exhaustively trying out
|
||||
* as many of the built-in functions as possible.
|
||||
*
|
||||
* Some of the code is based on examples in:
|
||||
* "20A-ESP8266__RTOS_SDK__Programming Guide__EN_v1.3.0.pdf"
|
||||
TestEspApi by Max Vilimpoc
|
||||
This code is released to the public domain.
|
||||
|
||||
Test out the Expressif ESP8266 Non-OS API, exhaustively trying out
|
||||
as many of the built-in functions as possible.
|
||||
|
||||
Some of the code is based on examples in:
|
||||
"20A-ESP8266__RTOS_SDK__Programming Guide__EN_v1.3.0.pdf"
|
||||
*/
|
||||
|
||||
#ifdef ESP8266
|
||||
@ -28,8 +28,7 @@ Stream& ehConsolePort(Serial);
|
||||
// UNLESS: You swap the TX pin using the alternate pinout.
|
||||
const uint8_t LED_PIN = 1;
|
||||
|
||||
const char * const RST_REASONS[] =
|
||||
{
|
||||
const char * const RST_REASONS[] = {
|
||||
"REASON_DEFAULT_RST",
|
||||
"REASON_WDT_RST",
|
||||
"REASON_EXCEPTION_RST",
|
||||
@ -39,8 +38,7 @@ const char * const RST_REASONS[] =
|
||||
"REASON_EXT_SYS_RST"
|
||||
};
|
||||
|
||||
const char * const FLASH_SIZE_MAP_NAMES[] =
|
||||
{
|
||||
const char * const FLASH_SIZE_MAP_NAMES[] = {
|
||||
"FLASH_SIZE_4M_MAP_256_256",
|
||||
"FLASH_SIZE_2M",
|
||||
"FLASH_SIZE_8M_MAP_512_512",
|
||||
@ -50,16 +48,14 @@ const char * const FLASH_SIZE_MAP_NAMES[] =
|
||||
"FLASH_SIZE_32M_MAP_1024_1024"
|
||||
};
|
||||
|
||||
const char * const OP_MODE_NAMES[]
|
||||
{
|
||||
const char * const OP_MODE_NAMES[] {
|
||||
"NULL_MODE",
|
||||
"STATION_MODE",
|
||||
"SOFTAP_MODE",
|
||||
"STATIONAP_MODE"
|
||||
};
|
||||
|
||||
const char * const AUTH_MODE_NAMES[]
|
||||
{
|
||||
const char * const AUTH_MODE_NAMES[] {
|
||||
"AUTH_OPEN",
|
||||
"AUTH_WEP",
|
||||
"AUTH_WPA_PSK",
|
||||
@ -68,16 +64,14 @@ const char * const AUTH_MODE_NAMES[]
|
||||
"AUTH_MAX"
|
||||
};
|
||||
|
||||
const char * const PHY_MODE_NAMES[]
|
||||
{
|
||||
const char * const PHY_MODE_NAMES[] {
|
||||
"",
|
||||
"PHY_MODE_11B",
|
||||
"PHY_MODE_11G",
|
||||
"PHY_MODE_11N"
|
||||
};
|
||||
|
||||
const char * const EVENT_NAMES[]
|
||||
{
|
||||
const char * const EVENT_NAMES[] {
|
||||
"EVENT_STAMODE_CONNECTED",
|
||||
"EVENT_STAMODE_DISCONNECTED",
|
||||
"EVENT_STAMODE_AUTHMODE_CHANGE",
|
||||
@ -87,8 +81,7 @@ const char * const EVENT_NAMES[]
|
||||
"EVENT_MAX"
|
||||
};
|
||||
|
||||
const char * const EVENT_REASONS[]
|
||||
{
|
||||
const char * const EVENT_REASONS[] {
|
||||
"",
|
||||
"REASON_UNSPECIFIED",
|
||||
"REASON_AUTH_EXPIRE",
|
||||
@ -115,19 +108,16 @@ const char * const EVENT_REASONS[]
|
||||
"REASON_CIPHER_SUITE_REJECTED",
|
||||
};
|
||||
|
||||
const char * const EVENT_REASONS_200[]
|
||||
{
|
||||
const char * const EVENT_REASONS_200[] {
|
||||
"REASON_BEACON_TIMEOUT",
|
||||
"REASON_NO_AP_FOUND"
|
||||
};
|
||||
|
||||
void wifi_event_handler_cb(System_Event_t * event)
|
||||
{
|
||||
void wifi_event_handler_cb(System_Event_t * event) {
|
||||
ehConsolePort.print(EVENT_NAMES[event->event]);
|
||||
ehConsolePort.print(" (");
|
||||
|
||||
switch (event->event)
|
||||
{
|
||||
switch (event->event) {
|
||||
case EVENT_STAMODE_CONNECTED:
|
||||
break;
|
||||
case EVENT_STAMODE_DISCONNECTED:
|
||||
@ -137,8 +127,7 @@ void wifi_event_handler_cb(System_Event_t * event)
|
||||
case EVENT_STAMODE_GOT_IP:
|
||||
break;
|
||||
case EVENT_SOFTAPMODE_STACONNECTED:
|
||||
case EVENT_SOFTAPMODE_STADISCONNECTED:
|
||||
{
|
||||
case EVENT_SOFTAPMODE_STADISCONNECTED: {
|
||||
char mac[32] = {0};
|
||||
snprintf(mac, 32, MACSTR ", aid: %d", MAC2STR(event->event_info.sta_connected.mac), event->event_info.sta_connected.aid);
|
||||
|
||||
@ -150,8 +139,7 @@ void wifi_event_handler_cb(System_Event_t * event)
|
||||
ehConsolePort.println(")");
|
||||
}
|
||||
|
||||
void print_softap_config(Stream & consolePort, softap_config const& config)
|
||||
{
|
||||
void print_softap_config(Stream & consolePort, softap_config const& config) {
|
||||
consolePort.println();
|
||||
consolePort.println(F("SoftAP Configuration"));
|
||||
consolePort.println(F("--------------------"));
|
||||
@ -185,8 +173,7 @@ void print_softap_config(Stream & consolePort, softap_config const& config)
|
||||
consolePort.println();
|
||||
}
|
||||
|
||||
void print_system_info(Stream & consolePort)
|
||||
{
|
||||
void print_system_info(Stream & consolePort) {
|
||||
const rst_info * resetInfo = system_get_rst_info();
|
||||
consolePort.print(F("system_get_rst_info() reset reason: "));
|
||||
consolePort.println(RST_REASONS[resetInfo->reason]);
|
||||
@ -224,8 +211,7 @@ void print_system_info(Stream & consolePort)
|
||||
consolePort.println(FLASH_SIZE_MAP_NAMES[system_get_flash_size_map()]);
|
||||
}
|
||||
|
||||
void print_wifi_general(Stream & consolePort)
|
||||
{
|
||||
void print_wifi_general(Stream & consolePort) {
|
||||
consolePort.print(F("wifi_get_channel(): "));
|
||||
consolePort.println(wifi_get_channel());
|
||||
|
||||
@ -233,8 +219,7 @@ void print_wifi_general(Stream & consolePort)
|
||||
consolePort.println(PHY_MODE_NAMES[wifi_get_phy_mode()]);
|
||||
}
|
||||
|
||||
void secure_softap_config(softap_config * config, const char * ssid, const char * password)
|
||||
{
|
||||
void secure_softap_config(softap_config * config, const char * ssid, const char * password) {
|
||||
size_t ssidLen = strlen(ssid) < sizeof(config->ssid) ? strlen(ssid) : sizeof(config->ssid);
|
||||
size_t passwordLen = strlen(password) < sizeof(config->password) ? strlen(password) : sizeof(config->password);
|
||||
|
||||
@ -252,8 +237,7 @@ void secure_softap_config(softap_config * config, const char * ssid, const char
|
||||
// config->beacon_interval = 1000;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
void setup() {
|
||||
// Reuse default Serial port rate, so the bootloader
|
||||
// messages are also readable.
|
||||
|
||||
@ -304,8 +288,7 @@ void setup()
|
||||
// ESP.deepSleep(15000);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
void loop() {
|
||||
Serial.print(F("system_get_time(): "));
|
||||
Serial.println(system_get_time());
|
||||
delay(1000);
|
||||
|
Loading…
x
Reference in New Issue
Block a user