open-insight/LSL2/STPROC/NDW_WAFER_COUNTS_EVENTS.txt
2024-09-09 17:06:26 -07:00

195 lines
8.1 KiB
Plaintext

Compile function NDW_WAFER_COUNTS_EVENTS(CtrlEntId, Event, @PARAMS)
#pragma precomp SRP_PreCompiler
#window NDW_WAFER_COUNTS
Declare function Reactor_Services, Database_Services, Get_Property, Error_Services, Environment_Services
Declare function SRP_Array, Logging_Services
Declare subroutine Set_Property, Logging_Services
$Insert EVENT_SETUP
$Insert APP_INSERTS
$Insert REACTOR_EQUATES
EQU DATA_ASM_REACT_ID$ to 1
EQU DATA_ASM_SUSC_CNT$ to 2
EQU DATA_ASM_SUSC_THK$ to 3
EQU DATA_ASM_TUBE_CNT$ to 4
EQU DATA_ASM_TUBE_THK$ to 5
EQU DATA_ASM_ARM_CNT$ to 6
EQU DATA_HTR_REACT_ID$ to 1
EQU DATA_HTR_SUSC_CNT$ TO 2
EQU DATA_HTR_SUSC_THK$ TO 3
EQU DATA_HTR_TUBE_CNT$ TO 4
EQU DATA_HTR_TUBE_THK$ TO 5
EQU DATA_HTR_ARM_CNT$ TO 6
EQU DATA_EPP_REACT_ID$ to 1
EQU DATA_EPP_SUSC_CNT$ TO 2
EQU DATA_EPP_SUSC_THK$ TO 3
EQU DATA_EPP_BELL_JAR_CNT$ TO 4
EQU DATA_EPP_BELL_JAR_THK$ TO 5
EQU DATA_EPP_LOWER_QUARTZ_CNT$ TO 6
EQU DATA_EPP_LOWER_QUARTZ_THK$ TO 7
ASMDataTable = @Window : '.OLE_DATA_ASM'
HTRDataTable = @Window : '.OLE_DATA_HTR'
EPPDataTable = @Window : '.OLE_DATA_EPP'
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Reactor'
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Performance Reports.csv'
Headers = 'Logging DTM' : @FM : 'Error Message'
ColumnWidths = 20 : @FM : 15 : @FM : 60 : @FM : 300
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
If Event EQ 'OLE' then
Transfer Event to OIEvent
Transfer Param1 to Event
Transfer Param2 to Param1
Transfer Param3 to Param2
* Transfer Param4 to Param3
* Transfer Param5 to Param4
* Transfer Param6 to Param5
* Transfer Param7 to Param6
* Transfer Param8 to Param7
end
GoToEvent Event for CtrlEntId else
// Event not implemented
end
Return EventFlow or 1
//-----------------------------------------------------------------------------
// EVENT HANDLERS
//-----------------------------------------------------------------------------
Event WINDOW.CREATE(CreateParam)
GoSub SetupOLEControls
GoSub GetReactorMetrics
End Event
Event TABCONTROL_1.CLICK()
Page = Get_Property(@Window : '.TABCONTROL_1', 'VALUE')
Set_Property(@WINDOW,'VPOSITION', Page)
end event
Event PUB_REFRESH_DATA.CLICK()
GoSub GetReactorMetrics
end event
//-----------------------------------------------------------------------------
// Internal GoSubs
//-----------------------------------------------------------------------------
GetReactorMetrics:
ReactorRec = ''
ASMData = ''
HTRData = ''
EPPData = ''
//Get ASM Reactors
ASMList = Reactor_Services('GetReactorNumbers', 'ASM')
ASMList := @FM : Reactor_Services('GetReactorNumbers', 'ASM+')
ASMList = SRP_Array('SortSimpleList', ASMList, 'AscendingNumbers', @FM)
//Get HTR Reactors
HTRList = Reactor_Services('GetReactorNumbers', 'HTR')
//Get EPP Reactors
EPPList = Reactor_Services('GetReactorNumbers', 'EPP')
//Get ASM Data, display to ASM data table
for each Reactor in ASMList using @FM setting rPos
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
if Error_Services('NoError') then
ASMData<rPos, DATA_ASM_REACT_ID$> = MetricData<1, DATA_ASM_REACT_ID$>
ASMData<rPos, DATA_ASM_SUSC_CNT$> = MetricData<1, DATA_ASM_SUSC_CNT$>
ASMData<rPos, DATA_ASM_SUSC_THK$> = MetricData<1, DATA_ASM_SUSC_THK$>
ASMData<rPos, DATA_ASM_TUBE_CNT$> = MetricData<1, DATA_ASM_TUBE_CNT$>
ASMData<rPos, DATA_ASM_TUBE_THK$> = MetricData<1, DATA_ASM_TUBE_THK$>
ASMData<rPos, DATA_ASM_ARM_CNT$> = MetricData<1, DATA_ASM_ARM_CNT$>
end else
ErrorMessage = Error_Services('GetMessage')
LogData = LoggingDTM : @FM : ErrorMessage
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end
Next reactor
Set_Property(ASMDataTable, "OLE.LIST", ASMData)
//Get HTR Data, display to HTR data table
for each Reactor in HTRList using @FM setting rPos
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
if Error_Services('NoError') then
HTRData<rPos, DATA_HTR_REACT_ID$> = MetricData <1, DATA_HTR_REACT_ID$>
HTRData<rPos, DATA_HTR_SUSC_CNT$> = MetricData<1, DATA_HTR_SUSC_CNT$>
HTRData<rPos, DATA_HTR_SUSC_THK$> = MetricData<1, DATA_HTR_SUSC_THK$>
HTRData<rPos, DATA_HTR_TUBE_CNT$> = MetricData<1, DATA_HTR_TUBE_CNT$>
HTRData<rPos, DATA_HTR_TUBE_THK$> = MetricData<1, DATA_HTR_TUBE_THK$>
HTRData<rPos, DATA_HTR_ARM_CNT$> = MetricData<1, DATA_HTR_ARM_CNT$>
end else
ErrorMessage = Error_Services('GetMessage')
LogData = LoggingDTM : @FM : ErrorMessage
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end
Next reactor
Set_Property(HTRDataTable, "OLE.LIST", HTRData)
//Get EPP Data, display to EPP data table
for each Reactor in EPPList using @FM setting rPos
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
if Error_Services('NoError') then
EPPData<rPos, DATA_EPP_REACT_ID$> = MetricData<1, DATA_EPP_REACT_ID$>
EPPData<rPos, DATA_EPP_SUSC_CNT$> = MetricData<1, DATA_EPP_SUSC_CNT$>
EPPData<rPos, DATA_EPP_SUSC_THK$> = MetricData<1, DATA_EPP_SUSC_THK$>
EPPData<rPos, DATA_EPP_BELL_JAR_CNT$> = MetricData<1, DATA_EPP_BELL_JAR_CNT$>
EPPData<rPos, DATA_EPP_BELL_JAR_THK$> = MetricData<1, DATA_EPP_BELL_JAR_THK$>
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_CNT$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_CNT$>
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_THK$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_THK$>
end else
ErrorMessage = Error_Services('GetMessage')
LogData = LoggingDTM : @FM : ErrorMessage
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end
Next reactor
Set_Property(EPPDataTable, "OLE.LIST", EPPData)
return
SetupOLEControls:
//Set Row Headers to invisible
Set_Property(ASMDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
Set_Property(HTRDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
Set_Property(EPPDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
//Set Number of columns for each table
Set_Property(ASMDataTable, "OLE.Dimension", 6);*6 columns for ASM Data Table
Set_Property(HTRDataTable, "OLE.Dimension", 6);*6 columns for HTR Data Table
Set_Property(EPPDataTable, "OLE.Dimension", 7);*7 columns for EPP Data Table
//Set size of columns
ColSizeArray = ''
ColSizeArray<1> = 100
Set_Property(ASMDataTable, "OLE.DataColumn[All]", ColSizeArray)
Set_Property(HTRDataTable, "OLE.DataColumn[All]", ColSizeArray)
Set_Property(EPPDataTable, "OLE.DataColumn[All]", ColSizeArray)
//Set ASM Table Col. Headers
HeaderTitles = 'Reactor#':@VM:'Susc. Wfr. Cnt.':@VM:'Susc. Thk':@VM:'Tube Wfr. Cnt.':@VM:'Tube Wfr. Thk':@VM:'Arm Wfr. Cnt.'
Set_Property(ASMDataTable, "OLE.TitleList", HeaderTitles)
//Set HTR Table Col. Headers
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Tube Run Cnt.':@VM:'Tube Thk':@VM:'Arm Wfr. Cnt.'
Set_Property(HTRDataTable, "OLE.TitleList", HeaderTitles)
//Set EPP Table Col. Headers
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Bell Jar Run Cnt.':@VM:'Bell Jar Thk':@VM:'Lower Quartz Run Cnt.':@VM:'Lower Quartz thk.'
Set_Property(EPPDataTable, "OLE.TitleList", HeaderTitles)
return