753 lines
19 KiB
Plaintext
753 lines
19 KiB
Plaintext
&ACCESS R6
|
|
&COMMENT Message library
|
|
DEF MsgLib ( )
|
|
;**************************************************
|
|
;Creation Date: 7.12.2007
|
|
;Change: 23.06.2012 additional properties possible
|
|
; for logging and advance stop control
|
|
;**************************************************
|
|
;FOLD Interfaces and message examples within this fold
|
|
;----------Global subroutines and functions: -------
|
|
|
|
;MsgNotify(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
;MsgNotifyTextPar(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, sTextPar2[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
;MsgQuit(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
;MsgState(nHandle:OUT, sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
;MsgLoop(sText[]:IN,sModul[]:IN)
|
|
;MsgDialog(nAnswer:OUT,sText[]:IN,sModul[]:IN,sTextPar[]:IN,sDialogSK1[]:IN,sDialogSK2[]:IN,sDialogSK3[]:IN,sDialogSK4[]:IN,sDialogSK5[]:IN,sDialogSK6[]:IN,sDialogSK7[]:IN,NoBrakes:IN, nMsgNr:IN,MsgOpt:IN)
|
|
|
|
;----------Explainations for parameters: -----------
|
|
|
|
;CHAR sText[] message text or message DB-key (80 chars)
|
|
;CHAR sModul[] (option) modulname or key (24 char)
|
|
;INT nNumPar (option)numeric value inserted in sText[] at the position %1
|
|
;CHAR sTextPar[] (option)text or message DB-key inserted in sText[] at the position %1 (26 char)
|
|
;MsgOpt (option) Structure KrlMsgOpt_T BOOL VL_Stop,Clear_P_Reset,Log_To_DB
|
|
; (option) VL_Stop=TRUE => Creates an advance stop | FALSE avoids this behavior
|
|
; (option) Clear_P_Reset=TRUE (Default) deletes Messages at program reset / cancelled
|
|
; (option) Log_To_DB=TRUE => entry into logbook => enfluence to system performance
|
|
|
|
;----------Examples: -------------------------------
|
|
|
|
;MsgNotifyTextPar("Error", "CrossMeld", 0, "Error message 1", "Error message 2", 511)
|
|
;MsgNotify("this is a notify message")
|
|
;MsgQuit("this is a quit message", "myMod")
|
|
;MsgQuit("this is a quit message", "myMod",,,12345)
|
|
;INT myInt=123
|
|
;MsgQuit("this is the %1 quit message", "Module", myInt)
|
|
;MsgNotify("this is a %1 notify message", "Tech", , "asd")
|
|
;MsgLoop("this is the loop message")
|
|
;MsgLoop(" "); cancels loop message
|
|
;MsgDialog(DialogAnswer, "DBKEY" OR "dialog message", "Module", "TextPar for %1 in DBKey", "DialogKey1", "DialogKey2", "DialogKey3",,,,,,12345)
|
|
;MsgDialog(DialogAnswer, "StartPTP", "CrossMeld", "Achse 3", "YES", "NO", "Cancel")
|
|
;MsgNotifyTextPar("DBKEY" OR "notify message", "Module", 0 OR >0, "TextPar for %1", "TextPar for %2")
|
|
;nNumPar = 0: TextPar will be send as %1 %2 nNumPar > 0: nNumPar will be send as %1
|
|
;ENDFOLD
|
|
END
|
|
;***************************
|
|
;Execution of notify message
|
|
;***************************
|
|
GLOBAL DEF MsgNotify(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
DECL CHAR sText[], sModul[], sTextPar[]
|
|
DECL KrlMsg_T Msg
|
|
DECL KrlMsgParType_T MsgParType
|
|
DECL KrlMsgPar_T MsgPar[3]
|
|
DECL KrlMsgOpt_T MsgOpt ;Bool-elements: VL_Stop,Clear_P_Reset,Log_To_DB
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
DECL State_T State
|
|
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
|
|
|
|
;Default Values: MsgOpt={ VL_Stop TRUE, Clear_P_Reset TRUE, Log_To_DB False }
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt=MsgOpt
|
|
|
|
IF ($ERR.Number<>0) THEN
|
|
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
MsgOpt.Clear_P_Reset=TRUE
|
|
MsgOpt.Log_To_DB=FALSE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
;Creates default values in case of none availability
|
|
MsgOpt=CheckOfMsgOpt(MsgOpt)
|
|
|
|
Msg.Nr=1
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
Msg.Nr=nMsgNr
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Msg_txt[count]=sText[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Msg_txt[]="parameter sText[] is missing"
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Modul[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Modul[]="Appl"
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
offset=nNumPar
|
|
IF $ERR.Number==0 THEN
|
|
offset=0
|
|
MsgPar[1].Par_Txt[]=" "
|
|
SWRITE(MsgPar[1].Par_Txt[], State, Offset, "%d", nNumPar)
|
|
MsgPar[1].Par_type=#Value
|
|
ELSE
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sTextPar[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[1].Par_Txt[count]=sTextPar[count]
|
|
ENDFOR
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
ENDIF
|
|
|
|
nHandle=Set_KrlMsg (#NOTIFY, Msg, MsgPar[], MsgOpt)
|
|
|
|
END ;(MsgNotify)
|
|
;*****************************
|
|
;Execution of the quit message
|
|
;*****************************
|
|
GLOBAL DEF MsgQuit(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
DECL CHAR sText[], sModul[], sTextPar[]
|
|
DECL KrlMsg_T Msg
|
|
DECL KrlMsgParType_T MsgParType
|
|
DECL KrlMsgPar_T MsgPar[3]
|
|
DECL KrlMsgOpt_T MsgOpt
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
DECL State_T State
|
|
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt=MsgOpt
|
|
|
|
IF ($ERR.Number<>0) THEN
|
|
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
MsgOpt.Clear_P_Reset=TRUE
|
|
MsgOpt.Log_To_DB=FALSE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
;Creates default values in case of none availability
|
|
MsgOpt=CheckOfMsgOpt(MsgOpt)
|
|
|
|
Msg.Nr=1
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
Msg.Nr=nMsgNr
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Msg_txt[count]=sText[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Msg_txt[]="parameter sText[] is missing"
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Modul[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Modul[]="Appl"
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
offset=nNumPar
|
|
IF $ERR.Number==0 THEN
|
|
offset=0
|
|
MsgPar[1].Par_Txt[]=" "
|
|
SWRITE(MsgPar[1].Par_Txt[], State, offset, "%d", nNumPar)
|
|
MsgPar[1].Par_type=#Value
|
|
ELSE
|
|
ERR_CLEAR($ERR)
|
|
len=STRLEN(sTextPar[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[1].Par_Txt[count]=sTextPar[count]
|
|
ENDFOR
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
ENDIF
|
|
|
|
nHandle=Set_KrlMsg (#QUIT, Msg, MsgPar[], MsgOpt)
|
|
|
|
WHILE ( Exists_KrlMsg(nHandle) )
|
|
WAIT sec 0.1
|
|
ENDWHILE
|
|
|
|
END ;(MsgQuit)
|
|
;******************************
|
|
;Execution of the state message
|
|
;******************************
|
|
GLOBAL DEF MsgState(nHandle:OUT, sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
DECL CHAR sText[], sModul[], sTextPar[]
|
|
DECL KrlMsg_T Msg
|
|
DECL KrlMsgParType_T MsgParType
|
|
DECL KrlMsgPar_T MsgPar[3]
|
|
DECL KrlMsgOpt_T MsgOpt
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
DECL State_T State
|
|
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt=MsgOpt
|
|
|
|
IF ($ERR.Number<>0) THEN
|
|
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
MsgOpt.Clear_P_Reset=TRUE
|
|
MsgOpt.Log_To_DB=FALSE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
;Creates default values in case of none availability
|
|
MsgOpt=CheckOfMsgOpt(MsgOpt)
|
|
|
|
Msg.Nr=1
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
Msg.Nr=nMsgNr
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Msg_txt[count]=sText[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Msg_txt[]="parameter sText[] is missing"
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Modul[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Modul[]="Appl"
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
offset=nNumPar
|
|
IF $ERR.Number==0 THEN
|
|
offset=0
|
|
MsgPar[1].Par_Txt[]=" "
|
|
SWRITE(MsgPar[1].Par_Txt[], State, offset, "%d", nNumPar)
|
|
MsgPar[1].Par_type=#Value
|
|
ELSE
|
|
ERR_CLEAR($ERR)
|
|
len=STRLEN(sTextPar[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[1].Par_Txt[count]=sTextPar[count]
|
|
ENDFOR
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
ENDIF
|
|
|
|
nHandle=Set_KrlMsg (#STATE, Msg, MsgPar[], MsgOpt)
|
|
|
|
END ;(MsgState)
|
|
;***************************
|
|
;Execution of loop message
|
|
;***************************
|
|
GLOBAL DEF MsgLoop(sText[]:IN,sModul[]:IN)
|
|
DECL CHAR sText[], sModul[]
|
|
DECL CHAR sMsg[80]
|
|
DECL CHAR sMod[24]
|
|
DECL INT count,len
|
|
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
sMsg[count]=sText[count]
|
|
ENDFOR
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
sMod[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
sMod[]="Appl"
|
|
ENDIF
|
|
IF (STRLEN(sMsg[])>0) THEN
|
|
IF lnHandle>0 THEN
|
|
WAIT FoR Clear_KrlMsg (lnHandle) OR TRUE
|
|
lnHandle=0
|
|
ENDIF
|
|
FOR count=1 TO STRLEN(sMsg[])
|
|
IF sMsg[count]<>" " THEN
|
|
MsgState(lnHandle, sMsg[], sMod[])
|
|
EXIT
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
END ;(MsgLoop)
|
|
;*************************************************
|
|
;Execution of dialog message
|
|
;parameter NoBrakes: Robot leaves brakes open
|
|
;*************************************************
|
|
GLOBAL DEF MsgDialog(nAnswer:OUT,sText[]:IN,sModul[]:IN,sTextPar[]:IN,sDialogSK1[]:IN,sDialogSK2[]:IN,sDialogSK3[]:IN,sDialogSK4[]:IN,sDialogSK5[]:IN,sDialogSK6[]:IN,sDialogSK7[]:IN,NoBrakes:IN, nMsgNr:IN,MsgOpt:IN)
|
|
DECL KrlMsg_T Msg
|
|
DECL KrlMsgPar_T MsgPar[3]
|
|
DECL KrlMsgOpt_T MsgOpt
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
DECL KrlMsgDlgSK_T Msg_SOFTKEY[7]
|
|
DECL INT count, len, nHandle, nAnswer, nMsgNr
|
|
DECL BOOL NoBrakes
|
|
DECL CHAR sText[], sModul[], sTextPar[], sDialogSK1[], sDialogSK2[], sDialogSK3[], sDialogSK4[], sDialogSK5[], sDialogSK6[], sDialogSK7[]
|
|
DECL CHAR sMsg[80]
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt=MsgOpt
|
|
|
|
IF ($ERR.Number<>0) THEN
|
|
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
MsgOpt.Clear_P_Reset=TRUE
|
|
MsgOpt.Log_To_DB=FALSE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
;Creates default values in case of none availability
|
|
MsgOpt=CheckOfMsgOpt(MsgOpt)
|
|
|
|
Msg.Nr=1
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
Msg.Nr=nMsgNr
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Msg_txt[count]=sText[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Msg_txt[]="parameter sText[] is missing"
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Modul[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Modul[]="Appl"
|
|
ENDIF
|
|
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK1[])
|
|
IF $ERR.Number==0 THEN
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[7].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[7].Sk_txt[count] = sDialogSK1[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[7].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK2[])
|
|
IF $ERR.Number==0 THEN
|
|
len=STRLEN(sDialogSK2[])
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[6].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[6].Sk_txt[count] = sDialogSK2[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[6].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK3[])
|
|
IF $ERR.Number==0 THEN
|
|
len=STRLEN(sDialogSK3[])
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[5].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[5].Sk_txt[count] = sDialogSK3[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[5].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK4[])
|
|
IF $ERR.Number==0 THEN
|
|
len=STRLEN(sDialogSK4[])
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[4].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[4].Sk_txt[count] = sDialogSK4[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[4].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK5[])
|
|
IF $ERR.Number==0 THEN
|
|
len=STRLEN(sDialogSK5[])
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[3].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[3].Sk_txt[count] = sDialogSK5[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[3].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK6[])
|
|
IF $ERR.Number==0 THEN
|
|
len=STRLEN(sDialogSK6[])
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[2].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[2].Sk_txt[count] = sDialogSK6[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[2].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
len=STRLEN(sDialogSK7[])
|
|
IF $ERR.Number==0 THEN
|
|
len=STRLEN(sDialogSK7[])
|
|
IF len > 0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
Msg_SOFTKEY[1].Sk_Type = #KEY
|
|
FOR count=1 TO len
|
|
Msg_SOFTKEY[1].Sk_txt[count] = sDialogSK7[count]
|
|
ENDFOR
|
|
ENDIF
|
|
ELSE
|
|
FOR count=1 TO 24
|
|
Msg_SOFTKEY[1].Sk_txt[count] = " "
|
|
ENDFOR
|
|
ENDIF
|
|
len=STRLEN(sTextPar[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[1].Par_Txt[count]=sTextPar[count]
|
|
ENDFOR
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
|
|
nHandle=SET_KRLDLG(Msg, MsgPar[], Msg_SOFTKEY[], MsgOpt)
|
|
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
NoBrakes=NoBrakes
|
|
IF NOT($ERR.Number==0) THEN
|
|
NoBrakes=FALSE
|
|
ENDIF
|
|
IF (nHandle > 0) THEN
|
|
WHILE (Exists_KrlDlg(nHandle, nAnswer))
|
|
WAIT SEC 0.5
|
|
IF NoBrakes THEN
|
|
PTP $AXIS_ACT
|
|
ENDIF
|
|
ENDWHILE
|
|
ENDIF
|
|
END ;(MsgDialog)
|
|
;*************************************************
|
|
;Execution of notify message with text parameter
|
|
;*************************************************
|
|
GLOBAL DEF MsgNotifyTextPar(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, sTextPar2[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
DECL CHAR sText[], sModul[], sTextPar[], sTextPar2[]
|
|
DECL KrlMsg_T Msg
|
|
DECL EKrlMsgType MsgType
|
|
DECL KrlMsgParType_T MsgParType
|
|
DECL KrlMsgPar_T MsgPar[3]
|
|
DECL KrlMsgOpt_T MsgOpt
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
DECL State_T State
|
|
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt=MsgOpt
|
|
|
|
IF ($ERR.Number<>0) THEN
|
|
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
MsgOpt.Clear_P_Reset=TRUE
|
|
MsgOpt.Log_To_DB=FALSE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
;Creates default values in case of none availability
|
|
MsgOpt=CheckOfMsgOpt(MsgOpt)
|
|
|
|
MsgType=#Notify
|
|
Msg.Nr=1
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
Msg.Nr=nMsgNr
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Msg_txt[count]=sText[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Msg_txt[]="parameter sText[] is missing"
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Modul[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Modul[]="Appl"
|
|
ENDIF
|
|
offset=nNumPar
|
|
IF nNumPar==0 THEN
|
|
; 1st Parameter
|
|
len=STRLEN(sTextPar[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[1].Par_Txt[count]=sTextPar[count]
|
|
ENDFOR
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
; 2nd Parameter
|
|
len=STRLEN(sTextPar2[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[2].Par_Txt[count]=sTextPar2[count]
|
|
ENDFOR
|
|
MsgPar[2].Par_type=#Value
|
|
ENDIF
|
|
ELSE
|
|
offset=0
|
|
MsgPar[1].Par_Txt[]=" "
|
|
SWRITE(MsgPar[1].Par_Txt[], State, Offset, "%d", nNumPar)
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
|
|
nHandle=Set_KrlMsg (MsgType, Msg, MsgPar[], MsgOpt)
|
|
|
|
END ;(MsgNotifyTextPar)
|
|
|
|
;*************************************************
|
|
;Execution of quit message with text parameter
|
|
;*************************************************
|
|
GLOBAL DEF MsgQuitTextPar(sText[]:IN, sModul[]:IN, nNumPar:IN, sTextPar[]:IN, sTextPar2[]:IN, nMsgNr:IN,MsgOpt:IN)
|
|
DECL CHAR sText[], sModul[], sTextPar[], sTextPar2[]
|
|
DECL KrlMsg_T Msg
|
|
DECL EKrlMsgType MsgType
|
|
DECL KrlMsgParType_T MsgParType
|
|
DECL KrlMsgPar_T MsgPar[3]
|
|
DECL KrlMsgOpt_T MsgOpt
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
DECL State_T State
|
|
DECL INT count, len, offset, nNumPar, nHandle, nMsgNr
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt=MsgOpt
|
|
|
|
IF ($ERR.Number<>0) THEN
|
|
MsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
MsgOpt.Clear_P_Reset=TRUE
|
|
MsgOpt.Log_To_DB=FALSE
|
|
ERR_CLEAR($ERR)
|
|
ELSE
|
|
ERR_RAISE($ERR)
|
|
ENDIF
|
|
|
|
;Creates default values in case of none availability
|
|
MsgOpt=CheckOfMsgOpt(MsgOpt)
|
|
|
|
MsgType=#QUIT
|
|
Msg.Nr=1
|
|
ERR_CLEAR($ERR)
|
|
ON_ERROR_PROCEED
|
|
Msg.Nr=nMsgNr
|
|
len=STRLEN(sText[])
|
|
IF len>0 THEN
|
|
IF len>80 THEN
|
|
len=80
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Msg_txt[count]=sText[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Msg_txt[]="parameter sText[] is missing"
|
|
ENDIF
|
|
len=STRLEN(sModul[])
|
|
IF len>0 THEN
|
|
IF len>24 THEN
|
|
len=24
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
Msg.Modul[count]=sModul[count]
|
|
ENDFOR
|
|
ELSE
|
|
Msg.Modul[]="Appl"
|
|
ENDIF
|
|
offset=nNumPar
|
|
IF nNumPar==0 THEN
|
|
; 1st Parameter
|
|
len=STRLEN(sTextPar[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[1].Par_Txt[count]=sTextPar[count]
|
|
ENDFOR
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
; 2nd Parameter
|
|
len=STRLEN(sTextPar2[])
|
|
IF len>0 THEN
|
|
IF len>26 THEN
|
|
len=26
|
|
ENDIF
|
|
FOR count=1 TO len
|
|
MsgPar[2].Par_Txt[count]=sTextPar2[count]
|
|
ENDFOR
|
|
MsgPar[2].Par_type=#Value
|
|
ENDIF
|
|
ELSE
|
|
offset=0
|
|
MsgPar[1].Par_Txt[]=" "
|
|
SWRITE(MsgPar[1].Par_Txt[], State, Offset, "%d", nNumPar)
|
|
MsgPar[1].Par_type=#Value
|
|
ENDIF
|
|
|
|
nHandle=Set_KrlMsg (MsgType, Msg, MsgPar[], MsgOpt)
|
|
|
|
END ;(MsgQuitTextPar)
|
|
|
|
;*****************************
|
|
;* Check of missing elements *
|
|
;*****************************
|
|
DEFFCT KrlMsgOpt_T CheckOfMsgOpt(LocalMsgOpt:IN)
|
|
DECL KrlMsgOpt_T LocalMsgOpt ;Bool-elements: VL_Stop,Clear_P_Reset,Log_To_DB
|
|
DECL KrlMsgOpt_T DummyMsgOpt
|
|
|
|
;Default Values: MsgOpt={ VL_Stop TRUE, Clear_P_Reset TRUE, Log_To_DB False }
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt.VL_Stop=LocalMsgOpt.VL_Stop
|
|
IF ($ERR.Number<>0) THEN
|
|
LocalMsgOpt.VL_Stop=TRUE ;DEFAULT setting TRUE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt.Clear_P_Reset=LocalMsgOpt.Clear_P_Reset
|
|
IF ($ERR.Number<>0) THEN
|
|
LocalMsgOpt.Clear_P_Reset=TRUE ;DEFAULT setting TRUE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
ON_ERROR_PROCEED
|
|
DummyMsgOpt.Log_To_DB=LocalMsgOpt.Log_To_DB
|
|
IF ($ERR.Number<>0) THEN
|
|
LocalMsgOpt.Log_To_DB=FALSE ;DEFAULT setting FALSE
|
|
ERR_CLEAR($ERR)
|
|
ENDIF
|
|
|
|
RETURN(LocalMsgOpt)
|
|
|
|
ENDFCT ;(CheckOfMsgOpt) |