Code cleanup. Set MQTT uri from the configuration.

Mon, 11 Nov 2019 16:54:12 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 11 Nov 2019 16:54:12 +0100
changeset 28
6d825e2962e4
parent 27
8bb63daa7b46
child 29
106464d4c727

Code cleanup. Set MQTT uri from the configuration.

main/co2meter.c file | annotate | diff | comparison | revisions
main/task_ds18b20.c file | annotate | diff | comparison | revisions
main/task_mqtt.c file | annotate | diff | comparison | revisions
main/task_user.c file | annotate | diff | comparison | revisions
--- a/main/co2meter.c	Sun Nov 10 20:53:01 2019 +0100
+++ b/main/co2meter.c	Mon Nov 11 16:54:12 2019 +0100
@@ -70,11 +70,6 @@
     ESP_LOGI(TAG, "Enabling EXT1 wakeup on pin GPIO%d", ROT_ENC_SW_GPIO);
     esp_sleep_enable_ext1_wakeup(ext_wakeup_pin_1_mask, ESP_EXT1_WAKEUP_ALL_LOW);
 
-    // Isolate GPIO12 pin from external circuits. This is needed for modules
-    // which have an external pull-up resistor on GPIO12 (such as ESP32-WROVER)
-    // to minimize current consumption.
-//    rtc_gpio_isolate(GPIO_NUM_12);
-
     /*
      * Initialize NVS
      */
--- a/main/task_ds18b20.c	Sun Nov 10 20:53:01 2019 +0100
+++ b/main/task_ds18b20.c	Mon Nov 11 16:54:12 2019 +0100
@@ -97,7 +97,7 @@
         	owb_string_from_rom_code(search_state.rom_code, rom_code_s, sizeof(rom_code_s));
 		rom_code_s[16] = '\0';
 #if 0
-        	printf("  %d : %s %d\n", num_devices + 1, rom_code_s, strlen(rom_code_s));
+        	ESP_LOGI(TAG, "  %d : %s %d\n", num_devices + 1, rom_code_s, strlen(rom_code_s));
 #endif
 		device_rom_codes[num_devices] = search_state.rom_code;
 		strncpy(ds18b20_state->sensor[num_devices].rom_code, rom_code_s, 17);
--- a/main/task_mqtt.c	Sun Nov 10 20:53:01 2019 +0100
+++ b/main/task_mqtt.c	Mon Nov 11 16:54:12 2019 +0100
@@ -338,6 +338,7 @@
 void task_mqtt(void *pvParameter)
 {
     esp_err_t	err;
+    char	*uri = NULL, port[11];
 
     ESP_LOGI(TAG, "Starting MQTT task");
     xSemaphorePcounter = xSemaphoreCreateMutex();
@@ -369,7 +370,7 @@
     xEventGroupMQTT = xEventGroupCreate();
     EventBits_t uxBits;
     esp_mqtt_client_config_t mqtt_cfg = {
-        .uri = "mqtt://seaport.mbse.ym",
+        .uri = "mqtt://localhost",
     };
     client = esp_mqtt_client_init(&mqtt_cfg);
     esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
@@ -382,10 +383,33 @@
 	uxBits = xEventGroupWaitBits(xEventGroupMQTT, TASK_MQTT_CONNECT | TASK_MQTT_DISCONNECT, pdFALSE, pdFALSE, portMAX_DELAY );
 
 	if (uxBits & TASK_MQTT_CONNECT) {
-	    ESP_LOGI(TAG, "Request MQTT connect");
+	    if (strlen(config.mqtt_server)) {
+	    	uri = xstrcpy((char *)"mqtt://");
+	    	if (strlen(config.mqtt_user) && strlen(config.mqtt_pwd)) {
+		    uri = xstrcat(uri, config.mqtt_user);
+		    uri = xstrcat(uri, (char *)":");
+		    uri = xstrcat(uri, config.mqtt_pwd);
+		    uri = xstrcat(uri, (char *)"@");
+	    	}
+		uri = xstrcat(uri, config.mqtt_server);
+		if (config.mqtt_port != 1883) {
+		    uri = xstrcat(uri, (char *)":");
+		    sprintf(port, "%d", config.mqtt_port);
+		    uri = xstrcat(uri, port);
+		}
+	    } else {
+		uri = xstrcpy((char *)"mqtt://iot.eclipse.org:1883");
+	    }
+	    ESP_LOGI(TAG, "Request MQTT connect %s", uri);
+	    err = esp_mqtt_client_set_uri(client, uri);
+	    if (err != ESP_OK)
+                ESP_LOGE(TAG, "Set uri %s", esp_err_to_name(err));
 	    err = esp_mqtt_client_start(client);
 	    if (err != ESP_OK)
 	    	ESP_LOGE(TAG, "Result %s", esp_err_to_name(err));
+	    if (uri)
+		free(uri);
+	    uri = NULL;
 	    xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_CONNECT);
 
 	} else if (uxBits & TASK_MQTT_DISCONNECT) {
--- a/main/task_user.c	Sun Nov 10 20:53:01 2019 +0100
+++ b/main/task_user.c	Mon Nov 11 16:54:12 2019 +0100
@@ -801,7 +801,6 @@
 		    New_Loop2 = ML2_ZERO_UNIT1 + idx;
 		if (SubMenu == 3)
 		    New_Loop2 = ML2_UNIT1 + idx;
-		printf("unit setup sub %d  new %d  idx %d\n", SubMenu, New_Loop2, idx);
 		break;
 
 	case ML2_ZERO_UNIT1:
@@ -827,7 +826,6 @@
 		    New_Loop2 = ML2_SETUP_UNIT1 + idx;
 		    SubMenu = 1;
 		}
-		printf("unit zero sub %d  new %d  idx %d\n", SubMenu, New_Loop2, idx);
 		break;
 
 	case ML2_NETWORK:

mercurial