Common ResourceID and IsViewerFile
Enable process-data-standard-format for HgCV and Tencor
This commit is contained in:
parent
dcb61e220c
commit
bf82640ed2
@ -398,10 +398,10 @@ Service ImportMetrologyFiles(Machine)
|
||||
|
||||
Begin Case
|
||||
Case Machine _EQC 'Tencor'
|
||||
SearchPattern = '*.txt';
|
||||
SearchPattern = '*.pdsf';
|
||||
DataPath = Environment_Services('GetApplicationRootPath') : '\Metrology\MET08DDUPSFS6420\Source\MET08DDUPSFS6420\'
|
||||
Case Machine _EQC 'HgCV'
|
||||
SearchPattern = '*.txt';
|
||||
SearchPattern = '*.pdsf';
|
||||
DataPath = Environment_Services('GetApplicationRootPath') : '\Metrology\MET08RESIHGCV\Source\MET08RESIHGCV\'
|
||||
Case Machine _EQC 'CDE'
|
||||
SearchPattern = '*.pdsf';
|
||||
@ -647,21 +647,42 @@ Service ImportMetrologyRunData(Machine, DataPath, FileName, RunData)
|
||||
|
||||
// Scan the run data for machine specific information. Then call the relevant update service for the specific
|
||||
// machine.
|
||||
ResourceID = Field(FileName, ' ', 1, 1)
|
||||
IsViewerFile = Index(FileName, 'Viewer', 1)
|
||||
Begin Case
|
||||
Case Machine _EQC 'Stratus'
|
||||
Metrology_Services('ImportStratusData', RunData)
|
||||
PSN = RunData<9>
|
||||
Metrology_Services('ImportStratusData', RunData, ResourceID, PSN)
|
||||
MachineType@ = 'Stratus'
|
||||
|
||||
Case Machine _EQC 'Biorad'
|
||||
Metrology_Services('ImportBioRadData', RunData, FileName)
|
||||
PSN = RunData<7>
|
||||
QualFile = ( (PSN EQ 'T-Low') or (PSN EQ 'T-Mid') or (PSN EQ 'T-High') or (PSN EQ 'T_LOW') or (PSN EQ 'T_MID') or (PSN EQ 'T_HIGH') )
|
||||
IF QualFile THEN
|
||||
Metrology_Services('ImportBioRadQualData', RunData, ResourceID, PSN)
|
||||
END ELSE
|
||||
Metrology_Services('ImportBioRadData', RunData, ResourceID, IsViewerFile, PSN, FileName)
|
||||
END
|
||||
MachineType@ = 'Bio-Rad'
|
||||
|
||||
Case Machine _EQC 'CDE'
|
||||
Metrology_Services('ImportCDEData', RunData, FileName)
|
||||
PSN = RunData<8>
|
||||
QualFile = ( (PSN EQ 'RLOW_STD') or (PSN EQ 'RMID_STD') or (PSN EQ 'RHI_STD') or (PSN EQ 'THINSPC') )
|
||||
IF QualFile THEN
|
||||
Metrology_Services('ImportCDEQualData', RunData, ResourceID, PSN)
|
||||
END ELSE
|
||||
Metrology_Services('ImportCDEData', RunData, ResourceID, IsViewerFile, PSN)
|
||||
END
|
||||
MachineType@ = 'CDE'
|
||||
|
||||
Case Machine _EQC 'HgCV'
|
||||
Metrology_Services('ImportHgCVData', RunData, FileName)
|
||||
PSN = RunData<5>
|
||||
QualFile = ( (PSN EQ 'Low') or (PSN EQ 'Mid') or (PSN EQ 'High') or (PSN EQ 'Thin') )
|
||||
IF QualFile THEN
|
||||
Metrology_Services('ImportHgCVQualData', RunData, ResourceID, PSN)
|
||||
END ELSE
|
||||
Metrology_Services('ImportHgCVData', RunData, ResourceID, IsViewerFile, PSN)
|
||||
END
|
||||
MachineType@ = 'HgProbe'
|
||||
|
||||
Case Machine _EQC 'SP1'
|
||||
@ -692,7 +713,7 @@ Service ImportMetrologyRunData(Machine, DataPath, FileName, RunData)
|
||||
end service
|
||||
|
||||
|
||||
Service ImportStratusData(RunData)
|
||||
Service ImportStratusData(RunData, ResourceID, PSN)
|
||||
|
||||
Machine = 'Stratus'
|
||||
ParseArray = ''
|
||||
@ -707,7 +728,6 @@ Service ImportStratusData(RunData)
|
||||
Recipe = RunData<6>
|
||||
Reactor = RunData<7>
|
||||
RDSNo = RunData<8> ; // If Non-EpiPro this will be an RDS Key, otherwise it will be a work order key.
|
||||
PSN = RunData<9>
|
||||
BatchID = RunData<10>
|
||||
Cassette = RunData<11>
|
||||
ThickAvg = RunData<12>
|
||||
@ -866,18 +886,9 @@ Service ImportStratusData(RunData)
|
||||
end service
|
||||
|
||||
|
||||
Service ImportBioRadData(RunData, FileName)
|
||||
Service ImportBioRadQualData(RunData, ResourceID, PSN)
|
||||
|
||||
Machine = 'BioRad'
|
||||
IsProdTest = False$
|
||||
ParseArray = ''
|
||||
FieldPos = 13
|
||||
FieldPosIncrement = 2
|
||||
Offset = 1
|
||||
Decimals = 2
|
||||
PSN = RunData<7>
|
||||
QualFile = ( (PSN EQ 'T-Low') or (PSN EQ 'T-Mid') or (PSN EQ 'T-High') or (PSN EQ 'T_LOW') or (PSN EQ 'T_MID') or (PSN EQ 'T_HIGH') )
|
||||
If QualFile then
|
||||
ResourceID = Field(FileName, ' ', 1, 1)
|
||||
URL = "https://oi-metrology-viewer-prod.mes.infineon.com/api/InfinityQSV3/":ResourceID:"/header"
|
||||
TimeoutDuration = HTTPClient_Services('GetTimeoutDuration')
|
||||
If TimeoutDuration NE 30 then Httpclient_Services('SetTimeoutDuration', 30)
|
||||
@ -908,9 +919,20 @@ Service ImportBioRadData(RunData, FileName)
|
||||
end else
|
||||
Metrology_Services('LogResults', PSN, Machine, 'UID002', Service : ' : ' : 'Null response from IQS API.')
|
||||
end
|
||||
end else
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ImportBioRadData(RunData, ResourceID, IsViewerFile, PSN, FileName)
|
||||
|
||||
Machine = 'BioRad'
|
||||
IsProdTest = False$
|
||||
ParseArray = ''
|
||||
FieldPos = 13
|
||||
FieldPosIncrement = 2
|
||||
Offset = 1
|
||||
Decimals = 2
|
||||
// RDS Biorad metrology file
|
||||
IsViewerFile = Index(FileName, 'Viewer', 1)
|
||||
Timestamp = RunData<2>
|
||||
RDSKeyID = RunData<6>
|
||||
RunDataLayer = RunData<8>
|
||||
@ -1226,28 +1248,13 @@ Service ImportBioRadData(RunData, FileName)
|
||||
Metrology_Services('LogResults', RDSKeyID, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ImportCDEData(RunData, FileName)
|
||||
Service ImportCDEQualData(RunData, ResourceID, PSN)
|
||||
|
||||
Machine = 'CDE'
|
||||
ParseArray = ''
|
||||
FieldPos = 23
|
||||
FieldPosIncrement = 5
|
||||
Offset = 3
|
||||
Decimals = 3
|
||||
Timestamp = RunData<3>
|
||||
RDSKeyID = RunData<7>
|
||||
RunDataLayer = RunData<9>
|
||||
RunDataZone = RunData<10>
|
||||
ReactorID = RunData<6>
|
||||
ScanRecipe = RunData<5>
|
||||
PSN = RunData<8>
|
||||
QualFile = ( (PSN EQ 'RLOW_STD') or (PSN EQ 'RMID_STD') or (PSN EQ 'RHI_STD') or (PSN EQ 'THINSPC') )
|
||||
If QualFile then
|
||||
ResourceID = Field(FileName, ' ', 1, 1)
|
||||
URL = "https://oi-metrology-viewer-prod.mes.infineon.com/api/InfinityQSV3/":ResourceID:"/header"
|
||||
TimeoutDuration = HTTPClient_Services('GetTimeoutDuration')
|
||||
@ -1276,9 +1283,24 @@ Service ImportCDEData(RunData, FileName)
|
||||
Metrology_Services('LogResults', PSN, Machine, 'UID002', Service : ' : ' : 'Null response from IQS API.')
|
||||
end
|
||||
|
||||
end else
|
||||
end service
|
||||
|
||||
|
||||
Service ImportCDEData(RunData, ResourceID, IsViewerFile, PSN)
|
||||
|
||||
Machine = 'CDE'
|
||||
ParseArray = ''
|
||||
FieldPos = 23
|
||||
FieldPosIncrement = 5
|
||||
Offset = 3
|
||||
Decimals = 3
|
||||
Timestamp = RunData<3>
|
||||
RDSKeyID = RunData<7>
|
||||
RunDataLayer = RunData<9>
|
||||
RunDataZone = RunData<10>
|
||||
ReactorID = RunData<6>
|
||||
ScanRecipe = RunData<5>
|
||||
// Regular metrology file
|
||||
IsViewerFile = Index(FileName, 'Viewer', 1)
|
||||
ToolClassID = '4PP'
|
||||
PatternNameIndex = RDS_TEST_SPEC_RES_MPATTERN$
|
||||
ToolClassIndex = RDS_TEST_SPEC_RES_MTOOL$
|
||||
@ -1473,27 +1495,13 @@ Service ImportCDEData(RunData, FileName)
|
||||
end else
|
||||
Metrology_Services('LogResults', RDSKeyID, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ImportHgCVData(RunData, FileName)
|
||||
Service ImportHgCVQualData(RunData, ResourceID, PSN)
|
||||
|
||||
Machine = 'HgCV' /* Resistivity */
|
||||
FieldPos = 53
|
||||
FieldPosIncrement = 9
|
||||
Offset = 5
|
||||
PhaseOffset = 7
|
||||
Decimals = 3
|
||||
Timestamp = RunData<11>
|
||||
RDSKeyID = RunData<4>
|
||||
LayerZonePair = RunData<8>
|
||||
ReactorID = RunData<3>
|
||||
PSN = RunData<5>
|
||||
QualFile = ( (PSN EQ 'Low') or (PSN EQ 'Mid') or (PSN EQ 'High') or (PSN EQ 'Thin') )
|
||||
If QualFile then
|
||||
ResourceID = Field(FileName, ' ', 1, 1)
|
||||
URL = "https://oi-metrology-viewer-prod.mes.infineon.com/api/InfinityQSV3/":ResourceID:"/header"
|
||||
TimeoutDuration = HTTPClient_Services('GetTimeoutDuration')
|
||||
If TimeoutDuration NE 30 then Httpclient_Services('SetTimeoutDuration', 30)
|
||||
@ -1520,9 +1528,23 @@ Service ImportHgCVData(RunData, FileName)
|
||||
end else
|
||||
Metrology_Services('LogResults', PSN, Machine, 'UID002', Service : ' : ' : 'Null response from IQS API.')
|
||||
end
|
||||
end else
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ImportHgCVData(RunData, ResourceID, IsViewerFile, PSN)
|
||||
|
||||
Machine = 'HgCV' /* Resistivity */
|
||||
FieldPos = 53
|
||||
FieldPosIncrement = 9
|
||||
Offset = 5
|
||||
PhaseOffset = 7
|
||||
Decimals = 3
|
||||
Timestamp = RunData<11>
|
||||
RDSKeyID = RunData<4>
|
||||
LayerZonePair = RunData<8>
|
||||
ReactorID = RunData<3>
|
||||
// Regular metrology file
|
||||
IsViewerFile = Index(FileName, 'Viewer', 1)
|
||||
ToolClassID = 'HGCV'
|
||||
PatternNameIndex = RDS_TEST_SPEC_RES_MPATTERN$
|
||||
ToolClassIndex = RDS_TEST_SPEC_RES_MTOOL$
|
||||
@ -1816,7 +1838,6 @@ Service ImportHgCVData(RunData, FileName)
|
||||
end else
|
||||
Metrology_Services('LogResults', RDSKeyID, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user