Ver código fonte

Update README.md
improve case if gpio is disabled
remove /test html route

Zwer2k 5 anos atrás
pai
commit
a7ced407f8

+ 17 - 1
README.md

@@ -45,7 +45,23 @@ In other cases you can contact the developer via email: <img src="https://raw.gi
 
 **General remark:** Beside the `firmware.bin`, typically also the content of `/html` needs to be updated!
 
-
+##### Rolling - (2021-07-11)
+
+* GPIO: implements basic functionality for GPIO handler.
+  - Configuration via config.ini / HTML page
+  - GPIO 12, 13, 1, 3, 0, 4 can be used (see restrictions in HTML configuration page)  
+  - GPIO can be used as input or output
+  - pullup / pulldown can be enabled
+  - supports all interrupt types of the ESP32
+  - publishing via MQTT or HTTP
+  - definition of the MQTT topic name
+* HTML: implements regex mask for text input fields (currently enabled for GPIO inputs and main topic)
+* HTML: automatic detection of select fields
+* MQTT: added readings for uptime and freeMem (can be used for tracking with Infux DB and as memory leak detection)
+* MQTT: connection is no longer terminated and reestablished on each flow
+* Classe ConfigFile created. Can be used by all components in the future.
+* Bugfix: memory leaks in ClassFlowAnalog and ClassFlowControll fixed.
+* Removed compiler warnings 
 
 ##### Rolling - (2021-07-08)
 

+ 11 - 2
code/components/jomjol_controlGPIO/server_GPIO.cpp

@@ -217,7 +217,12 @@ void GpioHandler::init()
     }
     
     ESP_LOGI(TAG_SERVERGPIO, "read GPIO config and init GPIO");
-    readConfig();
+    if (!readConfig()) {
+        clear();
+        delete gpioMap;
+        gpioMap = NULL;
+        return;
+    }
 
     for(std::map<gpio_num_t, GpioPin*>::iterator it = gpioMap->begin(); it != gpioMap->end(); ++it) {
         it->second->init();
@@ -289,8 +294,12 @@ bool GpioHandler::readConfig()
     while ((!configFile.GetNextParagraph(line, disabledLine, eof) || (line.compare("[GPIO]") != 0)) && !disabledLine && !eof) {}
     if (eof)
         return false;
+    
+    _isEnabled = !disabledLine;
+
+    if (!_isEnabled)
+        return false;
 
-    _isEnabled = true;
     std::string mainTopicMQTT = "";
     bool registerISR = false;
     while (configFile.getNextLine(&line, disabledLine, eof) && !configFile.isNewParagraph(line))

+ 3 - 3
code/components/jomjol_fileserver_ota/server_ota.cpp

@@ -62,14 +62,14 @@ static void infinite_loop(void)
 
 
 
-static bool ota_example_task(std::string fn)
+static bool ota_update_task(std::string fn)
 {
     esp_err_t err;
     /* update handle : set by esp_ota_begin(), must be freed via esp_ota_end() */
     esp_ota_handle_t update_handle = 0 ;
     const esp_partition_t *update_partition = NULL;
 
-    ESP_LOGI(TAGPARTOTA, "Starting OTA example");
+    ESP_LOGI(TAGPARTOTA, "Starting OTA update");
 
     const esp_partition_t *configured = esp_ota_get_boot_partition();
     const esp_partition_t *running = esp_ota_get_running_partition();
@@ -378,7 +378,7 @@ esp_err_t handler_ota_update(httpd_req_t *req)
 
     KillTFliteTasks();
     gpio_handler_deinit();
-    if (ota_example_task(fn))
+    if (ota_update_task(fn))
     {
         resp_str = "Firmware Update Successfull!<br><br>You can restart now.";
     }

+ 0 - 18
code/main/main.cpp

@@ -135,17 +135,6 @@ void task_NoSDBlink(void *pvParameter)
     vTaskDelete(NULL); //Delete this task if it exits from the loop above
 }
 
-esp_err_t handler_gpio(httpd_req_t *req)
-{
-    gpio_handler_init();
-
-    char resp_str [30];
-    sprintf(resp_str, "OK. freemem %u", esp_get_free_heap_size());
-    httpd_resp_send(req, resp_str, strlen(resp_str));
-    
-    return ESP_OK;
-}
-
 extern "C" void app_main(void)
 {
     printf("Do Reset Camera\n");
@@ -210,13 +199,6 @@ extern "C" void app_main(void)
     register_server_file_uri(server, "/sdcard");
     register_server_ota_sdcard_uri(server);
 
-    httpd_uri_t camuri = { };
-    camuri.method    = HTTP_GET;
-    camuri.uri       = "/test";
-    camuri.handler   = handler_gpio;
-    camuri.user_ctx  = (void*)server;    
-    httpd_register_uri_handler(server, &camuri);
-
     gpio_handler_create(server);
 
     printf("vor reg server main\n");

BIN
firmware/firmware.bin


BIN
firmware/html.zip


+ 1 - 1
sd-card/config/config.ini

@@ -56,7 +56,7 @@ CheckDigitIncreaseConsistency = true
 ;password = PASSWORD
 
 ;[GPIO]
-;MainTopicMQTT = watermeter2/GPIO
+;MainTopicMQTT = wasserzaehler/GPIO
 ;IO0 = input disabled 10 false false  
 ;IO1 = input disabled 10 false false 
 ;IO3 = input disabled 10 false false