Rolling 20210922

This commit is contained in:
jomjol
2021-09-22 22:13:08 +02:00
parent 9b3665b9c6
commit e2a403441f
17 changed files with 111 additions and 138 deletions

View File

@@ -49,8 +49,12 @@ In other cases you can contact the developer via email: <img src="https://raw.gi
##### Rolling (2021-09-22) ##### Rolling (2021-09-22)
* bug fix * html: incorporate hostname to title and main page
* Improved stability during html requests
Rolling (2021-09-21)
* bug fix

View File

@@ -612,12 +612,12 @@ std::vector<HTMLInfo*> ClassFlowCNNGeneral::GetHTMLInfo()
zw->image = GENERAL[_ana]->ROI[i]->image; zw->image = GENERAL[_ana]->ROI[i]->image;
zw->image_org = GENERAL[_ana]->ROI[i]->image_org; zw->image_org = GENERAL[_ana]->ROI[i]->image_org;
printf("Push %s\n", zw->filename.c_str()); // printf("Push %s\n", zw->filename.c_str());
result.push_back(zw); result.push_back(zw);
} }
printf("größe: %d\n", result.size()); // printf("größe: %d\n", result.size());
return result; return result;
} }

View File

@@ -240,8 +240,8 @@ void ClassFlowControll::InitFlow(std::string config)
} }
std::string ClassFlowControll::getActStatus(){ std::string* ClassFlowControll::getActStatus(){
return aktstatus; return &aktstatus;
} }
void ClassFlowControll::doFlowMakeImageOnly(string time){ void ClassFlowControll::doFlowMakeImageOnly(string time){
@@ -554,66 +554,60 @@ esp_err_t ClassFlowControll::GetJPGStream(std::string _fn, httpd_req_t *req)
{ {
_send = flowalignment->ImageBasis; _send = flowalignment->ImageBasis;
} }
else
if (_fn == "alg_roi.jpg")
{ {
CImageBasis* _imgzw = new CImageBasis(flowalignment->ImageBasis); if (_fn == "alg_roi.jpg")
flowalignment->DrawRef(_imgzw); {
if (flowdigit) flowdigit->DrawROI(_imgzw); CImageBasis* _imgzw = new CImageBasis(flowalignment->ImageBasis);
if (flowanalog) flowanalog->DrawROI(_imgzw); flowalignment->DrawRef(_imgzw);
if (flowdigit) flowdigit->DrawROI(_imgzw);
if (flowanalog) flowanalog->DrawROI(_imgzw);
_send = _imgzw;
Dodelete = true;
}
else
{
std::vector<HTMLInfo*> htmlinfo;
htmlinfo = GetAllDigital();
for (int i = 0; i < htmlinfo.size(); ++i)
{
if (_fn == htmlinfo[i]->filename)
{
if (htmlinfo[i]->image)
_send = htmlinfo[i]->image;
}
if (_fn == htmlinfo[i]->filename_org)
{
if (htmlinfo[i]->image_org)
_send = htmlinfo[i]->image_org;
}
delete htmlinfo[i];
}
htmlinfo.clear();
/*///////////////////////////////////// if (!_send)
cimg_library::CImg<unsigned char> cimg(_imgzw->rgb_image, _imgzw->bpp, _imgzw->width, _imgzw->height, 1); {
htmlinfo = GetAllAnalog();
for (int i = 0; i < htmlinfo.size(); ++i)
{
if (_fn == htmlinfo[i]->filename)
{
if (htmlinfo[i]->image)
_send = htmlinfo[i]->image;
}
if (_fn == htmlinfo[i]->filename_org)
{
if (htmlinfo[i]->image_org)
_send = htmlinfo[i]->image_org;
}
delete htmlinfo[i];
}
htmlinfo.clear();
//Convert cimg type }
// cimg.permute_axes("yzcx"); }
cimg.draw_text(300, 300, "Dies ist ein Test", "black");
//Convert back to stb type to save
// cimg.permute_axes("cxyz");
*////////////////////////////////////
_send = _imgzw;
Dodelete = true;
} }
std::vector<HTMLInfo*> htmlinfo;
htmlinfo = GetAllDigital();
for (int i = 0; i < htmlinfo.size(); ++i)
{
if (_fn == htmlinfo[i]->filename)
{
if (htmlinfo[i]->image)
_send = htmlinfo[i]->image;
}
if (_fn == htmlinfo[i]->filename_org)
{
if (htmlinfo[i]->image_org)
_send = htmlinfo[i]->image_org;
}
delete htmlinfo[i];
}
htmlinfo.clear();
htmlinfo = GetAllAnalog();
for (int i = 0; i < htmlinfo.size(); ++i)
{
if (_fn == htmlinfo[i]->filename)
{
if (htmlinfo[i]->image)
_send = htmlinfo[i]->image;
}
if (_fn == htmlinfo[i]->filename_org)
{
if (htmlinfo[i]->image_org)
_send = htmlinfo[i]->image_org;
}
delete htmlinfo[i];
}
htmlinfo.clear();
if (_send) if (_send)
{ {
ESP_LOGI(TAG, "Sending file : %s ...", _fn.c_str()); ESP_LOGI(TAG, "Sending file : %s ...", _fn.c_str());

View File

@@ -60,7 +60,7 @@ public:
bool isAutoStart(long &_intervall); bool isAutoStart(long &_intervall);
std::string getActStatus(); std::string* getActStatus();
std::vector<HTMLInfo*> GetAllDigital(); std::vector<HTMLInfo*> GetAllDigital();
std::vector<HTMLInfo*> GetAllAnalog(); std::vector<HTMLInfo*> GetAllAnalog();

View File

@@ -69,32 +69,6 @@ int CTfLiteClass::GetOutClassification(int _von, int _bis)
return (zw_class - _von); return (zw_class - _von);
} }
/*
int CTfLiteClass::GetOutClassification()
{
TfLiteTensor* output2 = interpreter->output(0);
float zw_max = 0;
float zw;
int zw_class = -1;
if (output2 == NULL)
return -1;
int numeroutput = output2->dims->data[1];
for (int i = 0; i < numeroutput; ++i)
{
zw = output2->data.f[i];
if (zw > zw_max)
{
zw_max = zw;
zw_class = i;
}
}
return zw_class;
}
*/
void CTfLiteClass::GetInputDimension(bool silent = false) void CTfLiteClass::GetInputDimension(bool silent = false)
{ {
TfLiteTensor* input2 = this->interpreter->input(0); TfLiteTensor* input2 = this->interpreter->input(0);
@@ -283,7 +257,7 @@ CTfLiteClass::CTfLiteClass()
this->interpreter = nullptr; this->interpreter = nullptr;
this->input = nullptr; this->input = nullptr;
this->output = nullptr; this->output = nullptr;
this->kTensorArenaSize = 200 * 1024; /// laut testfile: 108000 - bisher 600 this->kTensorArenaSize = 800 * 1024; /// laut testfile: 108000 - bisher 600;; 2021-09-11: 200 * 1024
this->tensor_arena = new uint8_t[kTensorArenaSize]; this->tensor_arena = new uint8_t[kTensorArenaSize];
} }

View File

@@ -28,9 +28,6 @@ ClassFlowControll tfliteflow;
TaskHandle_t xHandleblink_task_doFlow = NULL; TaskHandle_t xHandleblink_task_doFlow = NULL;
TaskHandle_t xHandletask_autodoFlow = NULL; TaskHandle_t xHandletask_autodoFlow = NULL;
bool flowisrunning = false; bool flowisrunning = false;
long auto_intervall = 0; long auto_intervall = 0;
@@ -506,35 +503,6 @@ esp_err_t handler_editflow(httpd_req_t *req)
httpd_resp_sendstr_chunk(req, zw.c_str()); httpd_resp_sendstr_chunk(req, zw.c_str());
} }
/*
if (_task.compare("test_analog") == 0)
{
std::string _host = "";
if (httpd_query_key_value(_query, "host", _valuechar, 30) == ESP_OK) {
_host = std::string(_valuechar);
}
// printf("Parameter host: "); printf(_host.c_str()); printf("\n");
// string zwzw = "Do " + _task + " start\n"; printf(zwzw.c_str());
std::string zw = tfliteflow.doSingleStep("[Analog]", _host);
httpd_resp_sendstr_chunk(req, zw.c_str());
}
*/
/*
if (_task.compare("test_digits") == 0)
{
std::string _host = "";
if (httpd_query_key_value(_query, "host", _valuechar, 30) == ESP_OK) {
_host = std::string(_valuechar);
}
// printf("Parameter host: "); printf(_host.c_str()); printf("\n");
// string zwzw = "Do " + _task + " start\n"; printf(zwzw.c_str());
std::string zw = tfliteflow.doSingleStep("[Digits]", _host);
httpd_resp_sendstr_chunk(req, zw.c_str());
}
*/
/* Respond with an empty chunk to signal HTTP response completion */ /* Respond with an empty chunk to signal HTTP response completion */
httpd_resp_sendstr_chunk(req, NULL); httpd_resp_sendstr_chunk(req, NULL);
@@ -553,15 +521,13 @@ esp_err_t handler_statusflow(httpd_req_t *req)
#endif #endif
const char* resp_str; const char* resp_str;
string zw;
#ifdef DEBUG_DETAIL_ON #ifdef DEBUG_DETAIL_ON
printf("handler_prevalue:\n"); printf(req->uri); printf("\n"); printf("handler_prevalue:\n"); printf(req->uri); printf("\n");
#endif #endif
zw = tfliteflow.getActStatus(); string* zw = tfliteflow.getActStatus();
resp_str = zw->c_str();
resp_str = zw.c_str();
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
httpd_resp_send(req, resp_str, strlen(resp_str)); httpd_resp_send(req, resp_str, strlen(resp_str));

View File

@@ -47,6 +47,8 @@ esp_err_t info_get_handler(httpd_req_t *req)
} }
}; };
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
if (_task.compare("GitBranch") == 0) if (_task.compare("GitBranch") == 0)
{ {
std::string zw; std::string zw;
@@ -400,15 +402,15 @@ httpd_handle_t start_webserver(void)
httpd_config_t config = { }; httpd_config_t config = { };
config.task_priority = tskIDLE_PRIORITY+5; config.task_priority = tskIDLE_PRIORITY+5;
config.stack_size = 32768; // bei 32k stürzt das Programm beim Bilderaufnehmen ab config.stack_size = 32768; //20210921 --> vorher 32768 // bei 32k stürzt das Programm beim Bilderaufnehmen ab
config.core_id = tskNO_AFFINITY; config.core_id = tskNO_AFFINITY;
config.server_port = 80; config.server_port = 80;
config.ctrl_port = 32768; config.ctrl_port = 32768;
config.max_open_sockets = 7; config.max_open_sockets = 5; //20210921 --> vorher 7
config.max_uri_handlers = 24; config.max_uri_handlers = 24;
config.max_resp_headers = 8; config.max_resp_headers = 8;
config.backlog_conn = 5; config.backlog_conn = 5;
config.lru_purge_enable = true; // dadurch werden alter Verbindungen gekappt, falls neue benögt werden. config.lru_purge_enable = true; // dadurch werden alte Verbindungen gekappt, falls neue benögt werden.
config.recv_wait_timeout = 30; // default: 5 config.recv_wait_timeout = 30; // default: 5
config.send_wait_timeout = 30; // default: 5 config.send_wait_timeout = 30; // default: 5
config.global_user_ctx = NULL; config.global_user_ctx = NULL;

View File

@@ -1,4 +1,4 @@
const char* GIT_REV="c033db9"; const char* GIT_REV="9b3665b";
const char* GIT_TAG=""; const char* GIT_TAG="";
const char* GIT_BRANCH="rolling"; const char* GIT_BRANCH="rolling";
const char* BUILD_TIME="2021-09-21 18:28"; const char* BUILD_TIME="2021-09-22 21:16";

View File

@@ -389,7 +389,7 @@ CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
CONFIG_ESP_INT_WDT_CHECK_CPU1=y CONFIG_ESP_INT_WDT_CHECK_CPU1=y
CONFIG_ESP_TASK_WDT=y CONFIG_ESP_TASK_WDT=y
# CONFIG_ESP_TASK_WDT_PANIC is not set # CONFIG_ESP_TASK_WDT_PANIC is not set
CONFIG_ESP_TASK_WDT_TIMEOUT_S=3 CONFIG_ESP_TASK_WDT_TIMEOUT_S=6
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP_PANIC_HANDLER_IRAM is not set # CONFIG_ESP_PANIC_HANDLER_IRAM is not set
@@ -1107,7 +1107,7 @@ CONFIG_INT_WDT_TIMEOUT_MS=300
CONFIG_INT_WDT_CHECK_CPU1=y CONFIG_INT_WDT_CHECK_CPU1=y
CONFIG_TASK_WDT=y CONFIG_TASK_WDT=y
# CONFIG_TASK_WDT_PANIC is not set # CONFIG_TASK_WDT_PANIC is not set
CONFIG_TASK_WDT_TIMEOUT_S=3 CONFIG_TASK_WDT_TIMEOUT_S=6
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_EVENT_LOOP_PROFILING is not set # CONFIG_EVENT_LOOP_PROFILING is not set

View File

@@ -138,7 +138,8 @@ CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
# CONFIG_COMPILER_CXX_EXCEPTIONS is not set CONFIG_COMPILER_CXX_EXCEPTIONS=y
CONFIG_COMPILER_CXX_EXCEPTIONS_EMG_POOL_SIZE=0
# CONFIG_COMPILER_CXX_RTTI is not set # CONFIG_COMPILER_CXX_RTTI is not set
CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set

View File

@@ -1,4 +1,4 @@
const char* GIT_REV="c033db9"; const char* GIT_REV="9b3665b";
const char* GIT_TAG=""; const char* GIT_TAG="";
const char* GIT_BRANCH="rolling"; const char* GIT_BRANCH="rolling";
const char* BUILD_TIME="2021-09-21 18:27"; const char* BUILD_TIME="2021-09-22 21:16";

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -9,7 +9,7 @@ function getbasepath(){
{ {
// host = "http://192.168.2.219"; // jomjol interner test // host = "http://192.168.2.219"; // jomjol interner test
// host = "http://192.168.178.46"; // jomjol interner test // host = "http://192.168.178.46"; // jomjol interner test
host = "http://192.168.178.22"; // jomjol interner Real host = "http://192.168.178.74"; // jomjol interner Real
// host = "http://192.168.43.191"; // host = "http://192.168.43.191";
// host = "."; // jomjol interner localhost // host = "."; // jomjol interner localhost

View File

@@ -73,7 +73,7 @@ li.dropdown {
<body style="font-family: arial"> <body style="font-family: arial">
<h1>Digitizer - AI on the edge</h1> <h1 id="id_title">Digitizer - AI on the edge</h1>
<h2>An ESP32 all inclusive neural network recognition system for meter digitalization</h2> <h2>An ESP32 all inclusive neural network recognition system for meter digitalization</h2>
<ul> <ul>
@@ -102,5 +102,37 @@ li.dropdown {
<iframe name="maincontent" id ="maincontent" src="/wasserzaehler_roi.html" title="fileserver" allowfullscreen></iframe> <iframe name="maincontent" id ="maincontent" src="/wasserzaehler_roi.html" title="fileserver" allowfullscreen></iframe>
</div> </div>
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script type="text/javascript" src="./readconfigparam.js"></script>
<script type="text/javascript">
var basepath = "http://192.168.178.22";
function LoadHostname() {
_basepath = getbasepath();
var xhttp = new XMLHttpRequest();
try {
url = _basepath + '/version?type=Hostname';
xhttp.open("GET", url, false);
xhttp.send();
hostname = xhttp.responseText;
document.title = "jomjol - AI on the edge - " + hostname;
document.getElementById("id_title").innerHTML = "Digitizer - AI on the edge - " + hostname;
}
catch (error)
{
alert("Loading Hostname failed");
}
}
LoadHostname();
</script>
</body> </body>
</html> </html>

View File

@@ -1 +1 @@
10.0.0 10.1.0