{attribute 'conditionalshow' := 'IoDrvDebug'}
METHOD FreeScanData
VAR_INPUT
END_VAR
VAR
pCurConnector : POINTER TO IoConfigConnector;
pParameter : POINTER TO IoConfigParameter;
i : UINT;
//Free device scan data
IF _uiScannedSlaves > 0 AND _pScanList <> 0 THEN
pCurConnector := _pScanList;
FOR i := 0 TO _uiScannedSlaves - 1 DO
pParameter := pCurConnector^.pParameterList;
IF pParameter <> 0 THEN
IF (pParameter^.dwFlags AND IoStandard.ParameterValueFlags.PVF_POINTER) = IoStandard.ParameterValueFlags.PVF_POINTER THEN
// dwValue is pointer
IF pParameter^.dwValue <> 0 THEN
SysMemFreeData(g_stComponentName, pParameter^.dwValue);
END_IF
END_IF
pParameter := pParameter + SIZEOF(IoConfigParameter);
END_FOR
pCurConnector := pCurConnector + SIZEOF(IoStandard.IoConfigConnector);
END_FOR
SysMemFreeData(g_stComponentName, _pScanList);
_pScanList := 0;
_uiScannedSlaves := 0;
END_IF