From 34dde05741c50cc5c2a591ad564ac37c21b122c7 Mon Sep 17 00:00:00 2001
From: jomjol <30766535+jomjol@users.noreply.github.com>
Date: Sun, 23 Aug 2020 11:15:47 +0200
Subject: [PATCH] nightly
---
README.md | 6 +-
.../lib/connect_wlan/{Helper.h => Helper._h_} | 0
.../connect_wlan/{Helper.cpp => Helper.cp_p} | 0
.../lib/jomjol_fileserver_ota/server_file.cpp | 68 ++++++----
.../Helper.cpp | 12 ++
.../Helper.h | 0
code/lib/jomjol_image_proc/CFindTemplate.cpp | 16 +++
code/lib/jomjol_image_proc/CFindTemplate.h | 1 +
code/platformio.ini | 2 +-
code/src/server_main.cpp | 6 +-
code/src/server_tflite.cpp | 126 +++++++++++++++++-
firmware/bootloader.bin | Bin 27152 -> 27152 bytes
firmware/firmware.bin | Bin 1633344 -> 1640576 bytes
13 files changed, 204 insertions(+), 33 deletions(-)
rename code/lib/connect_wlan/{Helper.h => Helper._h_} (100%)
rename code/lib/connect_wlan/{Helper.cpp => Helper.cp_p} (100%)
rename code/lib/{jomjol_image_proc => jomjol_helper}/Helper.cpp (91%)
rename code/lib/{jomjol_image_proc => jomjol_helper}/Helper.h (100%)
diff --git a/README.md b/README.md
index 1059c6b9..95d0bf83 100644
--- a/README.md
+++ b/README.md
@@ -13,8 +13,12 @@ A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4571
## Change log - latest version
-##### Rolling (2020-08-17)
+##### Rolling (2020-08-23)
+* Preparation for web configuration
+
+* Security Issue: Remove access to "wlan.ini"
+
* Only editor for config.ini
* Implementation of Digital Consistency Check: check if Digit shows next number earlier, than previous number has gone through zero - Turn on/off - see updated config.ini `CheckDigitIncreaseConsistency = True`)
diff --git a/code/lib/connect_wlan/Helper.h b/code/lib/connect_wlan/Helper._h_
similarity index 100%
rename from code/lib/connect_wlan/Helper.h
rename to code/lib/connect_wlan/Helper._h_
diff --git a/code/lib/connect_wlan/Helper.cpp b/code/lib/connect_wlan/Helper.cp_p
similarity index 100%
rename from code/lib/connect_wlan/Helper.cpp
rename to code/lib/connect_wlan/Helper.cp_p
diff --git a/code/lib/jomjol_fileserver_ota/server_file.cpp b/code/lib/jomjol_fileserver_ota/server_file.cpp
index 642386ae..507c5572 100644
--- a/code/lib/jomjol_fileserver_ota/server_file.cpp
+++ b/code/lib/jomjol_fileserver_ota/server_file.cpp
@@ -30,6 +30,8 @@
#include "server_help.h"
+#include "Helper.h"
+
/* Max length a file path can have on storage */
// #define FILE_PATH_MAX (ESP_VFS_PATH_MAX + CONFIG_SPIFFS_OBJ_NAME_LEN)
#define FILE_PATH_MAX (255)
@@ -154,36 +156,39 @@ static esp_err_t http_resp_dir_html(httpd_req_t *req, const char *dirpath)
/* Iterate over all files / folders and fetch their names and sizes */
while ((entry = readdir(dir)) != NULL) {
- entrytype = (entry->d_type == DT_DIR ? "directory" : "file");
+ if (strcmp("wlan.ini", entry->d_name) != 0 ) // wlan.ini soll nicht angezeigt werden!
+ {
+ entrytype = (entry->d_type == DT_DIR ? "directory" : "file");
- strlcpy(entrypath + dirpath_len, entry->d_name, sizeof(entrypath) - dirpath_len);
- printf("Entrypath: %s\n", entrypath);
- if (stat(entrypath, &entry_stat) == -1) {
- ESP_LOGE(TAG, "Failed to stat %s : %s", entrytype, entry->d_name);
- continue;
- }
- sprintf(entrysize, "%ld", entry_stat.st_size);
- ESP_LOGI(TAG, "Found %s : %s (%s bytes)", entrytype, entry->d_name, entrysize);
+ strlcpy(entrypath + dirpath_len, entry->d_name, sizeof(entrypath) - dirpath_len);
+ printf("Entrypath: %s\n", entrypath);
+ if (stat(entrypath, &entry_stat) == -1) {
+ ESP_LOGE(TAG, "Failed to stat %s : %s", entrytype, entry->d_name);
+ continue;
+ }
+ sprintf(entrysize, "%ld", entry_stat.st_size);
+ ESP_LOGI(TAG, "Found %s : %s (%s bytes)", entrytype, entry->d_name, entrysize);
- /* Send chunk of HTML file containing table entries with file name and size */
- httpd_resp_sendstr_chunk(req, "
uri);
- httpd_resp_sendstr_chunk(req, entry->d_name);
- if (entry->d_type == DT_DIR) {
- httpd_resp_sendstr_chunk(req, "/");
+ /* Send chunk of HTML file containing table entries with file name and size */
+ httpd_resp_sendstr_chunk(req, "| uri);
+ httpd_resp_sendstr_chunk(req, entry->d_name);
+ if (entry->d_type == DT_DIR) {
+ httpd_resp_sendstr_chunk(req, "/");
+ }
+ httpd_resp_sendstr_chunk(req, "\">");
+ httpd_resp_sendstr_chunk(req, entry->d_name);
+ httpd_resp_sendstr_chunk(req, " | ");
+ httpd_resp_sendstr_chunk(req, entrytype);
+ httpd_resp_sendstr_chunk(req, " | ");
+ httpd_resp_sendstr_chunk(req, entrysize);
+ httpd_resp_sendstr_chunk(req, " | ");
+ httpd_resp_sendstr_chunk(req, "");
+ httpd_resp_sendstr_chunk(req, " | \n");
}
- httpd_resp_sendstr_chunk(req, "\">");
- httpd_resp_sendstr_chunk(req, entry->d_name);
- httpd_resp_sendstr_chunk(req, " | ");
- httpd_resp_sendstr_chunk(req, entrytype);
- httpd_resp_sendstr_chunk(req, " | ");
- httpd_resp_sendstr_chunk(req, entrysize);
- httpd_resp_sendstr_chunk(req, " | ");
- httpd_resp_sendstr_chunk(req, "");
- httpd_resp_sendstr_chunk(req, " |
\n");
}
closedir(dir);
@@ -214,7 +219,7 @@ static esp_err_t download_get_handler(httpd_req_t *req)
const char *filename = get_path_from_uri(filepath, ((struct file_server_data *)req->user_ctx)->base_path,
req->uri + sizeof("/fileserver") - 1, sizeof(filepath));
- printf("1 uri: %s, filename: %s, filepath: %s\n", req->uri, filename, filepath);
+ printf("uri: %s, filename: %s, filepath: %s\n", req->uri, filename, filepath);
// filename = get_path_from_uri(filepath, ((struct file_server_data *)req->user_ctx)->base_path,
// req->uri, sizeof(filepath));
@@ -231,7 +236,10 @@ static esp_err_t download_get_handler(httpd_req_t *req)
return http_resp_dir_html(req, filepath);
}
- if (stat(filepath, &file_stat) == -1) {
+ std::string testwlan = toUpper(std::string(filename));
+
+ if ((stat(filepath, &file_stat) == -1) || (testwlan.compare("/WLAN.INI") == 0 )) { // wlan.ini soll nicht angezeigt werden!
+
/* If file not present on SPIFFS check if URI
* corresponds to one of the hardcoded paths */
ESP_LOGE(TAG, "Failed to stat file : %s", filepath);
@@ -248,6 +256,8 @@ static esp_err_t download_get_handler(httpd_req_t *req)
return ESP_FAIL;
}
+ esp_err_t res = httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
+
ESP_LOGI(TAG, "Sending file : %s (%ld bytes)...", filename, file_stat.st_size);
set_content_type_from_file(req, filename);
diff --git a/code/lib/jomjol_image_proc/Helper.cpp b/code/lib/jomjol_helper/Helper.cpp
similarity index 91%
rename from code/lib/jomjol_image_proc/Helper.cpp
rename to code/lib/jomjol_helper/Helper.cpp
index e399ced1..789fd077 100644
--- a/code/lib/jomjol_image_proc/Helper.cpp
+++ b/code/lib/jomjol_helper/Helper.cpp
@@ -113,8 +113,20 @@ void CopyFile(string input, string output)
input = FormatFileName(input);
output = FormatFileName(output);
+ if (toUpper(input).compare("/SDCARD/WLAN.INI") == 0)
+ {
+ printf("wlan.ini kann nicht kopiert werden!\n");
+ return;
+ }
+
char cTemp;
FILE* fpSourceFile = fopen(input.c_str(), "rb");
+ if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch!
+ {
+ printf("File %s existiert nicht!\n", input.c_str());
+ return;
+ }
+
FILE* fpTargetFile = fopen(output.c_str(), "wb");
// Code Section
diff --git a/code/lib/jomjol_image_proc/Helper.h b/code/lib/jomjol_helper/Helper.h
similarity index 100%
rename from code/lib/jomjol_image_proc/Helper.h
rename to code/lib/jomjol_helper/Helper.h
diff --git a/code/lib/jomjol_image_proc/CFindTemplate.cpp b/code/lib/jomjol_image_proc/CFindTemplate.cpp
index 1f5368e4..db947129 100644
--- a/code/lib/jomjol_image_proc/CFindTemplate.cpp
+++ b/code/lib/jomjol_image_proc/CFindTemplate.cpp
@@ -384,6 +384,22 @@ CImageBasis::CImageBasis(uint8_t* _rgb_image, int _channels, int _width, int _he
this->externalImage = true;
}
+void CImageBasis::Contrast(float _contrast) //input range [-100..100]
+{
+ stbi_uc* p_source;
+
+ float contrast = (_contrast/100) + 1; //convert to decimal & shift range: [0..2]
+ float intercept = 128 * (1 - contrast);
+
+ for (int x = 0; x < width; ++x)
+ for (int y = 0; y < height; ++y)
+ {
+ p_source = this->rgb_image + (this->channels * (y * this->width + x));
+ for (int channels = 0; channels < this->channels; ++channels)
+ p_source[channels] = (uint8_t) std::min(255, std::max(0, (int) (p_source[channels] * contrast + intercept)));
+ }
+}
+
CImageBasis::~CImageBasis()
{
if (!this->externalImage)
diff --git a/code/lib/jomjol_image_proc/CFindTemplate.h b/code/lib/jomjol_image_proc/CFindTemplate.h
index 41af0a2b..58e5e840 100644
--- a/code/lib/jomjol_image_proc/CFindTemplate.h
+++ b/code/lib/jomjol_image_proc/CFindTemplate.h
@@ -35,6 +35,7 @@ class CImageBasis
void drawLine(int x1, int y1, int x2, int y2, int r, int g, int b, int thickness = 1);
void drawCircle(int x1, int y1, int rad, int r, int g, int b, int thickness = 1);
void setPixelColor(int x, int y, int r, int g, int b);
+ void Contrast(float _contrast);
CImageBasis();
diff --git a/code/platformio.ini b/code/platformio.ini
index c9ef8a18..b6f4c9fd 100644
--- a/code/platformio.ini
+++ b/code/platformio.ini
@@ -24,7 +24,7 @@ board_build.embed_files =
;board_build.partitions = partitions_singleapp.csv
board_build.partitions = partition.csv
-lib_deps = connect_wlan, conversions, driver, sensors, jomjol_image_proc, jomjol_controlcamera, jomjol_flowcontroll, jomjol_tfliteclass, tfmicro, jomjol_fileserver_ota, jomjol_time_sntp, jomjol_logfile
+lib_deps = jomjol_helper, connect_wlan, conversions, driver, sensors, jomjol_image_proc, jomjol_controlcamera, jomjol_flowcontroll, jomjol_tfliteclass, tfmicro, jomjol_fileserver_ota, jomjol_time_sntp, jomjol_logfile
monitor_speed = 115200
debug_tool = esp-prog
diff --git a/code/src/server_main.cpp b/code/src/server_main.cpp
index 52ea4bff..da2ffc6c 100644
--- a/code/src/server_main.cpp
+++ b/code/src/server_main.cpp
@@ -138,8 +138,12 @@ esp_err_t hello_main_handler(httpd_req_t *req)
httpd_resp_send_err(req, HTTPD_404_NOT_FOUND, "File does not exist");
return ESP_FAIL;
}
+ esp_err_t res;
+ res = httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
+ if (res != ESP_OK)
+ return res;
- esp_err_t res = send_file(req, filetosend, &file_stat);
+ res = send_file(req, filetosend, &file_stat);
if (res != ESP_OK)
return res;
diff --git a/code/src/server_tflite.cpp b/code/src/server_tflite.cpp
index b495ee80..fae8275c 100644
--- a/code/src/server_tflite.cpp
+++ b/code/src/server_tflite.cpp
@@ -8,6 +8,8 @@
#include
#include
+#include "Helper.h"
+
#include "esp_camera.h"
#include "time_sntp.h"
#include "ClassControllCamera.h"
@@ -125,6 +127,7 @@ esp_err_t handler_doflow(httpd_req_t *req)
+
esp_err_t handler_wasserzaehler(httpd_req_t *req)
{
LogFile.WriteToFile("handler_wasserzaehler");
@@ -215,6 +218,121 @@ esp_err_t handler_wasserzaehler(httpd_req_t *req)
+ /* Respond with an empty chunk to signal HTTP response completion */
+ httpd_resp_sendstr_chunk(req, NULL);
+
+ return ESP_OK;
+};
+
+
+esp_err_t handler_editflow(httpd_req_t *req)
+{
+ LogFile.WriteToFile("handler_editflow");
+ const char* resp_str;
+ string zw;
+ bool _rawValue = false;
+
+ printf("handler_editflow uri:\n"); printf(req->uri); printf("\n");
+
+ char _query[200];
+ char _valuechar[30];
+ string _task;
+
+ if (httpd_req_get_url_query_str(req, _query, 200) == ESP_OK)
+ {
+ if (httpd_query_key_value(_query, "task", _valuechar, 30) == ESP_OK)
+ {
+ printf("task is found"); printf(_valuechar); printf("\n");
+ _task = string(_valuechar);
+ }
+ }
+
+ if (_task.compare("copy") == 0)
+ {
+ string in, out, zw;
+
+ httpd_query_key_value(_query, "in", _valuechar, 30);
+ in = string(_valuechar);
+ printf("in: "); printf(in.c_str()); printf("\n");
+
+ httpd_query_key_value(_query, "out", _valuechar, 30);
+ out = string(_valuechar);
+ printf("out: "); printf(out.c_str()); printf("\n");
+
+ in = "/sdcard" + in;
+ out = "/sdcard" + out;
+
+ CopyFile(in, out);
+ zw = "Copy Done";
+ httpd_resp_sendstr_chunk(req, zw.c_str());
+ }
+
+
+ if (_task.compare("cutref") == 0)
+ {
+ string in, out, zw;
+ int x, y, dx, dy;
+ bool enhance = false;
+
+ httpd_query_key_value(_query, "in", _valuechar, 30);
+ in = string(_valuechar);
+ printf("in: "); printf(in.c_str()); printf("\n");
+
+ httpd_query_key_value(_query, "out", _valuechar, 30);
+ out = string(_valuechar);
+ printf("out: "); printf(out.c_str()); printf("\n");
+
+ httpd_query_key_value(_query, "x", _valuechar, 30);
+ zw = string(_valuechar);
+ x = stoi(zw);
+ printf("x: "); printf(zw.c_str()); printf("\n");
+
+ httpd_query_key_value(_query, "y", _valuechar, 30);
+ zw = string(_valuechar);
+ y = stoi(zw);
+ printf("y: "); printf(zw.c_str()); printf("\n");
+
+ httpd_query_key_value(_query, "dx", _valuechar, 30);
+ zw = string(_valuechar);
+ dx = stoi(zw);
+ printf("dx: "); printf(zw.c_str()); printf("\n");
+
+ httpd_query_key_value(_query, "dy", _valuechar, 30);
+ zw = string(_valuechar);
+ dy = stoi(zw);
+ printf("dy: "); printf(zw.c_str()); printf("\n");
+
+ if (httpd_query_key_value(_query, "enhance", _valuechar, 10) == ESP_OK)
+ {
+ zw = string(_valuechar);
+ if (zw.compare("true") == 0)
+ {
+ enhance = true;
+ }
+ }
+
+ in = "/sdcard" + in;
+ out = "/sdcard" + out;
+
+ string out2 = out.substr(0, out.length() - 4) + "_org.jpg";
+
+ CAlignAndCutImage *caic = new CAlignAndCutImage(in);
+ caic->CutAndSave(out2, x, y, dx, dy);
+ delete caic;
+
+ CImageBasis *cim = new CImageBasis(out2);
+ if (enhance)
+ {
+ cim->Contrast(90);
+ }
+
+ cim->SaveToFile(out);
+ delete cim;
+
+ zw = "CutImage Done";
+ httpd_resp_sendstr_chunk(req, zw.c_str());
+ }
+
/* Respond with an empty chunk to signal HTTP response completion */
httpd_resp_sendstr_chunk(req, NULL);
@@ -319,7 +437,13 @@ void register_server_tflite_uri(httpd_handle_t server)
camuri.uri = "/doflow";
camuri.handler = handler_doflow;
camuri.user_ctx = (void*) "Light Off";
- httpd_register_uri_handler(server, &camuri);
+ httpd_register_uri_handler(server, &camuri);
+
+
+ camuri.uri = "/editflow.html";
+ camuri.handler = handler_editflow;
+ camuri.user_ctx = (void*) "EditFlow";
+ httpd_register_uri_handler(server, &camuri);
camuri.uri = "/wasserzaehler.html";
camuri.handler = handler_wasserzaehler;
diff --git a/firmware/bootloader.bin b/firmware/bootloader.bin
index 83f718db7c15a99918fe4cc704cc341b44914d65..d5e41e1fd56dff419315afddfc64366a2b407cc2 100644
GIT binary patch
delta 56
zcmV-80LTB3)B%vx0kBjM2QWG`G&(Xgvs)09Ss|l-$WHZKN;(_zos3t*5fl-py+Oje
O$krTn&aizJJEHe=0T@gG
delta 56
zcmV-80LTB3)B%vx0kBjM2RJ$~F*-0avs)09Ss}03E!!ErTAh7BCY^?a)$XBPdwM3q
Og?g@oslm1rSFFZ_lNmAq
diff --git a/firmware/firmware.bin b/firmware/firmware.bin
index 7363d5fc3e4419803ed1d4075158a30f85bd51fe..e81b0bf60bd50dda088ec8b91b86ba4e71b84c2b 100644
GIT binary patch
delta 541894
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 (k?
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