diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cc98c7..bbc1d05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,7 +59,7 @@ add_prefix(priv_include_dirs "${CMAKE_CURRENT_LIST_DIR}/freemodbus/" ${priv_incl message(STATUS "DEBUG: Use esp-modbus component folder: ${CMAKE_CURRENT_LIST_DIR}.") -set(requires driver lwip) +set(requires driver lwip esp_netif) # esp_timer component was introduced in v4.2 if("${IDF_VERSION_MAJOR}.${IDF_VERSION_MINOR}" VERSION_GREATER "4.1") diff --git a/freemodbus/common/esp_modbus_slave.c b/freemodbus/common/esp_modbus_slave.c index 68a31ff..952a096 100644 --- a/freemodbus/common/esp_modbus_slave.c +++ b/freemodbus/common/esp_modbus_slave.c @@ -252,7 +252,7 @@ static esp_err_t mbc_slave_send_param_info(mb_event_group_t par_type, uint16_t m par_info.mb_offset = mb_offset; BaseType_t status = xQueueSend(mbs_opts->mbs_notification_queue_handle, &par_info, MB_PAR_INFO_TOUT); if (pdTRUE == status) { - ESP_LOGD(TAG, "Queue send parameter info (type, address, size): %d, 0x%.4x, %d", + ESP_LOGD(TAG, "Queue send parameter info (type, address, size): %d, 0x%.4" PRIu32 "x, %d", par_type, (uint32_t)par_address, par_size); error = ESP_OK; } else if (errQUEUE_FULL == status) { diff --git a/freemodbus/port/portevent_m.c b/freemodbus/port/portevent_m.c index 79dbca3..72a589a 100644 --- a/freemodbus/port/portevent_m.c +++ b/freemodbus/port/portevent_m.c @@ -149,7 +149,7 @@ xMBMasterPortEventGet( eMBMasterEventType* eEvent ) xEventGroupSetBits( xEventGroupMasterConfirmHdl, *eEvent ); xEventHappened = TRUE; } else { - ESP_LOGE(MB_PORT_TAG,"%s: Incorrect event triggered = %d.", __func__, uxBits); + ESP_LOGE(MB_PORT_TAG,"%s: Incorrect event triggered = %lu.", __func__, uxBits); *eEvent = (eMBMasterEventType)uxBits; xEventHappened = FALSE; } @@ -181,7 +181,7 @@ BOOL xMBMasterRunResTake( LONG lTimeOut ) pdFALSE, // Don't wait for both bits, either bit will do. lTimeOut); // Resource wait timeout. MB_PORT_CHECK((uxBits == MB_EVENT_RESOURCE), FALSE , "Take resource failure."); - ESP_LOGD(MB_PORT_TAG,"%s:Take resource (%x) (%lu ticks).", __func__, uxBits, lTimeOut); + ESP_LOGD(MB_PORT_TAG,"%s:Take resource (%lux) (%lu ticks).", __func__, uxBits, lTimeOut); return TRUE; } @@ -193,7 +193,7 @@ void vMBMasterRunResRelease( void ) { EventBits_t uxBits = xEventGroupSetBits( xResourceMasterHdl, MB_EVENT_RESOURCE ); MB_PORT_CHECK((uxBits == MB_EVENT_RESOURCE), ; , "Resource release failure."); - ESP_LOGD(MB_PORT_TAG,"%s: Release resource (%x).", __func__, uxBits); + ESP_LOGD(MB_PORT_TAG,"%s: Release resource (%lux).", __func__, uxBits); } /** @@ -297,7 +297,7 @@ eMBMasterReqErrCode eMBMasterWaitRequestFinish( void ) { eErrStatus = MB_MRE_EXE_FUN; } } else { - ESP_LOGE(MB_PORT_TAG,"%s: Incorrect event or timeout xRecvedEvent = 0x%x", __func__, uxBits); + ESP_LOGE(MB_PORT_TAG,"%s: Incorrect event or timeout xRecvedEvent = 0x%lux", __func__, uxBits); // https://github.com/espressif/esp-idf/issues/5275 // if a no event is received, that means vMBMasterPortEventClose() // has been closed, so event group has been deleted by FreeRTOS, which diff --git a/freemodbus/port/portserial_m.c b/freemodbus/port/portserial_m.c index b0324e3..7a81e6b 100644 --- a/freemodbus/port/portserial_m.c +++ b/freemodbus/port/portserial_m.c @@ -96,7 +96,7 @@ static USHORT usMBMasterPortSerialRxPoll(size_t xEventSize) // The buffer is transferred into Modbus stack and is not needed here any more uart_flush_input(ucUartNumber); - ESP_LOGD(TAG, "Received data: %d(bytes in buffer)\n", (uint32_t)usCnt); + ESP_LOGD(TAG, "Received data: %lu(bytes in buffer)\n", (uint32_t)usCnt); #if !CONFIG_FMB_TIMER_PORT_ENABLED vMBMasterSetCurTimerMode(MB_TMODE_T35); pxMBMasterPortCBTimerExpired(); diff --git a/freemodbus/serial_master/modbus_controller/mbc_serial_master.c b/freemodbus/serial_master/modbus_controller/mbc_serial_master.c index 378bd54..8d0f55c 100644 --- a/freemodbus/serial_master/modbus_controller/mbc_serial_master.c +++ b/freemodbus/serial_master/modbus_controller/mbc_serial_master.c @@ -71,12 +71,12 @@ static esp_err_t mbc_serial_master_setup(void* comm_info) const mb_master_comm_info_t* comm_info_ptr = (mb_master_comm_info_t*)comm_info; // Check communication options MB_MASTER_CHECK(((comm_info_ptr->mode == MB_MODE_RTU) || (comm_info_ptr->mode == MB_MODE_ASCII)), - ESP_ERR_INVALID_ARG, "mb incorrect mode = (0x%x).", + ESP_ERR_INVALID_ARG, "mb incorrect mode = (0x%" PRIu32 "x).", (uint32_t)comm_info_ptr->mode); MB_MASTER_CHECK((comm_info_ptr->port <= UART_NUM_MAX), ESP_ERR_INVALID_ARG, - "mb wrong port to set = (0x%x).", (uint32_t)comm_info_ptr->port); + "mb wrong port to set = (0x%" PRIu32 "x).", (uint32_t)comm_info_ptr->port); MB_MASTER_CHECK((comm_info_ptr->parity <= UART_PARITY_ODD), ESP_ERR_INVALID_ARG, - "mb wrong parity option = (0x%x).", (uint32_t)comm_info_ptr->parity); + "mb wrong parity option = (0x%" PRIu32 "x).", (uint32_t)comm_info_ptr->parity); // Save the communication options mbm_opts->mbm_comm = *(mb_communication_info_t*)comm_info_ptr; return ESP_OK; @@ -101,7 +101,7 @@ static esp_err_t mbc_serial_master_start(void) "mb stack initialization failure, eMBInit() returns (0x%x).", status); status = eMBMasterEnable(); MB_MASTER_CHECK((status == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb stack set slave ID failure, eMBEnable() returned (0x%x).", (uint32_t)status); + "mb stack set slave ID failure, eMBEnable() returned (0x%" PRIu32 "x).", (uint32_t)status); // Set the mbcontroller start flag EventBits_t flag = xEventGroupSetBits(mbm_opts->mbm_event_group, (EventBits_t)MB_EVENT_STACK_STARTED); @@ -130,7 +130,7 @@ static esp_err_t mbc_serial_master_destroy(void) (void)vEventGroupDelete(mbm_opts->mbm_event_group); mb_error = eMBMasterClose(); MB_MASTER_CHECK((mb_error == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb stack close failure returned (0x%x).", (uint32_t)mb_error); + "mb stack close failure returned (0x%" PRIu32 "x).", (uint32_t)mb_error); free(mbm_interface_ptr); // free the memory allocated for options vMBPortSetMode((UCHAR)MB_PORT_INACTIVE); mbm_interface_ptr = NULL; @@ -677,7 +677,7 @@ esp_err_t mbc_serial_master_create(void** handler, bool start_controller_task) if (status != pdPASS) { vTaskDelete(mbm_opts->mbm_task_handle); MB_MASTER_CHECK((status == pdPASS), ESP_ERR_NO_MEM, - "mb controller task creation error, xTaskCreate() returns (0x%x).", + "mb controller task creation error, xTaskCreate() returns (0x%" PRIu32 "x).", (uint32_t)status); MB_MASTER_ASSERT(mbm_opts->mbm_task_handle != NULL); // The task is created but handle is incorrect } diff --git a/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c b/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c index e6ccdb8..fa1ac55 100644 --- a/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c +++ b/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c @@ -59,15 +59,15 @@ static esp_err_t mbc_serial_slave_setup(void* comm_info) mb_slave_options_t* mbs_opts = &mbs_interface_ptr->opts; mb_slave_comm_info_t* comm_settings = (mb_slave_comm_info_t*)comm_info; MB_SLAVE_CHECK(((comm_settings->mode == MB_MODE_RTU) || (comm_settings->mode == MB_MODE_ASCII)), - ESP_ERR_INVALID_ARG, "mb incorrect mode = (0x%x).", + ESP_ERR_INVALID_ARG, "mb incorrect mode = (0x%" PRIu32 "x).", (uint32_t)comm_settings->mode); MB_SLAVE_CHECK((comm_settings->slave_addr <= MB_ADDRESS_MAX), - ESP_ERR_INVALID_ARG, "mb wrong slave address = (0x%x).", + ESP_ERR_INVALID_ARG, "mb wrong slave address = (0x%" PRIu32 "x).", (uint32_t)comm_settings->slave_addr); MB_SLAVE_CHECK((comm_settings->port < UART_NUM_MAX), ESP_ERR_INVALID_ARG, - "mb wrong port to set = (0x%x).", (uint32_t)comm_settings->port); + "mb wrong port to set = (0x%" PRIu32 "x).", (uint32_t)comm_settings->port); MB_SLAVE_CHECK((comm_settings->parity <= UART_PARITY_ODD), ESP_ERR_INVALID_ARG, - "mb wrong parity option = (0x%x).", (uint32_t)comm_settings->parity); + "mb wrong parity option = (0x%" PRIu32 "x).", (uint32_t)comm_settings->parity); // Set communication options of the controller mbs_opts->mbs_comm = *(mb_communication_info_t*)comm_settings; @@ -95,7 +95,7 @@ static esp_err_t mbc_serial_slave_start(void) "mb stack initialization failure, eMBInit() returns (0x%x).", status); status = eMBEnable(); MB_SLAVE_CHECK((status == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb stack set slave ID failure, eMBEnable() returned (0x%x).", (uint32_t)status); + "mb stack set slave ID failure, eMBEnable() returned (0x%" PRIu32 "x).", (uint32_t)status); // Set the mbcontroller start flag EventBits_t flag = xEventGroupSetBits(mbs_opts->mbs_event_group, (EventBits_t)MB_EVENT_STACK_STARTED); @@ -164,7 +164,7 @@ static esp_err_t mbc_serial_slave_destroy(void) (void)vEventGroupDelete(mbs_opts->mbs_event_group); mb_error = eMBClose(); MB_SLAVE_CHECK((mb_error == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb stack close failure returned (0x%x).", (uint32_t)mb_error); + "mb stack close failure returned (0x%" PRIu32 "x).", (uint32_t)mb_error); mbs_interface_ptr = NULL; vMBPortSetMode((UCHAR)MB_PORT_INACTIVE); return ESP_OK; @@ -216,7 +216,7 @@ esp_err_t mbc_serial_slave_create(void** handler, bool start_controller_task) if (status != pdPASS) { vTaskDelete(mbs_opts->mbs_task_handle); MB_SLAVE_CHECK((status == pdPASS), ESP_ERR_NO_MEM, - "mb controller task creation error, xTaskCreate() returns (0x%x).", + "mb controller task creation error, xTaskCreate() returns (0x%" PRIu32 "x).", (uint32_t)status); } diff --git a/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c b/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c index def4eff..a73936b 100644 --- a/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c +++ b/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c @@ -120,7 +120,7 @@ static esp_err_t mbc_tcp_master_setup(void* comm_info) const mb_communication_info_t* comm_info_ptr = (mb_communication_info_t*)comm_info; // Check communication options MB_MASTER_CHECK((comm_info_ptr->ip_mode == MB_MODE_TCP), - ESP_ERR_INVALID_ARG, "mb incorrect mode = (0x%x).", + ESP_ERR_INVALID_ARG, "mb incorrect mode = (0x%" PRIu32 "x).", (uint32_t)comm_info_ptr->ip_mode); MB_MASTER_CHECK((comm_info_ptr->ip_addr != NULL), ESP_ERR_INVALID_ARG, "mb wrong slave ip address table."); @@ -159,7 +159,7 @@ static esp_err_t mbc_tcp_master_start(void) status = eMBMasterEnable(); MB_MASTER_CHECK((status == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb stack set slave ID failure, eMBMasterEnable() returned (0x%x).", (uint32_t)status); + "mb stack set slave ID failure, eMBMasterEnable() returned (0x%" PRIu32 "x).", (uint32_t)status); // Add slave IP address for each slave to initialize connection mb_slave_addr_entry_t *p_slave_info; @@ -200,7 +200,7 @@ static esp_err_t mbc_tcp_master_destroy(void) mb_error = eMBMasterClose(); MB_MASTER_CHECK((mb_error == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb stack close failure returned (0x%x).", (uint32_t)mb_error); + "mb stack close failure returned (0x%" PRIu32 "x).", (uint32_t)mb_error); // Stop polling by clearing correspondent bit in the event group xEventGroupClearBits(mbm_opts->mbm_event_group, (EventBits_t)MB_EVENT_STACK_STARTED); @@ -792,7 +792,7 @@ esp_err_t mbc_tcp_master_create(void** handler, bool start_controller_task) if (status != pdPASS) { vTaskDelete(mbm_opts->mbm_task_handle); MB_MASTER_CHECK((status == pdPASS), ESP_ERR_NO_MEM, - "mb controller task creation error, xTaskCreate() returns (0x%x).", + "mb controller task creation error, xTaskCreate() returns (0x%" PRIu32 "x).", (uint32_t)status); } else diff --git a/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c b/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c index 9e469bb..d5f5f6e 100644 --- a/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c +++ b/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c @@ -82,7 +82,7 @@ static esp_err_t mbc_tcp_slave_start(void) status = eMBEnable(); MB_SLAVE_CHECK((status == MB_ENOERR), ESP_ERR_INVALID_STATE, - "mb TCP stack start failure, eMBEnable() returned (0x%x).", (uint32_t)status); + "mb TCP stack start failure, eMBEnable() returned (0x%" PRIu32 "x).", (uint32_t)status); // Set the mbcontroller start flag EventBits_t flag = xEventGroupSetBits(mbs_opts->mbs_event_group, (EventBits_t)MB_EVENT_STACK_STARTED); @@ -192,7 +192,7 @@ esp_err_t mbc_tcp_slave_create(void** handler, bool start_controller_task) if (status != pdPASS) { vTaskDelete(mbs_opts->mbs_task_handle); MB_SLAVE_CHECK((status == pdPASS), ESP_ERR_NO_MEM, - "mb controller task creation error, xTaskCreate() returns (0x%x).", + "mb controller task creation error, xTaskCreate() returns (0x%" PRIu32 "x).", (uint32_t)status); }