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

229 lines
6.8 KiB
Plaintext

COMPILE FUNCTION GAN_STATUS(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5)
#pragma precomp SRP_PreCompiler
/*
Commuter module for GAN_Status dialog window
7/29/2016 - John C. Henry, J.C. Henry & Co., Inc.
*/
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_Appwindow, End_Dialog, Send_Message, Start_Window, Utility, Yield, WinYield
DECLARE SUBROUTINE Send_Event, Post_Event
DECLARE FUNCTION Get_Property, obj_GaN, obj_Gan_Test, Set_Property, GaN_Services, Database_Services
$INSERT APPCOLORS
$INSERT TOOL_CLASS_EQUATES
$INSERT TOOL_WFR_EQUATES
$INSERT POPUP_EQUATES
$INSERT LOGICAL
$INSERT REACT_RUN_EQUATES
EQU COL$STAGE TO 1
EQU COL$RDS_NO TO 2
EQU COL$GAN_RUN_ID TO 3
EQU COL$EPI_PART_NO TO 4
EQU COL$REACT_RUN_PRI TO 5
EQU COL$WAIT_WFR_QTY TO 6
EQU COL$WAIT_HRS TO 7
EQU COL$WAIT_WFR_ID TO 8
EQU COL$TOOL_ID TO 9
EQU COL$RUN_WFR TO 10
EQU COL$RUN_HRS TO 11
EQU COL$RUN_WFR_ID TO 12
ErrTitle = 'Error in Master_Calib_List routine'
ErrorMsg = ''
Result = ''
BEGIN CASE
CASE EntID = @WINDOW
BEGIN CASE
CASE Event = 'CREATE' ; GOSUB Create
CASE Event = 'CLOSE' ; GOSUB Close
CASE Event = 'TIMER' ; GOSUB Refresh
END CASE
CASE EntID = @WINDOW:'.STAT_TABLE' AND Event = 'DBLCLK' ; GOSUB StatDC
CASE 1
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
ErrMsg(ErrorMsg)
END CASE
IF ErrorMsg NE '' THEN
ErrMsg(ErrTitle:@SVM:ErrorMsg)
END
RETURN Result
* * * * * * *
Create:
* * * * * * *
ScreenSize = Get_Property('SYSTEM','SIZE')
DialogSize = Get_Property(@WINDOW,'SIZE')
wScreen = ScreenSize<3>
hScreen = ScreenSize<4>
xDialog = DialogSize<1>
yDialog = DialogSize<2>
wDialog = DialogSize<3>
hDialog = DialogSize<4>
IF hDialog >= hScreen THEN
hDialog = hScreen - 4 ;* Constant is a guess
DialogSize<4> = hDialog ;* Limit height of dialog
END
xoffsetScreen = INT((wScreen - wDialog)/2)
yoffsetScreen = INT((hScreen - hDialog)/2)
DialogSize<1> = xoffsetScreen
DialogSize<2> = yoffsetScreen
Set_Property(@WINDOW,'SIZE',DialogSize)
Set_Property(@WINDOW,'VISIBLE',1)
Set_Property(@WINDOW,'TIMER',10000:@FM:10000) ;* 10 second refresh, 10 second offset
GOSUB Refresh
RETURN
* * * * * * *
Close:
* * * * * * *
End_Dialog(@WINDOW,'')
RETURN
* * * * * * *
Refresh:
* * * * * * *
Set_Property(@Window, "REDRAW", False$)
TopItem = Get_Property(@Window:'.STAT_TABLE', "TOPPOS")
SelPos = Get_Property(@Window:'.STAT_TABLE', "SELPOS")
TableList = Database_Services('ReadDataRow', 'APP_INFO', 'GAN_WIP')
TableList = Delete(TableList,1,0,0)
Set_Property(@WINDOW:'.STAT_TABLE','LIST',TableList)
tlCnt = COUNT(TableList,@FM) + (TableList NE '')
FOR I = 1 TO tlCnt
IF TableList<I,COL$STAGE> NE '' THEN
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',0,I,WHITE$)
END ELSE
IF (TableList<I,COL$WAIT_WFR_ID> NE '') or (TableList<I,COL$WAIT_HRS> NE '') THEN
* Waiting material
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$WAIT_WFR_ID,I,YELLOW$)
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$WAIT_HRS,I,YELLOW$)
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$WAIT_WFR_QTY,I,YELLOW$)
END
IF TableList<I,COL$TOOL_ID> NE '' THEN
* Material on Tool
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$RUN_WFR_ID,I,LS3_GREEN$)
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$RUN_HRS,I,LS3_GREEN$)
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$TOOL_ID,I,LS3_GREEN$)
Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$RUN_WFR,I,LS3_GREEN$)
END
RunPri = TableList<I,COL$REACT_RUN_PRI>
IF RunPri NE '' THEN
BEGIN CASE
CASE RunPri = 'P1' ; Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$REACT_RUN_PRI,I,PR1_RED$)
CASE RunPri = 'P2' ; Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$REACT_RUN_PRI,I,PR2_RED$)
CASE RunPri = 'P3' ; Send_Message(@WINDOW:'.STAT_TABLE','COLOR_BY_POS',COL$REACT_RUN_PRI,I,PR3_RED$)
CASE 1 ; NULL
END CASE
END
END ;* End of check for Stage line
NEXT I
Set_Property(@Window:'.STAT_TABLE', "TOPPOS", TopItem)
Set_Property(@Window:'.STAT_TABLE', "SELPOS", SelPos)
Send_Event(@Window:'.STAT_TABLE', 'POSCHANGED', SelPos<1>, SelPos<2>)
Set_Property(@Window, "REDRAW", True$)
RETURN
* * * * * * *
StatDC:
* * * * * * *
CtrlEntID = @WINDOW:'.STAT_TABLE'
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
CtrlList = Get_Property(CtrlEntID,'LIST')
Begin Case
Case CurrCol EQ COL$STAGE
StageID = CtrlList<CurrRow,COL$STAGE>
LocQ = Gan_Services('GetLocQueueID', StageID)
obj_Appwindow('ViewRelated','LOCATION':@RM:LocQ:@RM:'')
Case CurrCol EQ COL$WAIT_WFR_ID
WfrID = CtrlList<CurrRow,COL$WAIT_WFR_ID>
IF INDEX(WfrID,'*',1) THEN
CONVERT '*' TO '.' IN WfrID
TypeOver = ''
TypeOver<PDISPLAY$> = 'WITH WFR_ID ':QUOTE(WfrID):' BY EVENT_DTM'
void = Popup(@WINDOW,TypeOver,'WO_WFR_AUDIT')
END
Case CurrCol EQ COL$RDS_NO
RDSNo = CtrlList<CurrRow, COL$RDS_NO>
IF RDSNo NE '' then
PSNo = Xlate('REACT_RUN', RDSNo, 'PS_NO', 'X')
TechType = Xlate('PROD_SPEC', PSNo, 'TECH_TYPE', 'X')
Begin Case
Case TechType EQ 'P'
Start_Window('DBW_GAN_RDS_PROD', '', RDSNo)
Case TechType EQ 'E'
Start_Window('REACT_RUN', '', RDSNo)
Case Otherwise$
Start_Window('REACT_RUN', '', RDSNo)
End Case
end
Case CurrCol EQ COL$TOOL_ID
ToolID = CtrlList<CurrRow,COL$TOOL_ID>
obj_Appwindow('ViewRelated','TOOL_WFR':@RM:ToolID:@RM:'')
End Case
Return