open-insight/LSL2/STPROC/KEYBOARD_SIM_SERVICES.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

80 lines
2.9 KiB
Plaintext

COMPILE FUNCTION KEYBOARD_SIM_SERVICES(@Service, @Params)
Declare Subroutine Errmsg, Error_Services
Declare function Get_Status
#pragma precomp SRP_PreCompiler
$Insert LOGICAL
$Insert SERVICE_SETUP
$Insert REVDOTNETEQUATES
$Insert RDS_EQUATES
$Insert PROD_SPEC_EQUATES
$Insert PRS_STAGE_EQUATES
response = ''
DotNetHandle = StartDotNet("","4.0")
//Specify the DLL
RootPath = Drive()
rv = Set_Property.NET(DotNetHandle, "AssemblyName", RootPath:'\IFXAPI\KeyboardSimulator\KeyboardSimulator.dll')
//Define the classes
WebClientAPI = Create_Class.NET(DotNetHandle, "Infineon.Mesa.OpenInsight.Library.KeyboardSimulator.Scan", 0)
errCode = ''
IF Get_Status(errCode) THEN
//ErrMsg(errCode)
END
GoToService else
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
Free_Class.Net(WebClientAPI)
return response
Service SendTencor(ToolName, RDSNo)
ClearData = Send_Message.NET(WebClientAPI, "ClearData")
SetScan = Send_Message.NET(WebClientAPI, "SetScan", ToolName:@VM:"RDS":@VM:RDSNo,"System.String":@VM:"System.String":@VM:"System.String")
PSNo = XLATE('RDS', RDSNo, RDS_PROD_SPEC_ID$, 'X')
Reactor = XLATE('RDS', RDSNo, RDS_REACTOR$, 'X')
SetData = Send_Message.NET(WebClientAPI, "SetData", RDSNo:@VM:PSNo:@VM:Reactor,"System.String":@VM:"System.String":@VM:"System.String")
PRSStageKeys = XLATE('PROD_SPEC', PSNo, PROD_SPEC_PRS_STAGE_KEY$, 'X')
RecipesToSend = ''
SumsOfDefects = ''
HazeAveragePPMs = ''
SampleQuantities = ''
index = 1
for each PRSStage in PRSStageKeys using @VM
PRSStageRec = XLATE('PRS_STAGE', PRSStage, '', 'X')
Recipes = PRSStageRec<PRS_STAGE_SURFSCAN_RECIPE$>
IF Recipes NE '' then
for each Recipe in Recipes using @VM
RecipesToSend<1,index> = Recipe
SumsOfDefects<1,index> = PRSStageRec<11, index>
HazeAveragePPMs<1,index> = PRSStageRec<10, index>
SampleQuantities<1,index> = PRSStageRec<23, index>
index += 1
Next Recipe
end
Next PRSStage
RecipeIndex = 1
for each RecipeToSend in RecipesToSend using @VM
AddRecipe = Send_Message.NET(WebClientAPI, "AddSurfScanRecipe", RecipeToSend:@VM:SumsOfDefects<1,RecipeIndex>:@VM:HazeAveragePPMs<1,RecipeIndex>:@VM:SampleQuantities<1,RecipeIndex>,"System.String":@VM:"System.String":@VM:"System.String":@VM:"System.String")
RecipeIndex += 1
Next RecipeToSend
IFXWriteData = Send_Message.NET(WebClientAPI, "DDriveWriteData")
if Get_Status(errcode) then
Response = Get_Status(errcode)
end else
Response = 'Success'
end
end service