modbus master tcp port: fix to close sockets correctly, minor additions for the PR

https://github.com/espressif/esp-modbus/pull/44
This commit is contained in:
aleks
2023-12-18 12:13:20 +01:00
committed by Alex Lisitsyn
parent 135a8f8165
commit bf271f4286

View File

@@ -236,7 +236,6 @@ static BOOL xMBTCPPortMasterCloseConnection(MbSlaveInfo_t *pxInfo)
static void xMBTCPPortMasterShutdown(void) static void xMBTCPPortMasterShutdown(void)
{ {
xSemaphoreGive(xShutdownSema); xSemaphoreGive(xShutdownSema);
xMbPortConfig.xMbTcpTaskHandle = NULL;
for (USHORT ucCnt = 0; ucCnt < MB_TCP_PORT_MAX_CONN; ucCnt++) { for (USHORT ucCnt = 0; ucCnt < MB_TCP_PORT_MAX_CONN; ucCnt++) {
MbSlaveInfo_t* pxInfo = xMbPortConfig.pxMbSlaveInfo[ucCnt]; MbSlaveInfo_t* pxInfo = xMbPortConfig.pxMbSlaveInfo[ucCnt];
@@ -251,6 +250,7 @@ static void xMBTCPPortMasterShutdown(void)
} }
free(xMbPortConfig.pxMbSlaveInfo); free(xMbPortConfig.pxMbSlaveInfo);
vTaskDelete(NULL); vTaskDelete(NULL);
xMbPortConfig.xMbTcpTaskHandle = NULL;
} }
void vMBTCPPortMasterSetNetOpt(void *pvNetIf, eMBPortIpVer xIpVersion, eMBPortProto xProto) void vMBTCPPortMasterSetNetOpt(void *pvNetIf, eMBPortIpVer xIpVersion, eMBPortProto xProto)
@@ -754,7 +754,8 @@ static void vMBTCPPortMasterTask(void *pvParameters)
break; break;
} }
putchar(ucDot); putchar(ucDot);
vTaskDelay(pdMS_TO_TICKS(100)); /* if we don't yield we run the risk of hogging CPU */ // if we don't yield we run the risk of hogging CPU
vTaskDelay(pdMS_TO_TICKS(MB_TCP_CONNECTION_TIMEOUT_MS));
xErr = xMBTCPPortMasterConnect(pxInfo); xErr = xMBTCPPortMasterConnect(pxInfo);
switch(xErr) switch(xErr)
{ {