Files
open-insight/LSL2/STPROC/OENGINE_SERVICES.txt

75 lines
3.3 KiB
Plaintext

Compile function OEngine_Services(@Service, @Params)
#pragma precomp SRP_PreCompiler
/***********************************************************************************************************************
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
permission from Infineon Technologies.
Name : OEngine_Services
Description : Handler program for all module related services.
Notes : The generic parameters should contain all the necessary information to process the services. Often
this will be information like the data Record and Key ID.
Parameters :
Service [in] -- Name of the service being requested
Param1-10 [in/out] -- Additional request parameter holders
Response [out] -- Response to be sent back to the Controller (MCP) or requesting procedure
History : (Date, Initials, Notes)
10/11/23 djs Original programmer.
***********************************************************************************************************************/
$Insert APP_INSERTS
$Insert SERVICE_SETUP
$Insert REVDOTNETEQUATES
Declare Function GetCurrentProcessId, GetCommandLine
Declare Subroutine Set_Property.Net, Mona_Services
GoToService else
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
Return Response or ""
//-----------------------------------------------------------------------------
// SERVICES
//-----------------------------------------------------------------------------
Service LogMemoryUsage()
CmdLine = GetCommandLine()
EngIndex = Index(CmdLine, '/S=', 1)
EngNo = CmdLine[EngIndex + 3, 'F ']
BaseGroupResource = 'GRP_OPENINSIGHT_MES_OP_FE_ENGINES_'
MonaResource = BaseGroupResource:EngNo
ErrCode = ''
Pid = GetCurrentProcessId()
If Pid NE '' then
DotNetHandle = StartDotNet("","4.0")
DotNetDir = CheckDotNet('4.0'):'\'
DirDllPath = DotNetDir:'System.dll'
Set_Property.Net(DotNetHandle, "AssemblyName", DirDllPath)
If Not(Get_Status(errCode)) then
objProc = Create_Class.Net(DotNetHandle, "System.Diagnostics.Process", False$)
If Not(Get_status(errCode)) then
Methods = Get_Info.Net(objProc, REVDOTNET_INFO_METHODS)
objThisProc = Send_Message.Net(objProc, "GetProcessById", Pid, 'System.Int32', True$)
If Not(Get_Status(errCode)) then
// Log memory values
PeakWorkingSet = Get_Property.Net(objThisProc, 'PeakWorkingSet64', False$) / 1024
WorkingSet = Get_Property.Net(objThisProc, 'WorkingSet64', False$) / 1024
Mona_Services('PostAverageMetric', MonaResource, 'PeakMemoryUsage', PeakWorkingSet)
Mona_Services('PostAverageMetric', MonaResource, 'CurrentMemoryUsage', WorkingSet)
Free_Class.Net(objThisProc)
end
Free_Class.Net(objProc)
end
end
end
End Service