mirror of
https://github.com/0x1d/esp8266-laser.git
synced 2025-12-14 18:15:22 +01:00
added /preset endpoint and fixed numbering in presets.json
This commit is contained in:
23
README.md
23
README.md
@@ -8,8 +8,24 @@ Wifi Host for the Arduino-Laser-Spirograph
|
||||
* laser=1-128 (1:permanent, 2-127 pulse, 128 off)
|
||||
* motor1=1-128
|
||||
* motor2=1-128
|
||||
* motor3=1-128
|
||||
* motor3=1-128
|
||||
|
||||
* /preset
|
||||
* **POST** sets new value(s) to Preset
|
||||
* nr=presetNr (1-128)
|
||||
* laser=1-128 (1:permanent, 2-127 pulse, 128 off)
|
||||
* motor1=1-128
|
||||
* motor2=1-128
|
||||
* motor3=1-128
|
||||
* apply=true -> run preset
|
||||
|
||||
* /presetMode
|
||||
* **GET** returns current mode
|
||||
* **POST** sets mode 0: presetsOff 1: cycle (not completed feature)
|
||||
|
||||
* /presets
|
||||
* **GET** returns /presets.json
|
||||
|
||||
* /wificonfig
|
||||
* **GET** returns wifi settings
|
||||
* **POST** sets new wifi setting{s}
|
||||
@@ -22,11 +38,6 @@ Wifi Host for the Arduino-Laser-Spirograph
|
||||
* **GET** returns free heap of the ESP8266
|
||||
* /files
|
||||
* **GET** returns list of files
|
||||
* /presetMode
|
||||
* **GET** returns current mode
|
||||
* **POST** sets mode 0: presetsOff 1: cycle (not completed feature)
|
||||
* /presets
|
||||
* **GET** returns /presets.json
|
||||
|
||||
|
||||
## Install
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
{
|
||||
"presets": {
|
||||
"0": [
|
||||
106,
|
||||
107,
|
||||
108,
|
||||
109
|
||||
],
|
||||
"1": [
|
||||
62,
|
||||
63,
|
||||
@@ -767,6 +761,12 @@
|
||||
114,
|
||||
115,
|
||||
116
|
||||
],
|
||||
"128": [
|
||||
106,
|
||||
107,
|
||||
108,
|
||||
109
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,5 @@
|
||||
{
|
||||
"presets": {
|
||||
"0": [
|
||||
106,
|
||||
107,
|
||||
108,
|
||||
109
|
||||
],
|
||||
"1": [
|
||||
62,
|
||||
63,
|
||||
@@ -767,6 +761,12 @@
|
||||
114,
|
||||
115,
|
||||
116
|
||||
],
|
||||
"128": [
|
||||
106,
|
||||
107,
|
||||
108,
|
||||
109
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -115,6 +115,77 @@ void hFileList() {
|
||||
responseBuffer = String();
|
||||
}
|
||||
|
||||
bool hReadPresets()
|
||||
{
|
||||
// streamFile instead of rebuild json string
|
||||
String path = "/presets.json";
|
||||
String contentType = getContentType(path);
|
||||
if (SPIFFS.exists(path)) {
|
||||
File file = SPIFFS.open(path, "r");
|
||||
size_t sent = server.streamFile(file, contentType);
|
||||
file.close();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void hWritePreset()
|
||||
{
|
||||
presetMode = 0;
|
||||
int error = 0;
|
||||
int presetNr = 0;
|
||||
bool apply = false;
|
||||
|
||||
StaticJsonBuffer<200> jsonBuffer;
|
||||
JsonObject& root = jsonBuffer.createObject();
|
||||
JsonObject& data = root.createNestedObject("preset");
|
||||
if (server.hasArg("nr") ) {
|
||||
presetNr = server.arg("nr").toInt();
|
||||
data["nr"] = (String)presetNr;
|
||||
}
|
||||
else
|
||||
{
|
||||
error = 1;
|
||||
}
|
||||
if (server.hasArg("laser") && error == 0) {
|
||||
presets[presetNr-1][0] = server.arg("laser").toInt();
|
||||
data["laser"] = (String)presets[presetNr-1][0];
|
||||
}
|
||||
if (server.hasArg("motor1") && error == 0) {
|
||||
presets[presetNr-1][1] = server.arg("motor1").toInt();
|
||||
data["motor1"] = (String)presets[presetNr-1][1];
|
||||
}
|
||||
if (server.hasArg("motor2") && error == 0) {
|
||||
presets[presetNr-1][2] = server.arg("motor2").toInt();
|
||||
data["motor2"] = (String) presets[presetNr-1][2];
|
||||
}
|
||||
if (server.hasArg("motor3") && error == 0) {
|
||||
presets[presetNr-1][3] = server.arg("motor3").toInt();
|
||||
data["motor3"] = (String) presets[presetNr-1][3];
|
||||
}
|
||||
if (server.arg("apply") == "true" && error == 0)
|
||||
{
|
||||
apply = true;
|
||||
data["apply"] = "true";
|
||||
presetToLaser(presetNr-1);
|
||||
}
|
||||
|
||||
error = savePresetFile() ? 0 : 1;
|
||||
if(error != 0)
|
||||
{
|
||||
String responseBuffer = String();
|
||||
root.prettyPrintTo(responseBuffer);
|
||||
server.send(200, "text/json", responseBuffer);
|
||||
responseBuffer = String();
|
||||
}
|
||||
else
|
||||
{
|
||||
server.send(400, "text/plain", "400 Bad Request");
|
||||
}
|
||||
jsonBuffer.clear();
|
||||
|
||||
}
|
||||
|
||||
void hReadSpiro()
|
||||
{
|
||||
String responseBuffer = String();
|
||||
@@ -131,20 +202,6 @@ void hReadSpiro()
|
||||
responseBuffer = String();
|
||||
}
|
||||
|
||||
bool hReadPresets()
|
||||
{
|
||||
// streamFile instead of rebuild json string
|
||||
String path = "/presets.json";
|
||||
String contentType = getContentType(path);
|
||||
if (SPIFFS.exists(path)) {
|
||||
File file = SPIFFS.open(path, "r");
|
||||
size_t sent = server.streamFile(file, contentType);
|
||||
file.close();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void hWriteSpiro()
|
||||
{
|
||||
presetMode = 0;
|
||||
@@ -287,7 +344,7 @@ boolean readPresetsFile() {
|
||||
JsonArray& values = sets[keyStr];
|
||||
for (int x = 0; x < 4; x++)
|
||||
{
|
||||
presets[key][x] = values[x];
|
||||
presets[key-1][x] = values[x];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -307,7 +364,7 @@ bool savePresetFile() {
|
||||
JsonArray& set = sets.createNestedArray((String)i);
|
||||
for (int x = 0; x < 4; x++)
|
||||
{
|
||||
set.add(presets[i][x]);
|
||||
set.add(presets[i+1][x]);
|
||||
}
|
||||
}
|
||||
//json.prettyPrintTo(Serial);
|
||||
@@ -504,7 +561,12 @@ void setup(void) {
|
||||
server.on("/presets", HTTP_GET, hReadPresets);
|
||||
server.on("/presets", HTTP_POST, []() {
|
||||
server.send(400, "text/plain", "400 Bad Request");
|
||||
});
|
||||
|
||||
server.on("/preset", HTTP_GET, []() {
|
||||
server.send(400, "text/plain", "400 Bad Request");
|
||||
});
|
||||
server.on("/preset", HTTP_POST, hWritePreset);
|
||||
|
||||
|
||||
server.on("/presetMode", HTTP_GET, []() {
|
||||
@@ -539,8 +601,6 @@ void setup(void) {
|
||||
server.begin();
|
||||
Serial.println("HTTP server started");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void handleNotFound() {
|
||||
@@ -566,7 +626,7 @@ void loop(void) {
|
||||
{
|
||||
if (millis() - previousMillis >= cycleTime)
|
||||
{
|
||||
presetToLaser(activePreset + 1);
|
||||
presetToLaser(activePreset);
|
||||
if (activePreset < 128)
|
||||
{
|
||||
activePreset++;
|
||||
|
||||
Reference in New Issue
Block a user