# HG changeset patch # User Michiel Broek # Date 1592139186 -7200 # Node ID 232f318a6b51660cccd30ad0e150d7aff4165519 # Parent 8c88a3d8ecf2f306dc37c2734dbd32faf616d85e Code cleanup, doxygen comments added. diff -r 8c88a3d8ecf2 -r 232f318a6b51 main/co2meter.c --- a/main/co2meter.c Sat Jun 13 23:16:50 2020 +0200 +++ b/main/co2meter.c Sun Jun 14 14:53:06 2020 +0200 @@ -31,6 +31,9 @@ extern uint32_t err_connect; ///< Connect error counter +/** + * @brief Main program entry + */ void app_main() { esp_err_t ret; diff -r 8c88a3d8ecf2 -r 232f318a6b51 main/config.c --- a/main/config.c Sat Jun 13 23:16:50 2020 +0200 +++ b/main/config.c Sun Jun 14 14:53:06 2020 +0200 @@ -27,7 +27,7 @@ if (bytes != sizeof(config)) { ESP_LOGE(TAG, "/spiffs/etc/config.conf written %d/%d bytes", bytes, sizeof(config)); } else { - ESP_LOGI(TAG, "/spiffs/etc/config.conf written %d bytes", bytes); + ESP_LOGD(TAG, "/spiffs/etc/config.conf written %d bytes", bytes); } } @@ -54,7 +54,7 @@ dst = (uint8_t*)&config; size_t bytes = fread(dst, 1, sizeof(config), f); fclose(f); - ESP_LOGI(TAG, "/spiffs/etc/config.conf read %d bytes", bytes); + ESP_LOGD(TAG, "/spiffs/etc/config.conf read %d bytes", bytes); } } @@ -73,7 +73,7 @@ if (bytes != sizeof(units)) { ESP_LOGE(TAG, "/spiffs/etc/units.conf written %d/%d bytes", bytes, sizeof(units)); } else { - ESP_LOGI(TAG, "/spiffs/etc/units.conf written %d bytes", bytes); + ESP_LOGD(TAG, "/spiffs/etc/units.conf written %d bytes", bytes); } } diff -r 8c88a3d8ecf2 -r 232f318a6b51 main/task_ds18b20.c --- a/main/task_ds18b20.c Sat Jun 13 23:16:50 2020 +0200 +++ b/main/task_ds18b20.c Sun Jun 14 14:53:06 2020 +0200 @@ -56,7 +56,7 @@ bool found = false; EventBits_t uxBits; - ESP_LOGI(TAG, "Starting DS18B20 sensors"); + ESP_LOGI(TAG, "Start DS18B20 sensors"); ds18b20_state = malloc(sizeof(DS18B20_State)); ds18b20_state->valid = false; ds18b20_state->num_sensors = 0; @@ -87,7 +87,7 @@ uxBits = xEventGroupWaitBits(xEventGroupDS18B20, TASK_DS18B20_REQUEST_TEMPS, pdFALSE, pdFALSE, portMAX_DELAY ); if (uxBits & TASK_DS18B20_REQUEST_TEMPS) { - ESP_LOGI(TAG, "Requested DS18B20 readings"); + ESP_LOGD(TAG, "Requested DS18B20 readings"); OneWireBus_ROMCode device_rom_codes[DS18B20_MAX] = {0}; num_devices = 0; OneWireBus_SearchState search_state = {0}; diff -r 8c88a3d8ecf2 -r 232f318a6b51 main/task_mqtt.c --- a/main/task_mqtt.c Sat Jun 13 23:16:50 2020 +0200 +++ b/main/task_mqtt.c Sun Jun 14 14:53:06 2020 +0200 @@ -18,8 +18,8 @@ const int TASK_MQTT_DISCONNECT = BIT1; ///< Request MQTT disconnect const int TASK_MQTT_CONNECTED = BIT2; ///< MQTT is connected -const char *sensState[] = { "OK", "ERROR" }; -const char *unitMode[] = { "OFF", "ON" }; +const char *sensState[] = { "OK", "ERROR" }; ///< Sensor state strings +const char *unitMode[] = { "OFF", "ON" }; ///< Units state strings extern DS18B20_State *ds18b20_state; ///< DS18B20 state extern SemaphoreHandle_t xSemaphoreDS18B20; ///< DS18B20 lock semaphore diff -r 8c88a3d8ecf2 -r 232f318a6b51 main/task_user.c --- a/main/task_user.c Sat Jun 13 23:16:50 2020 +0200 +++ b/main/task_user.c Sun Jun 14 14:53:06 2020 +0200 @@ -709,7 +709,7 @@ -/* +/** * @brief The counters display screen. */ void screen_counters() diff -r 8c88a3d8ecf2 -r 232f318a6b51 main/u8g2_esp32_hal.c --- a/main/u8g2_esp32_hal.c Sat Jun 13 23:16:50 2020 +0200 +++ b/main/u8g2_esp32_hal.c Sun Jun 14 14:53:06 2020 +0200 @@ -1,3 +1,9 @@ +/** + * @file u8g2_esp32_hal.c + * @date Feb 12, 2017 + * @author kolban + */ + #include #include @@ -12,9 +18,9 @@ static const char *TAG = "u8g2_hal"; static const unsigned int I2C_TIMEOUT_MS = 1000; -static spi_device_handle_t handle_spi; // SPI handle. -static i2c_cmd_handle_t handle_i2c; // I2C handle. -static u8g2_esp32_hal_t u8g2_esp32_hal; // HAL state data. +static spi_device_handle_t handle_spi; ///< SPI handle. +static i2c_cmd_handle_t handle_i2c; ///< I2C handle. +static u8g2_esp32_hal_t u8g2_esp32_hal; ///< HAL state data. static bool initialized = false; #undef ESP_ERROR_CHECK @@ -31,204 +37,211 @@ * HAL callback function as prescribed by the U8G2 library. This callback is invoked * to handle SPI communications. */ -uint8_t u8g2_esp32_spi_byte_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) { - ESP_LOGD(TAG, "spi_byte_cb: Received a msg: %d, arg_int: %d, arg_ptr: %p", msg, arg_int, arg_ptr); - switch(msg) { - case U8X8_MSG_BYTE_SET_DC: - if (u8g2_esp32_hal.dc != U8G2_ESP32_HAL_UNDEFINED) { - gpio_set_level(u8g2_esp32_hal.dc, arg_int); - } - break; - - case U8X8_MSG_BYTE_INIT: { - if (u8g2_esp32_hal.clk == U8G2_ESP32_HAL_UNDEFINED || - u8g2_esp32_hal.mosi == U8G2_ESP32_HAL_UNDEFINED || - u8g2_esp32_hal.cs == U8G2_ESP32_HAL_UNDEFINED) { - break; - } +uint8_t u8g2_esp32_spi_byte_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + ESP_LOGD(TAG, "spi_byte_cb: Received a msg: %d, arg_int: %d, arg_ptr: %p", msg, arg_int, arg_ptr); + switch(msg) { + case U8X8_MSG_BYTE_SET_DC: + if (u8g2_esp32_hal.dc != U8G2_ESP32_HAL_UNDEFINED) { + gpio_set_level(u8g2_esp32_hal.dc, arg_int); + } + break; - spi_bus_config_t bus_config; - memset(&bus_config, 0, sizeof(spi_bus_config_t)); - bus_config.sclk_io_num = u8g2_esp32_hal.clk; // CLK - bus_config.mosi_io_num = u8g2_esp32_hal.mosi; // MOSI - bus_config.miso_io_num = -1; // MISO - bus_config.quadwp_io_num = -1; // Not used - bus_config.quadhd_io_num = -1; // Not used - //ESP_LOGI(TAG, "... Initializing bus."); - ESP_ERROR_CHECK(spi_bus_initialize(HSPI_HOST, &bus_config, 1)); - - spi_device_interface_config_t dev_config; - dev_config.address_bits = 0; - dev_config.command_bits = 0; - dev_config.dummy_bits = 0; - dev_config.mode = 0; - dev_config.duty_cycle_pos = 0; - dev_config.cs_ena_posttrans = 0; - dev_config.cs_ena_pretrans = 0; - dev_config.clock_speed_hz = 10000; - dev_config.spics_io_num = u8g2_esp32_hal.cs; - dev_config.flags = 0; - dev_config.queue_size = 200; - dev_config.pre_cb = NULL; - dev_config.post_cb = NULL; - //ESP_LOGI(TAG, "... Adding device bus."); - ESP_ERROR_CHECK(spi_bus_add_device(HSPI_HOST, &dev_config, &handle_spi)); - - break; + case U8X8_MSG_BYTE_INIT: { + if (u8g2_esp32_hal.clk == U8G2_ESP32_HAL_UNDEFINED || u8g2_esp32_hal.mosi == U8G2_ESP32_HAL_UNDEFINED || + u8g2_esp32_hal.cs == U8G2_ESP32_HAL_UNDEFINED) { + break; } - case U8X8_MSG_BYTE_SEND: { - spi_transaction_t trans_desc; - trans_desc.addr = 0; - trans_desc.cmd = 0; - trans_desc.flags = 0; - trans_desc.length = 8 * arg_int; // Number of bits NOT number of bytes. - trans_desc.rxlength = 0; - trans_desc.tx_buffer = arg_ptr; - trans_desc.rx_buffer = NULL; + spi_bus_config_t bus_config; + memset(&bus_config, 0, sizeof(spi_bus_config_t)); + bus_config.sclk_io_num = u8g2_esp32_hal.clk; // CLK + bus_config.mosi_io_num = u8g2_esp32_hal.mosi; // MOSI + bus_config.miso_io_num = -1; // MISO + bus_config.quadwp_io_num = -1; // Not used + bus_config.quadhd_io_num = -1; // Not used + //ESP_LOGI(TAG, "... Initializing bus."); + ESP_ERROR_CHECK(spi_bus_initialize(HSPI_HOST, &bus_config, 1)); - //ESP_LOGI(TAG, "... Transmitting %d bytes.", arg_int); - ESP_ERROR_CHECK(spi_device_transmit(handle_spi, &trans_desc)); - break; - } + spi_device_interface_config_t dev_config; + dev_config.address_bits = 0; + dev_config.command_bits = 0; + dev_config.dummy_bits = 0; + dev_config.mode = 0; + dev_config.duty_cycle_pos = 0; + dev_config.cs_ena_posttrans = 0; + dev_config.cs_ena_pretrans = 0; + dev_config.clock_speed_hz = 10000; + dev_config.spics_io_num = u8g2_esp32_hal.cs; + dev_config.flags = 0; + dev_config.queue_size = 200; + dev_config.pre_cb = NULL; + dev_config.post_cb = NULL; + //ESP_LOGI(TAG, "... Adding device bus."); + ESP_ERROR_CHECK(spi_bus_add_device(HSPI_HOST, &dev_config, &handle_spi)); + + break; } - return 0; -} // u8g2_esp32_spi_byte_cb + + case U8X8_MSG_BYTE_SEND: { + spi_transaction_t trans_desc; + trans_desc.addr = 0; + trans_desc.cmd = 0; + trans_desc.flags = 0; + trans_desc.length = 8 * arg_int; // Number of bits NOT number of bytes. + trans_desc.rxlength = 0; + trans_desc.tx_buffer = arg_ptr; + trans_desc.rx_buffer = NULL; + + //ESP_LOGI(TAG, "... Transmitting %d bytes.", arg_int); + ESP_ERROR_CHECK(spi_device_transmit(handle_spi, &trans_desc)); + break; + } + } + return 0; +} + + /* * HAL callback function as prescribed by the U8G2 library. This callback is invoked * to handle I2C communications. */ -uint8_t u8g2_esp32_i2c_byte_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) { - ESP_LOGD(TAG, "i2c_cb: Received a msg: %d, arg_int: %d, arg_ptr: %p", msg, arg_int, arg_ptr); - - switch(msg) { - case U8X8_MSG_BYTE_SET_DC: { - if (u8g2_esp32_hal.dc != U8G2_ESP32_HAL_UNDEFINED) { - gpio_set_level(u8g2_esp32_hal.dc, arg_int); - } - break; +uint8_t u8g2_esp32_i2c_byte_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + ESP_LOGD(TAG, "i2c_cb: Received a msg: %d, arg_int: %d, arg_ptr: %p", msg, arg_int, arg_ptr); + switch(msg) { + case U8X8_MSG_BYTE_SET_DC: { + if (u8g2_esp32_hal.dc != U8G2_ESP32_HAL_UNDEFINED) { + gpio_set_level(u8g2_esp32_hal.dc, arg_int); } + break; + } - case U8X8_MSG_BYTE_INIT: { - if (u8g2_esp32_hal.sda == U8G2_ESP32_HAL_UNDEFINED || - u8g2_esp32_hal.scl == U8G2_ESP32_HAL_UNDEFINED || initialized) { // here i test if already initialized, if it's the case don't do it again! - break; - } - - i2c_config_t conf; - conf.mode = I2C_MODE_MASTER; - conf.sda_io_num = u8g2_esp32_hal.sda; - conf.sda_pullup_en = GPIO_PULLUP_ENABLE; - conf.scl_io_num = u8g2_esp32_hal.scl; - conf.scl_pullup_en = GPIO_PULLUP_ENABLE; - conf.master.clk_speed = I2C_MASTER_FREQ_HZ; - ESP_ERROR_CHECK(i2c_param_config(I2C_MASTER_NUM, &conf)); - ESP_LOGI(TAG, "I2C gpio_sda: %d gpio_scl: %d clk_speed: %d master_num: %d", - u8g2_esp32_hal.sda, u8g2_esp32_hal.scl, I2C_MASTER_FREQ_HZ, I2C_MASTER_NUM); - ESP_ERROR_CHECK(i2c_driver_install(I2C_MASTER_NUM, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0)); - initialized=true; - break; + case U8X8_MSG_BYTE_INIT: { + if (u8g2_esp32_hal.sda == U8G2_ESP32_HAL_UNDEFINED || u8g2_esp32_hal.scl == U8G2_ESP32_HAL_UNDEFINED || initialized) { + // here i test if already initialized, if it's the case don't do it again! + break; } - case U8X8_MSG_BYTE_SEND: { - uint8_t* data_ptr = (uint8_t*)arg_ptr; - ESP_LOG_BUFFER_HEXDUMP(TAG, data_ptr, arg_int, ESP_LOG_VERBOSE); + i2c_config_t conf; + conf.mode = I2C_MODE_MASTER; + conf.sda_io_num = u8g2_esp32_hal.sda; + conf.sda_pullup_en = GPIO_PULLUP_ENABLE; + conf.scl_io_num = u8g2_esp32_hal.scl; + conf.scl_pullup_en = GPIO_PULLUP_ENABLE; + conf.master.clk_speed = I2C_MASTER_FREQ_HZ; + ESP_ERROR_CHECK(i2c_param_config(I2C_MASTER_NUM, &conf)); + ESP_LOGI(TAG, "I2C gpio_sda: %d gpio_scl: %d clk_speed: %d master_num: %d", + u8g2_esp32_hal.sda, u8g2_esp32_hal.scl, I2C_MASTER_FREQ_HZ, I2C_MASTER_NUM); + ESP_ERROR_CHECK(i2c_driver_install(I2C_MASTER_NUM, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0)); + initialized = true; + break; + } - while( arg_int > 0 ) { - ESP_ERROR_CHECK(i2c_master_write_byte(handle_i2c, *data_ptr, ACK_CHECK_EN)); - data_ptr++; - arg_int--; - } - break; - } + case U8X8_MSG_BYTE_SEND: { + uint8_t* data_ptr = (uint8_t*)arg_ptr; + ESP_LOG_BUFFER_HEXDUMP(TAG, data_ptr, arg_int, ESP_LOG_VERBOSE); - case U8X8_MSG_BYTE_START_TRANSFER: { - uint8_t i2c_address = u8x8_GetI2CAddress(u8x8); - handle_i2c = i2c_cmd_link_create(); - ESP_LOGD(TAG, "Start I2C transfer to %02X.", i2c_address>>1); - ESP_ERROR_CHECK(i2c_master_start(handle_i2c)); - ESP_ERROR_CHECK(i2c_master_write_byte(handle_i2c, i2c_address | I2C_MASTER_WRITE, ACK_CHECK_EN)); - break; + while( arg_int > 0 ) { + ESP_ERROR_CHECK(i2c_master_write_byte(handle_i2c, *data_ptr, ACK_CHECK_EN)); + data_ptr++; + arg_int--; } + break; + } - case U8X8_MSG_BYTE_END_TRANSFER: { - ESP_LOGD(TAG, "End I2C transfer."); - ESP_ERROR_CHECK(i2c_master_stop(handle_i2c)); - ESP_ERROR_CHECK(i2c_master_cmd_begin(I2C_MASTER_NUM, handle_i2c, I2C_TIMEOUT_MS / portTICK_RATE_MS)); - i2c_cmd_link_delete(handle_i2c); - break; - } + case U8X8_MSG_BYTE_START_TRANSFER: { + uint8_t i2c_address = u8x8_GetI2CAddress(u8x8); + handle_i2c = i2c_cmd_link_create(); + ESP_LOGD(TAG, "Start I2C transfer to %02X.", i2c_address>>1); + ESP_ERROR_CHECK(i2c_master_start(handle_i2c)); + ESP_ERROR_CHECK(i2c_master_write_byte(handle_i2c, i2c_address | I2C_MASTER_WRITE, ACK_CHECK_EN)); + break; } - return 0; -} // u8g2_esp32_i2c_byte_cb + + case U8X8_MSG_BYTE_END_TRANSFER: { + ESP_LOGD(TAG, "End I2C transfer."); + ESP_ERROR_CHECK(i2c_master_stop(handle_i2c)); + ESP_ERROR_CHECK(i2c_master_cmd_begin(I2C_MASTER_NUM, handle_i2c, I2C_TIMEOUT_MS / portTICK_RATE_MS)); + i2c_cmd_link_delete(handle_i2c); + break; + } + } + return 0; +} + + /* * HAL callback function as prescribed by the U8G2 library. This callback is invoked * to handle callbacks for GPIO and delay functions. */ -uint8_t u8g2_esp32_gpio_and_delay_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) { - ESP_LOGD(TAG, "gpio_and_delay_cb: Received a msg: %d, arg_int: %d, arg_ptr: %p", msg, arg_int, arg_ptr); - - switch(msg) { +uint8_t u8g2_esp32_gpio_and_delay_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + ESP_LOGD(TAG, "gpio_and_delay_cb: Received a msg: %d, arg_int: %d, arg_ptr: %p", msg, arg_int, arg_ptr); + switch(msg) { // Initialize the GPIO and DELAY HAL functions. If the pins for DC and RESET have been // specified then we define those pins as GPIO outputs. - case U8X8_MSG_GPIO_AND_DELAY_INIT: { - uint64_t bitmask = 0; - if (u8g2_esp32_hal.dc != U8G2_ESP32_HAL_UNDEFINED) { - bitmask = bitmask | (1ull<