From d7fafdc916eac8e65b190e19eab25f8a5826f7c1 Mon Sep 17 00:00:00 2001 From: aleks Date: Fri, 25 Feb 2022 12:12:34 +0100 Subject: [PATCH] freemodbus: fix port enable disable sequence for tcp master and slave --- components/freemodbus/modbus/include/mbport.h | 4 + components/freemodbus/modbus/tcp/mbtcp.c | 3 + components/freemodbus/modbus/tcp/mbtcp_m.c | 4 + .../modbus_controller/mbc_tcp_master.c | 181 +++++++++--------- .../tcp_master/port/port_tcp_master.c | 38 ++-- .../tcp_master/port/port_tcp_master.h | 7 - .../modbus_controller/mbc_tcp_slave.c | 1 - .../tcp_slave/port/port_tcp_slave.c | 10 +- .../tcp_slave/port/port_tcp_slave.h | 7 - .../modbus/tcp/mb_tcp_slave/main/tcp_slave.c | 2 +- 10 files changed, 127 insertions(+), 130 deletions(-) diff --git a/components/freemodbus/modbus/include/mbport.h b/components/freemodbus/modbus/include/mbport.h index a73b949fba..412d171051 100644 --- a/components/freemodbus/modbus/include/mbport.h +++ b/components/freemodbus/modbus/include/mbport.h @@ -222,6 +222,8 @@ BOOL xMBTCPPortInit( USHORT usTCPPort ); void vMBTCPPortClose( void ); +void vMBTCPPortEnable( void ); + void vMBTCPPortDisable( void ); BOOL xMBTCPPortGetRequest( UCHAR **ppucMBTCPFrame, USHORT * usTCPLength ); @@ -235,6 +237,8 @@ BOOL xMBMasterTCPPortInit( USHORT usTCPPort ); void vMBMasterTCPPortClose( void ); +void vMBMasterTCPPortEnable( void ); + void vMBMasterTCPPortDisable( void ); BOOL xMBMasterTCPPortGetRequest( UCHAR **ppucMBTCPFrame, USHORT * usTCPLength ); diff --git a/components/freemodbus/modbus/tcp/mbtcp.c b/components/freemodbus/modbus/tcp/mbtcp.c index 25277528cb..624d909344 100644 --- a/components/freemodbus/modbus/tcp/mbtcp.c +++ b/components/freemodbus/modbus/tcp/mbtcp.c @@ -86,12 +86,15 @@ eMBTCPDoInit( USHORT ucTCPPort ) void eMBTCPStart( void ) { + ESP_LOGD(MB_PORT_TAG, "TCP Slave port enable."); + vMBTCPPortEnable( ); } void eMBTCPStop( void ) { /* Make sure that no more clients are connected. */ + ESP_LOGD(MB_PORT_TAG, "TCP Slave port disable."); vMBTCPPortDisable( ); } diff --git a/components/freemodbus/modbus/tcp/mbtcp_m.c b/components/freemodbus/modbus/tcp/mbtcp_m.c index 05eca0d407..7e1f8950cb 100644 --- a/components/freemodbus/modbus/tcp/mbtcp_m.c +++ b/components/freemodbus/modbus/tcp/mbtcp_m.c @@ -86,11 +86,15 @@ eMBMasterTCPDoInit( USHORT ucTCPPort ) void eMBMasterTCPStart( void ) { + ESP_LOGD(MB_PORT_TAG, "TCP Master port enable."); + vMBMasterTCPPortEnable( ); } void eMBMasterTCPStop( void ) { + ESP_LOGD(MB_PORT_TAG, "TCP Master port disable."); + vMBMasterTCPPortDisable( ); } eMBErrorCode diff --git a/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c b/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c index 52c6cadaa3..17e47f0c8c 100644 --- a/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c +++ b/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c @@ -165,7 +165,10 @@ static esp_err_t mbc_tcp_master_start(void) eMBPortProto proto = (comm_info->ip_mode == MB_MODE_TCP) ? MB_PROTO_TCP : MB_PROTO_UDP; eMBPortIpVer ip_ver = (comm_info->ip_addr_type == MB_IPV4) ? MB_PORT_IPV4 : MB_PORT_IPV6; vMBTCPPortMasterSetNetOpt(comm_info->ip_netif_ptr, ip_ver, proto); - vMBTCPPortMasterTaskStart(); + + 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); // Add slave IP address for each slave to initialize connection mb_slave_addr_entry_t *p_slave_info; @@ -178,18 +181,13 @@ static esp_err_t mbc_tcp_master_start(void) // Add end of list condition (void)xMBTCPPortMasterAddSlaveIp(0xFF, NULL, 0xFF); - 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); - // Wait for connection done event bool start = (bool)xMBTCPPortMasterWaitEvent(mbm_opts->mbm_event_group, - (EventBits_t)MB_EVENT_STACK_STARTED, MB_TCP_CONNECTION_TOUT); + (EventBits_t)MB_EVENT_STACK_STARTED, MB_TCP_CONNECTION_TOUT); MB_MASTER_CHECK((start), ESP_ERR_INVALID_STATE, - "mb stack could not connect to slaves for %d seconds.", - CONFIG_FMB_TCP_CONNECTION_TOUT_SEC); - + "mb stack could not connect to slaves for %d seconds.", + CONFIG_FMB_TCP_CONNECTION_TOUT_SEC); return ESP_OK; } @@ -206,10 +204,10 @@ static esp_err_t mbc_tcp_master_destroy(void) MB_MASTER_CHECK((mb_error == MB_ENOERR), ESP_ERR_INVALID_STATE, "mb stack disable failure."); 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%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); + (EventBits_t)MB_EVENT_STACK_STARTED); (void)vTaskDelete(mbm_opts->mbm_task_handle); mbm_opts->mbm_task_handle = NULL; (void)vEventGroupDelete(mbm_opts->mbm_event_group); @@ -282,52 +280,52 @@ static esp_err_t mbc_tcp_master_send_request(mb_param_request_t* request, void* // Calls appropriate request function to send request and waits response switch(mb_command) { - case MB_FUNC_READ_COILS: - mb_error = eMBMasterReqReadCoils((UCHAR)mb_slave_addr, (USHORT)mb_offset, - (USHORT)mb_size , (LONG)MB_RESPONSE_TIMEOUT ); - break; - case MB_FUNC_WRITE_SINGLE_COIL: - mb_error = eMBMasterReqWriteCoil((UCHAR)mb_slave_addr, (USHORT)mb_offset, - *(USHORT*)data_ptr, (LONG)MB_RESPONSE_TIMEOUT ); - break; - case MB_FUNC_WRITE_MULTIPLE_COILS: - mb_error = eMBMasterReqWriteMultipleCoils((UCHAR)mb_slave_addr, (USHORT)mb_offset, - (USHORT)mb_size, (UCHAR*)data_ptr, - (LONG)MB_RESPONSE_TIMEOUT); - break; - case MB_FUNC_READ_DISCRETE_INPUTS: - mb_error = eMBMasterReqReadDiscreteInputs((UCHAR)mb_slave_addr, (USHORT)mb_offset, - (USHORT)mb_size, (LONG)MB_RESPONSE_TIMEOUT ); - break; - case MB_FUNC_READ_HOLDING_REGISTER: - mb_error = eMBMasterReqReadHoldingRegister((UCHAR)mb_slave_addr, (USHORT)mb_offset, - (USHORT)mb_size, (LONG)MB_RESPONSE_TIMEOUT ); - break; - case MB_FUNC_WRITE_REGISTER: - mb_error = eMBMasterReqWriteHoldingRegister( (UCHAR)mb_slave_addr, (USHORT)mb_offset, - *(USHORT*)data_ptr, (LONG)MB_RESPONSE_TIMEOUT ); - break; + case MB_FUNC_READ_COILS: + mb_error = eMBMasterReqReadCoils((UCHAR)mb_slave_addr, (USHORT)mb_offset, + (USHORT)mb_size, (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_WRITE_SINGLE_COIL: + mb_error = eMBMasterReqWriteCoil((UCHAR)mb_slave_addr, (USHORT)mb_offset, + *(USHORT *)data_ptr, (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_WRITE_MULTIPLE_COILS: + mb_error = eMBMasterReqWriteMultipleCoils((UCHAR)mb_slave_addr, (USHORT)mb_offset, + (USHORT)mb_size, (UCHAR *)data_ptr, + (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_READ_DISCRETE_INPUTS: + mb_error = eMBMasterReqReadDiscreteInputs((UCHAR)mb_slave_addr, (USHORT)mb_offset, + (USHORT)mb_size, (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_READ_HOLDING_REGISTER: + mb_error = eMBMasterReqReadHoldingRegister((UCHAR)mb_slave_addr, (USHORT)mb_offset, + (USHORT)mb_size, (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_WRITE_REGISTER: + mb_error = eMBMasterReqWriteHoldingRegister((UCHAR)mb_slave_addr, (USHORT)mb_offset, + *(USHORT *)data_ptr, (LONG)MB_RESPONSE_TIMEOUT); + break; - case MB_FUNC_WRITE_MULTIPLE_REGISTERS: - mb_error = eMBMasterReqWriteMultipleHoldingRegister( (UCHAR)mb_slave_addr, - (USHORT)mb_offset, (USHORT)mb_size, - (USHORT*)data_ptr, (LONG)MB_RESPONSE_TIMEOUT ); - break; - case MB_FUNC_READWRITE_MULTIPLE_REGISTERS: - mb_error = eMBMasterReqReadWriteMultipleHoldingRegister( (UCHAR)mb_slave_addr, (USHORT)mb_offset, - (USHORT)mb_size, (USHORT*)data_ptr, - (USHORT)mb_offset, (USHORT)mb_size, - (LONG)MB_RESPONSE_TIMEOUT ); - break; - case MB_FUNC_READ_INPUT_REGISTER: - mb_error = eMBMasterReqReadInputRegister( (UCHAR)mb_slave_addr, (USHORT)mb_offset, - (USHORT)mb_size, (LONG) MB_RESPONSE_TIMEOUT ); - break; - default: - ESP_LOGE(TAG, "%s: Incorrect function in request (%u) ", - __FUNCTION__, mb_command); - mb_error = MB_MRE_NO_REG; - break; + case MB_FUNC_WRITE_MULTIPLE_REGISTERS: + mb_error = eMBMasterReqWriteMultipleHoldingRegister((UCHAR)mb_slave_addr, + (USHORT)mb_offset, (USHORT)mb_size, + (USHORT *)data_ptr, (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_READWRITE_MULTIPLE_REGISTERS: + mb_error = eMBMasterReqReadWriteMultipleHoldingRegister((UCHAR)mb_slave_addr, (USHORT)mb_offset, + (USHORT)mb_size, (USHORT *)data_ptr, + (USHORT)mb_offset, (USHORT)mb_size, + (LONG)MB_RESPONSE_TIMEOUT); + break; + case MB_FUNC_READ_INPUT_REGISTER: + mb_error = eMBMasterReqReadInputRegister((UCHAR)mb_slave_addr, (USHORT)mb_offset, + (USHORT)mb_size, (LONG)MB_RESPONSE_TIMEOUT); + break; + default: + ESP_LOGE(TAG, "%s: Incorrect function in request (%u) ", + __FUNCTION__, mb_command); + mb_error = MB_MRE_NO_REG; + break; } // Propagate the Modbus errors to higher level @@ -510,12 +508,12 @@ static esp_err_t mbc_tcp_master_get_parameter(uint16_t cid, char* name, uint8_t* error = ESP_ERR_INVALID_STATE; } else { ESP_LOGD(TAG, "%s: Good response for get cid(%u) = %s", - __FUNCTION__, (unsigned)reg_info.cid, (char*)esp_err_to_name(error)); + __FUNCTION__, (unsigned)reg_info.cid, (char*)esp_err_to_name(error)); } } } else { ESP_LOGD(TAG, "%s: Bad response to get cid(%u) = %s", - __FUNCTION__, reg_info.cid, (char*)esp_err_to_name(error)); + __FUNCTION__, reg_info.cid, (char*)esp_err_to_name(error)); error = ESP_ERR_INVALID_RESPONSE; } free(pdata); @@ -523,7 +521,7 @@ static esp_err_t mbc_tcp_master_get_parameter(uint16_t cid, char* name, uint8_t* *type = reg_info.param_type; } else { ESP_LOGE(TAG, "%s: The cid(%u) not found in the data dictionary.", - __FUNCTION__, reg_info.cid); + __FUNCTION__, reg_info.cid); error = ESP_ERR_INVALID_ARG; } return error; @@ -549,7 +547,7 @@ static esp_err_t mbc_tcp_master_set_parameter(uint16_t cid, char* name, uint8_t* } // Transfer value of characteristic into parameter buffer error = mbc_tcp_master_set_param_data((void*)pdata, (void*)value, - reg_info.param_type, reg_info.param_size); + reg_info.param_type, reg_info.param_size); if (error != ESP_OK) { ESP_LOGE(TAG, "fail to set parameter data."); free(pdata); @@ -588,8 +586,7 @@ static esp_err_t mbc_tcp_master_set_parameter(uint16_t cid, char* name, uint8_t* * @return result */ // Callback function for reading of MB Input Registers -eMBErrorCode eMBRegInputCBTcpMaster(UCHAR * pucRegBuffer, USHORT usAddress, - USHORT usNRegs) +eMBErrorCode eMBRegInputCBTcpMaster(UCHAR* pucRegBuffer, USHORT usAddress, USHORT usNRegs) { MB_MASTER_ASSERT(mbm_interface_ptr != NULL); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; @@ -624,36 +621,40 @@ eMBErrorCode eMBRegInputCBTcpMaster(UCHAR * pucRegBuffer, USHORT usAddress, */ // Callback function for reading of MB Holding Registers // Executed by stack when request to read/write holding registers is received -eMBErrorCode eMBRegHoldingCBTcpMaster(UCHAR * pucRegBuffer, USHORT usAddress, - USHORT usNRegs, eMBRegisterMode eMode) +eMBErrorCode eMBRegHoldingCBTcpMaster(UCHAR *pucRegBuffer, USHORT usAddress, + USHORT usNRegs, eMBRegisterMode eMode) { MB_MASTER_ASSERT(mbm_interface_ptr != NULL); - mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; + mb_master_options_t *mbm_opts = &mbm_interface_ptr->opts; MB_MASTER_ASSERT(pucRegBuffer != NULL); USHORT usRegHoldingNregs = (USHORT)mbm_opts->mbm_reg_buffer_size; - UCHAR* pucHoldingBuffer = (UCHAR*)mbm_opts->mbm_reg_buffer_ptr; + UCHAR *pucHoldingBuffer = (UCHAR *)mbm_opts->mbm_reg_buffer_ptr; eMBErrorCode eStatus = MB_ENOERR; USHORT usRegs = usNRegs; // Check input and configuration parameters for correctness - if ((pucHoldingBuffer != NULL) - && (usRegHoldingNregs == usNRegs) - && (usNRegs >= 1)) { - switch (eMode) { - case MB_REG_WRITE: - while (usRegs > 0) { - _XFER_2_RD(pucRegBuffer, pucHoldingBuffer); - usRegs -= 1; - }; - break; - case MB_REG_READ: - while (usRegs > 0) { - _XFER_2_WR(pucHoldingBuffer, pucRegBuffer); - pucHoldingBuffer += 2; - usRegs -= 1; - }; - break; + if ((pucHoldingBuffer != NULL) && (usRegHoldingNregs == usNRegs) && (usNRegs >= 1)) + { + switch (eMode) + { + case MB_REG_WRITE: + while (usRegs > 0) + { + _XFER_2_RD(pucRegBuffer, pucHoldingBuffer); + usRegs -= 1; + }; + break; + case MB_REG_READ: + while (usRegs > 0) + { + _XFER_2_WR(pucHoldingBuffer, pucRegBuffer); + pucHoldingBuffer += 2; + usRegs -= 1; + }; + break; } - } else { + } + else + { eStatus = MB_ENOREG; } return eStatus; @@ -670,8 +671,8 @@ eMBErrorCode eMBRegHoldingCBTcpMaster(UCHAR * pucRegBuffer, USHORT usAddress, * @return result */ // Callback function for reading of MB Coils Registers -eMBErrorCode eMBRegCoilsCBTcpMaster(UCHAR* pucRegBuffer, USHORT usAddress, - USHORT usNCoils, eMBRegisterMode eMode) +eMBErrorCode eMBRegCoilsCBTcpMaster(UCHAR *pucRegBuffer, USHORT usAddress, + USHORT usNCoils, eMBRegisterMode eMode) { MB_MASTER_ASSERT(mbm_interface_ptr != NULL); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; @@ -722,7 +723,7 @@ eMBErrorCode eMBRegCoilsCBTcpMaster(UCHAR* pucRegBuffer, USHORT usAddress, */ // Callback function for reading of MB Discrete Input Registers eMBErrorCode eMBRegDiscreteCBTcpMaster(UCHAR * pucRegBuffer, USHORT usAddress, - USHORT usNDiscrete) + USHORT usNDiscrete) { MB_MASTER_ASSERT(mbm_interface_ptr != NULL); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; @@ -785,14 +786,14 @@ esp_err_t mbc_tcp_master_create(void** handler) status = xTaskCreate((void*)&modbus_tcp_master_task, "modbus_tcp_master_task", MB_CONTROLLER_STACK_SIZE, - NULL, // No parameters + NULL, // No parameters MB_CONTROLLER_PRIORITY, &mbm_opts->mbm_task_handle); 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).", - (uint32_t)status); + "mb controller task creation error, xTaskCreate() returns (0x%x).", + (uint32_t)status); } MB_MASTER_ASSERT(mbm_opts->mbm_task_handle != NULL); // The task is created but handle is incorrect diff --git a/components/freemodbus/tcp_master/port/port_tcp_master.c b/components/freemodbus/tcp_master/port/port_tcp_master.c index 3a6c433164..16ad2bcbc3 100644 --- a/components/freemodbus/tcp_master/port/port_tcp_master.c +++ b/components/freemodbus/tcp_master/port/port_tcp_master.c @@ -248,11 +248,6 @@ void vMBTCPPortMasterSetNetOpt(void* pvNetIf, eMBPortIpVer xIpVersion, eMBPortPr xMbPortConfig.eMbIpVer = xIpVersion; } -void vMBTCPPortMasterTaskStart(void) -{ - vTaskResume(xMbPortConfig.xMbTcpTaskHandle); -} - // Function returns time left for response processing according to response timeout static int64_t xMBTCPPortMasterGetRespTimeLeft(MbSlaveInfo_t* pxInfo) { @@ -890,23 +885,13 @@ extern void vMBMasterPortEventClose(void); extern void vMBMasterPortTimerClose(void); void -vMBMasterTCPPortDisable(void) +vMBMasterTCPPortEnable(void) { - for (USHORT ucCnt = 0; ucCnt < MB_TCP_PORT_MAX_CONN; ucCnt++) { - MbSlaveInfo_t* pxInfo = xMbPortConfig.pxMbSlaveInfo[ucCnt]; - if (pxInfo) { - xMBTCPPortMasterCloseConnection(pxInfo); - if (pxInfo->pucRcvBuf) { - free(pxInfo->pucRcvBuf); - } - free(pxInfo); - xMbPortConfig.pxMbSlaveInfo[ucCnt] = NULL; - } - } + vTaskResume(xMbPortConfig.xMbTcpTaskHandle); } void -vMBMasterTCPPortClose(void) +vMBMasterTCPPortDisable(void) { // Try to exit the task gracefully, so select could release its internal callbacks // that were allocated on the stack of the task we're going to delete @@ -920,8 +905,23 @@ vMBMasterTCPPortClose(void) vSemaphoreDelete(xShutdownSemaphore); xShutdownSemaphore = NULL; } - vMBMasterTCPPortDisable(); + for (USHORT ucCnt = 0; ucCnt < MB_TCP_PORT_MAX_CONN; ucCnt++) { + MbSlaveInfo_t* pxInfo = xMbPortConfig.pxMbSlaveInfo[ucCnt]; + if (pxInfo) { + xMBTCPPortMasterCloseConnection(pxInfo); + if (pxInfo->pucRcvBuf) { + free(pxInfo->pucRcvBuf); + } + free(pxInfo); + xMbPortConfig.pxMbSlaveInfo[ucCnt] = NULL; + } + } free(xMbPortConfig.pxMbSlaveInfo); +} + +void +vMBMasterTCPPortClose(void) +{ vQueueDelete(xMbPortConfig.xConnectQueue); vMBMasterPortTimerClose(); // Release resources for the event queue. diff --git a/components/freemodbus/tcp_master/port/port_tcp_master.h b/components/freemodbus/tcp_master/port/port_tcp_master.h index 5134e7bff1..fd714d36c7 100644 --- a/components/freemodbus/tcp_master/port/port_tcp_master.h +++ b/components/freemodbus/tcp_master/port/port_tcp_master.h @@ -132,13 +132,6 @@ BOOL xMBTCPPortMasterWaitEvent(EventGroupHandle_t xEventHandle, EventBits_t xEve */ void vMBTCPPortMasterSetNetOpt(void* pvNetIf, eMBPortIpVer xIpVersion, eMBPortProto xProto); -/** - * Resume TCP/UDP Master processing task - * - * @return None - */ -void vMBTCPPortMasterTaskStart(void); - #ifdef __cplusplus PR_END_EXTERN_C #endif diff --git a/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c b/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c index a8ae1eba73..29b8678d8c 100644 --- a/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c +++ b/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.c @@ -88,7 +88,6 @@ static esp_err_t mbc_tcp_slave_start(void) eMBPortProto proto = (mbs_opts->mbs_comm.ip_mode == MB_MODE_TCP) ? MB_PROTO_TCP : MB_PROTO_UDP; eMBPortIpVer ip_ver = (mbs_opts->mbs_comm.ip_addr_type == MB_IPV4) ? MB_PORT_IPV4 : MB_PORT_IPV6; vMBTCPPortSlaveSetNetOpt(mbs_opts->mbs_comm.ip_netif_ptr, ip_ver, proto, (char*)mbs_opts->mbs_comm.ip_addr); - vMBTCPPortSlaveStartServerTask(); status = eMBEnable(); MB_SLAVE_CHECK((status == MB_ENOERR), ESP_ERR_INVALID_STATE, diff --git a/components/freemodbus/tcp_slave/port/port_tcp_slave.c b/components/freemodbus/tcp_slave/port/port_tcp_slave.c index e840469f0f..d46e8857b8 100644 --- a/components/freemodbus/tcp_slave/port/port_tcp_slave.c +++ b/components/freemodbus/tcp_slave/port/port_tcp_slave.c @@ -176,11 +176,6 @@ void vMBTCPPortSlaveSetNetOpt(void* pvNetIf, eMBPortIpVer xIpVersion, eMBPortPro xConfig.pcBindAddr = pcBindAddrStr; } -void vMBTCPPortSlaveStartServerTask(void) -{ - vTaskResume(xConfig.xMbTcpTaskHandle); -} - static int xMBTCPPortAcceptConnection(int xListenSockId, char** pcIPAddr) { MB_PORT_CHECK(pcIPAddr, -1, "Wrong IP address pointer."); @@ -655,6 +650,11 @@ vMBTCPPortClose( ) vMBPortEventClose( ); } +void vMBTCPPortEnable( void ) +{ + vTaskResume(xConfig.xMbTcpTaskHandle); +} + void vMBTCPPortDisable( void ) { diff --git a/components/freemodbus/tcp_slave/port/port_tcp_slave.h b/components/freemodbus/tcp_slave/port/port_tcp_slave.h index 3a447b055c..e9fc5d9edb 100644 --- a/components/freemodbus/tcp_slave/port/port_tcp_slave.h +++ b/components/freemodbus/tcp_slave/port/port_tcp_slave.h @@ -101,13 +101,6 @@ typedef struct { */ void vMBTCPPortSlaveSetNetOpt(void* pvNetIf, eMBPortIpVer xIpVersion, eMBPortProto xProto, CHAR* pcBindAddr); -/** - * Resume TCP Slave processing task - * - * @return None - */ -void vMBTCPPortSlaveStartServerTask(void); - #ifdef __cplusplus PR_END_EXTERN_C #endif diff --git a/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c b/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c index 9857e84a2c..e97f593b06 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c +++ b/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c @@ -98,7 +98,7 @@ static void start_mdns_service(void) ESP_ERROR_CHECK(mdns_init()); //set mDNS hostname (required if you want to advertise services) ESP_ERROR_CHECK(mdns_hostname_set(hostname)); - ESP_LOGI(SLAVE_TAG, "mdns hostname set to: [%s]", hostname); + ESP_LOGI(TAG, "mdns hostname set to: [%s]", hostname); //set default mDNS instance name ESP_ERROR_CHECK(mdns_instance_name_set(MB_MDNS_INSTANCE("esp32_")));