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

273 lines
6.8 KiB
Plaintext

COMPILE FUNCTION Comm_Vision_Comm( Instruction, Parm1 )
/*
Commuter Module for Vision Communications Window
J.C. Henry, Inc. - John C. Henry
*/
DECLARE SUBROUTINE Center_Window,StatusLine,Set_Property,End_Dialog, Send_Event, Set_Status, Adios, obj_Vision, obj_Notes, obj_Post_Log
DECLARE SUBROUTINE ErrMsg, Send_Message, obj_Tables, Post_Event, Send_INfo, ShowWindow, obj_Appwindow, Send_Dyn,ErrLog, obj_WO_Mat_Log
DECLARE SUBROUTINE obj_Calib_List
DECLARE FUNCTION Get_Property, Get_Status,Dialog_Box, FindWindow, Utility
$INSERT QUOTE_SIGS_EQU
$INSERT NOTIFICATION_EQU
EQU CRLF$ TO \0D0A\
EQU TRUE$ TO 1
EQU FALSE$ TO 2
$INSERT ENVIRON_CONSTANTS
ErrTitle = 'Error in Comm_Vision_Comm routine'
ErrorMsg = ''
Instructions = 'Create'
Instructions := @FM:'Timer'
Instructions := @FM:'StartStop'
Instructions := @FM:'CommStartStop'
Instructions := @FM:'Close'
RetVal = ''
BEGIN CASE
CASE Instruction = 'Create' ; GOSUB Create
CASE Instruction = 'Timer' ; GOSUB Timer
CASE Instruction = 'StartStop' ; GOSUB StartStop
CASE Instruction = 'VisionStartStop' ; GOSUB VisionStartStop
CASE Instruction = 'Close' ; GOSUB Close
CASE 1
ErrorMsg = 'Unknown Instruction ':QUOTE(Instruction):' passed to routine'
END CASE
IF ErrorMsg NE '' THEN
ErrMsg(ErrTitle:@SVM:ErrorMsg)
END
RETURN RetVal
* * * * * * *
Create:
* * * * * * *
ErrMsg('This is deprecated... Bye')
GOTO Close
obj_Appwindow('Create',@WINDOW)
otParms = 'SYSOBJ':@RM:'VISION_COMM'
obj_Tables('LockRec',otParms) ;* Places lock on fictional record
IF Get_Status(errCode) THEN
ErrorMsg = ErrTitle:@SVM:'Another Vision Communications Server is already running.'
ErrMsg(ErrorMsg)
Post_Event(@WINDOW,'CLOSE')
RETURN
END
Set_Property(@WINDOW,'@LOCKED',1) ;* Set ad-hoc property '@LOCKED' to true
Set_Property(@WINDOW,'TIMER','1000':@FM:'0') ;* Set timer event to 5000 msecs (5 seconds) to check Inbound data from Vision
* Show engine window when running on a runtime JCH
*OpenEngineHandle = FindWindow("AREV":\00\,0)
*ShowWindow(OpenEngineHandle,1)
* No return on create -> automatically starts communications server
RETURN
* * * * * * *
StartStop:
* * * * * * *
StartStop = Get_Property(@WINDOW:'.START_STOP_BUTTON','TEXT')
IF StartStop[1,4] = 'Stop' THEN
* Server is running
Set_Property(@WINDOW:'.START_STOP_BUTTON','TEXT', 'Start Monitor')
Set_Property(@WINDOW:'.CLOSE_BUTTON','ENABLED',1)
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON', 'TEXT', 'Start Vision Communications')
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON','ENABLED',0)
END ELSE
Set_Property(@WINDOW:'.START_STOP_BUTTON','TEXT', 'Stop Monitor')
Set_Property(@WINDOW:'.CLOSE_BUTTON','ENABLED',0)
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT', 'Stop Vision Communications')
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON','ENABLED',1)
END
RETURN
* * * * * * *
VisionStartStop:
* * * * * * *
CommStartStop = Get_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT')
IF CommStartStop[1,4] = 'Stop' THEN
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON', 'TEXT', 'Start Vision Communications')
END ELSE
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON', 'TEXT', 'Stop Vision Communications')
END
RETURN
* * * * * * *
Close:
* * * * * * *
UNLOCK ALL
Set_Property('SYSTEM','IDLEPROC','ADIOS')
RETURN
* * * * * * *
Timer:
* * * * * * *
Set_Status(0)
Set_Property(@WINDOW:'.CURR_TIME','TEXT',OCONV( Time(), 'MTHS' )) ;* Clock on window
LastTime = Get_Property(@WINDOW,'@LAST_TIME')
LastLoginTime = Get_Property(@WINDOW,'@LAST_LOGIN_TIME')
IF Get_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT')[1,' '] = 'Stop' THEN
VisionCommFlag = 1
END ELSE
VisionCommFlag = 0
END
IF Get_Property(@WINDOW:'.START_STOP_BUTTON','TEXT')[1,' '] = 'Stop' THEN
* We're in run mode
IF LastTime > Time() THEN
Set_Property(@WINDOW,'@LAST_TIME', Time()) ;* Midnight -> clock resets to 0
Set_Property(@WINDOW,'@LAST_LOGIN_TIME',Time())
LastTime = Time()
LastLoginTime = Time()
*obj_Calib_List('SendReminders') ;* Sends calibration notifications to recepients
END
IF Get_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT')[1,' '] = 'Stop' THEN
VisionCommFlag = 1
END ELSE
VisionCommFlag = 0
END
IF Time() >= (LastLoginTime + 3600) AND VisionCommFlag THEN
* Login to the AS400 so we can access the 'Z:' drive which is a folder used for moving stuff
AS400Login = 'C:\PROGRA~1\IBM\CLIENT~1\CWBLOGON.EXE 10.64.110.100 /U EPIDWNLD /P EPIDWNLD'
Set_Property(@WINDOW,'@LAST_LOGIN_TIME',Time())
Result = Utility('RUNWIN',AS400Login,1)
IF Result<2> = '' THEN
ErrLog('No Logon to the AS400!') ;* This doesn't seem to ever happen - leave it for now
END
END
IF Time() >= (LastTime + 5) THEN
IF VisionCommFlag THEN
Send_Info('Checking Inbound...')
obj_Vision('GetInbound')
IF Get_Status(errCode) THEN
ErrLog(errCode) ;* ErrLog clears status
Recipients = XLATE('NOTIFICATION','ORDER_ENTRY',NOTIFICATION_USER_ID$,'X')
SentFrom = 'Vision Comm Server'
Subject = 'Vision Communications Server Errors'
Message = "Communications Errors logged during 'Get_Inbound' on the Vision Communications Server"
AttachWindow = ''
AttachKey = ''
SendToGroup = ''
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
obj_Notes('Create',Parms)
IF Get_Status(errCode) THEN ErrLog(errCode)
END
*Send_Event(@WINDOW:'.START_STOP_BUTTON','CLICK') ;* One shot - Comment out to run continuous *************************************
* Check 'VISION_COMM' for pending outbound transaction
Send_Info('Checking Outbound...')
obj_Vision('SendOutbound')
IF Get_Status(errCode) THEN
ErrLog(errCode) ;* ErrLog clears status
Recipients = XLATE('NOTIFICATION','ORDER_ENTRY',NOTIFICATION_USER_ID$,'X')
SentFrom = 'Vision Comm Server'
Subject = 'Vision Communications Server Errors'
Message = "Communications Errors logged during 'SendOutbound' on the Vision Communications Server"
AttachWindow = ''
AttachKey = ''
SendToGroup = ''
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
obj_Notes('Create',Parms)
IF Get_Status(errCode) THEN ErrLog(errCode)
END
END ;* End of check for VisionCommFlag = 1
Send_Info('Posting Barcode Scans...')
obj_WO_Mat_Log('Post')
Send_Info('Posting Post Log Transactions...')
obj_Post_Log('Post')
Send_Info('Forwarding eMail...')
obj_Notes('ForwardEMail')
Set_Property(@WINDOW,'@LAST_TIME', Time())
END
END
Send_Info(' ')
RETURN