--+-------------------------------------------------------------------------------+ --+ SOHO Project -- Control File --+ ---------------------------- --+ --+ Name : MDI_LIP , !Proc_s , !Print --+ Purpose : (See Procedure headers) --+ --+ Sub_system : PLM --+ Drawing No : 3137-ZA042-SCB Issue : A/00 --+ Project No : SH-MAR-SW-70224 --+ Origin : UK --+ Author : Jon B. CARTER --+-------------------------------------------------------------------------------+ --+ Principle : --+ --------- --+ Holding CF for a group of related Procedures, originally written in --+ MDI's own Control File language. --+ --+ Passed parameters : --+ ----------------- --+ !Proc_s : Name of required Procedure. --+ !Print : CF Log print indicator ( "yes" (default) | "no" ). --+ --+ Prerequisites : --+ ------------- --+ - --+ --+ History : --+ ------- --+ Issue SIC Note Time Date Name/Updates --+ +---+ +------+ +---+ +------+ +---------------------------------------------+ --+ 1/00 211 14:03 07/02/94 A.J. TURK -- Conversion from MDI language. --+ 1/02 360 11:04 05/05/94 Ed COBB/Ph. IATRINO -- Rationalization --+ 1/07 443 17:29 17/06/94 Ed COBB/Ph. IATRINO -- Rationalization --+ 1/08 572 11:47 16/03/95 O. MICHEL -- MDI Updates. --+ 1/09 611 16:24 21/06/95 Ph. IATRINO -- New On Board S/W. --+ 1/09 611 19:09 21/06/95 J.B.B. -- MDI Updates. --+ 1/10 618 14:06 29/06/95 Ph. IATRINO -- MDI Updates. --+ 1/11 618 20:09 29/06/95 J.B.B. -- MDI Updates. --+ 1/12 621 14:00 30/06/95 W.J.S. -- MDI Updates. --+-------------------------------------------------------------------------------+ Common Var Bool !GZ_Window -- Open window flag (on CF start) Bool !GZ_Spool -- Automatic Spool (at End of CF exec) Bool !GZ_Halt -- Check Error flag (to halt if error) Bool !GZ_Test -- Execution test flag (to not send TC) Int !GZ_Trace -- Level of Trace (TBD) Int !GM_NbErr -- MDI Global Error Count Int !GM_Conf -- MDI Configuration Str(80) !GM_S0 Str(80) !GM_S7 Str(80) !GM_S8 Int !GM_I0 Int !GM_I1 Int !GM_I9 End Common ----------------------------------------------------------------------------------+ Extern Cfile PLM_BLOCK , MDI_IP , MDI_LDBIP Group MWTM , PWP12TM Procedure AskReal , AskStr , AskInt Procedure CheckAna , CheckDig , CheckReg Procedure CheckArgReal , CheckArgStr , CheckArgInt Procedure DispMess Procedure ExConnect , ExDisconnect Procedure ExitCF Procedure Message Procedure OpenWindow Procedure PrintAna , PrintDig , PrintReg , PrintParam Procedure SendCommand Procedure Lower , Upper Procedure WaitAna , WaitDig , WaitReg , WaitTime End Extern ----------------------------------------------------------------------------------+ Program MDI_LIP , Unique Defarg Str(80) !Proc_s Str(3) !Print = "yes" End Defarg Var Str( 3) !ExpName = "MDI" Str(49) !Title = " " Str(80) !S = &80s(" ") Int !NbErr = 0 Main @OpenWindow() Select !Proc_s Case "lipcnfg" @lipcnfg() Case "liplbic3" @liplbic3() Case "liplbic4" @liplbic4() Case "liplbic5" @liplbic5() Case "liplbic5n" @liplbic5n() Case "lipoff" @lipoff() Case "lipona" @lipona() Case "liponb" @liponb() Case "lipreset" @lipreset() Case "liptlm2" @liptlm2() Default !Title = "*ERROR: UNKNOWN PROCEDURE: "+!Proc_s @Message("DCL" , "date" , !ExpName , " " , !Title , *!S) -- Beep Halt !Title = "*Operator CONTinue" @Message("DC" , "date" , !ExpName , " " , !Title , *!S) Return !Rstat End Select @ExitCF (!NbErr) @PrintCF (!ExpName , !Print ) Return !Rstat End Program ----------------------------------------------------------------------------------+ Procedure lipcnfg () --. --. This procedure configures the Image Processor. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Str(80) !Question= " " Str(80) !Check = " " Int !NbErr = 0 Str(10) !Time = " " Int !LM_I0 = 0 Int !LM_I1 = 0 Int !LM_I2 = 0 Int !LM_I3 = 0 Main !Title = "-EXECUTING PROCEDURE: lipcnfg." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) -- select IP built-in code to load !Title = "~OPERATOR NOTE:-" @Message("DC" , "time" , !ExpName , " " , !Title , *!S) !Title = "'0' represents 'pack4x4b'" @Message("DC" , "time" , !ExpName , " " , !Title , *!S) !Title = "'3' represents 'extr1024'" @Message("DC" , "time" , !ExpName , " " , !Title , *!S) !Title = "'4' represents 'extr256a'" @Message("DC" , "time" , !ExpName , " " , !Title , *!S) !Title = "'5' represents 'pack4x4c'" @Message("DC" , "time" , !ExpName , " " , !Title , *!S) !Title = "'6' represents 'flttstld'" @Message("DC" , "time" , !ExpName , " " , !Title , *!S) !Question = "Which IP program?" !Check = ">=3 and <=6" @AskInt ( !Question , !Check , *!LM_I3 , *!S , *!NbErr ) If !LM_I3 > 6 Then !Title = "*ERROR : Invalid number selected" @Message( "DC" , "time" , !ExpName , !Phase , !Title , *!S ) Halt !Title = "*Operator CONTinue " @Message( "DC" , "time" , !ExpName , !Phase , !Title , *!S ) End If Select !LM_I3 Case 3 @liplbic3() Case 4 @liplbic4() Case 5 @liplbic5() Case 6 PERFORM/NO MDI_IP , "ipwload" , "no" @WaitTime ( "00h00m15s" , *!S ) !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) @WaitTime ( "00h00m10s" , *!S ) Default End Select !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: lipcnfg." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure lipoff () --. --. This procedure powers down the Image Processor. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Int !NbErr = 0 Str(80) !LM_S1 = "" Main !Title = "-EXECUTING PROCEDURE: lipoff." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) !Title = "~Switching off IP" @Message( "DC" , "time" , !ExpName , !Phase , !Title , *!S ) Inhibit "MSPWIPN" Inhibit "MSPWIPR" Inhibit "MKPWIP" @SendCommand ( "MBPWIPOF" , "" ) @WaitTime ( "00h00m45s" , *!S ) Expect "MSPWIPN" , "ON" , 1 Expect "MSPWIPR" , "ON" , 1 Expect "MKPWIP" , "ON" , 1 Enable "MSPWIPN" Enable "MSPWIPR" Enable "MKPWIP" Select !GM_Conf Case 1 @PrintAna ( "MIPWA" , "Nominal Side Current" ) Case 2 @PrintAna ( "MIPWB" , "Redundant Side Current" ) Default End Select !LM_S1 = Get( "MKPWIP" ) If !LM_S1 <> "OFF" Then !Title = "*Image Processor is NOT OFF" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) Halt !Title = "*Operator CONTinue" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) End If @CheckDig( "MSPWIPN" , "= OFF" , *!NbErr ) @CheckDig( "MSPWIPR" , "= OFF" , *!NbErr ) @CheckDig( "MKPWIP" , "= OFF" , *!NbErr ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: lipoff." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure lipona () --. --. This procedure powers ON the Image Processor (PRI). --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Int !NbErr = 0 Str(80) !LM_S1 = "" Main !Title = "-EXECUTING PROCEDURE: lipona." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) !Title = "~Switching on IP : " @Message( "DC" , "time" , !ExpName , !Phase , !Title , *!S ) @SendCommand ( "MBPWIPON" , "" ) @WaitTime ( "00h00m10s" , *!S ) @lipreset() @WaitTime ( "00h00m45s" , *!S ) Expect "MSPWIPN" , "ON" , 1 Expect "MSPWIPR" , "ON" , 1 Expect "MKPWIP" , "ON" , 1 Enable "MSPWIPN" Enable "MSPWIPR" Enable "MKPWIP" Select !GM_Conf Case 1 @PrintAna ( "MIPWA" , "Nominal Side Current" ) Case 2 @PrintAna ( "MIPWB" , "Redundant Side Current" ) Default End Select !LM_S1 = Get( "MKPWIP" ) If !LM_S1 <> "ON" Then !Title = "*Image Processor is NOT ON" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) Halt !Title = "*Operator CONTinue" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) End If @CheckDig( "MSPWIPN" , "= ON" , *!NbErr ) @CheckDig( "MSPWIPR" , "= ON" , *!NbErr ) @CheckDig( "MKPWIP" , "= ON" , *!NbErr ) !Title = "~Load IP built-in Code" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) PERFORM/NO MDI_IP , "ipwload" , "no" @WaitTime ( "00h00m15s" , *!S ) !Title = "~Load Basic IP Programs" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) PERFORM/NO MDI_LDBIP , "ldbip" , "no" @WaitTime ( "00h00m30s" , *!S ) !Title = "~Set 4x4 Summed Image Program as default" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @liplbic4 () @WaitTime ( "00h00m30s" , *!S ) @varcmd ("MBIPLDIN", "0x0140, 33, 0") @varcmd ("MBIPLDIN", "0x0140, 61, 0") @SendCommand ( "MBSQREG", "5, 1") !Title = "~Initialize Page 16 as Table Memory" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @varcmd ("MBIPLDIN", "0x0116, 0x8000, 0x0080") @WaitTime ( "00h00m05s" , *!S ) !Title = "~Initialize Page 17 as List Memory" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @varcmd ("MBIPLDIN", "0x0118, 0x8800, 0x0088") @WaitTime ( "00h00m05s" , *!S ) !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: lipona." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure liponb () --. --. This procedure powers ON the Image Processor (RED). --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Int !NbErr = 0 Main !Title = "-EXECUTING PROCEDURE: liponb." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) @lipona() @liptlm2() !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: liponb." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure lipreset () --. --. This procedure resets the Image Processor. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Int !NbErr = 0 Main !Title = "-EXECUTING PROCEDURE: lipreset." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) !Title = "~Performing IP reset" @Message( "DC" , "time" , !ExpName , !Phase , !Title , *!S ) @SendCommand ( "MBIPRSAL" , "" ) @WaitTime ( "00h00m05s" , *!S ) @SendCommand ( "MBIPRUN" , "" ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: lipreset." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure liptlm2 () --. --. This procedure modifies the Image Processor writeable control --. store to use the high rate telemetry board #2 instead of high --. rate telemetry board #1. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Int !Cmd_data_i( 30 ) Int !NbErr = 0 Main !Title = "-EXECUTING PROCEDURE: liptlm2." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) !Title = "~SET IP to use Redundant Telemetry" @Message( "DC" , "time" , !ExpName , !Phase , !Title , *!S ) @WaitTime ( "00h00m15s" , *!S ) @varcmd ("MBIPLDIN", "0x0140, 33, 1") !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: liptlm2." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure liplbic3 () --. --. This procedure configures the Image Processor for 1024*1024 extract. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Str(80) !Question = " " Str(80) !Check = " " Int !NbErr = 0 Str(10) !Time = " " Main !Title = "-EXECUTING PROCEDURE: liplbic3." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) -- select IP program 3, extr1024 built-in code to load !Title = "~Setting IP program to '3' for 'extr1024'" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) @SendCommand ( "MBIPLBIC" , " 3 , 3 " ) @WaitTime ( "00h00m16s", *!S ) @varcmd ( "MBIPLDIN" , "0x154") @varcmd ( "MBIPCMD" , "0x91,0,0x1F00") @varcmd ( "MBIPLDIN" , "0x136") --- @SendCommand ( "MBPWIPON" , "" ) If !GM_Conf = 2 Then @liptlm2() End If @WaitTime ( "00h00m15s" , *!S ) !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) @WaitTime ( "00h00m10s" , *!S ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: liplbic3." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure liplbic4 () --. --. This procedure configures the Image Processor for 256*256 extract. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Str(80) !Question = " " Str(80) !Check = " " Int !NbErr = 0 Str(10) !Time = " " Main !Title = "-EXECUTING PROCEDURE: liplbic4." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) -- select IP program 4, extr256a built-in code to load !Title = "~Setting IP program to '4' for 'extr256a'" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) @SendCommand ( "MBIPLBIC" , " 4 , 4 " ) @WaitTime ( "00h00m16s" , *!S ) @varcmd ( "MBIPLDIN" , "0x154") @varcmd ( "MBIPCMD" , "0x91,0,0x1F00") @varcmd ( "MBIPLDIN" , "0x136") --- @SendCommand ( "MBPWIPON" , "" ) If !GM_Conf = 2 Then @liptlm2() End If @WaitTime ( "00h00m15s" , *!S ) !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) @WaitTime ( "00h00m10s" , *!S ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: liplbic4." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure liplbic5 () --. --. This procedure configures the Image Processor for 4*4 extract. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Str(80) !Question = " " Str(80) !Check = " " Int !NbErr = 0 Str(10) !Time = " " Main !Title = "-EXECUTING PROCEDURE: liplbic5." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) -- select IP program 3, extr1024 built-in code to load !Title = "~Setting IP program to '5' for 'pack4*4c'" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) @SendCommand ( "MBIPLBIC" , " 5 , 5 " ) @WaitTime ( "00h00m16s" , *!S ) @varcmd ( "MBIPLDIN" , "0x154") @varcmd ( "MBIPCMD" , "0x91,0,0x1F00") @varcmd ( "MBIPLDIN" , "0x136") --- @SendCommand ( "MBPWIPON" , "" ) If !GM_Conf = 2 Then @liptlm2() End If @WaitTime ( "00h00m15s" , *!S ) !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) @WaitTime ( "00h00m10s" , *!S ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: liplbic5." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure ----------------------------------------------------------------------------------+ Procedure liplbic5n () --. --. This procedure configures the Image Processor for 4*4 extract. --. Var Str( 3) !ExpName = "MDI" Str(10) !Phase = " " Str(49) !Title = " " Str(80) !S = &80s(" ") Str(80) !Question = " " Str(80) !Check = " " Int !NbErr = 0 Str(10) !Time = " " Main !Title = "-EXECUTING PROCEDURE: liplbic5n." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) -- select IP program 3, extr1024 built-in code to load !Title = "~Setting IP program to '5' for 'pack4*4c'" @Message( "DC" , "time" , !ExpName , " " , !Title , *!S ) @SendCommand ( "MBIPLBIC" , " 5 , 5 " ) @varcmd ("MBIPLDIN", "0x0140, 33, 0") @varcmd ("MBIPLDIN", "0x0140, 61, 0") @varcmd ("MBIPLDIN", "0x0140, 5, 1") @SendCommand ( "MBSQREG", "5, 1") If !GM_Conf = 2 Then @liptlm2() End If @varcmd ( "MBIPLDIN" , "0x154") @varcmd ( "MBIPCMD" , "0x91,0,0x1F00") @varcmd ( "MBIPLDIN" , "0x136") @WaitTime ( "00h00m15s" , *!S ) !Title = "~Set Initial Camera Header" @Message ("DC", "time", !ExpName, !Phase, !Title, *!S) @SendCommand ( "MBCMHDR1" , "0X4040 , 0X4040 , 0 , 1 , 0" ) @WaitTime ( "00h00m10s" , *!S ) !GM_NbErr = !GM_NbErr + !NbErr !Title = "-FINISHED PROCEDURE: liplbic5." @Message ("DCL", "date", !ExpName, !Phase, !Title, *!S) Return End Procedure----------------------------------------------------------------------------------+ Procedure PrintCF( str(3) !ExpName, str(8) !Print) --. Print the control file log file if required by !Print ; --. - using the 'Spool' statement if the variable !GZ_Spool is TRUE, --. - using the dialog box window if the variable !GZ_Spool is FALSE. --. Var str(80) !S = &80s(" ") Main If !Print = "yes" Then If !GZ_Spool = TRUE Then Spool CF Else Cflog @Message ("DC", "date", !ExpName, " ", \ "++++Print the CFLog, then type CONT+++", *!S) Halt @Message ("DC", "date", !ExpName, " ", \ "+Operator continue.", *!S) End If End If Return End Procedure ----------------------------------------------------------------------------------+ Procedure varcmd( Str(10) !Cmd_name , Str(80) !Cmd_data ) Var Str(1) !Expt_s Int !Code_i Int !Cmd_data_i(30) Int !No_of_cmds_i Int !Data_len_i Str(10) !Data_item_s Int !Commas_i Int !Count Int !Char_pos Str(1) !Char Str(49) !Title = " " Str(80) !Cmd_data_s Str(80) !S = &80s("") Main !Expt_s = Extract( !Cmd_name , 1 , 1 ) If !Expt_s <> "M" Then !Title = "*ERROR: Non-MDI Command " + !Cmd_name @Message( "DC", "time", "MDI", " ", !Title , *!S) Halt !Title = "+Operator CONTinue " @Message( "DC", "time", "MDI", " ", !Title , *!S) Return End If Select !Cmd_name Case "MBIPCMD" !Code_i = 0x0E !No_of_cmds_i = 0 Case "MBIPTBL" !Code_i = 0x0F !No_of_cmds_i = 0 Case "MBIPMACL" !Code_i = 0x11 !No_of_cmds_i = 0 Case "MBIPLDIN" !Code_i = 0x12 !No_of_cmds_i = 1 !Cmd_data_i(0) = 4 Case "MBDPML" !Code_i = 0x0A !No_of_cmds_i = 0 Case "MBDPCONF" !Code_i = 0x1D !No_of_cmds_i = 0 Default !Title = "*ERROR: Unrecognised Command " + !Cmd_name @Message( "DC", "time", "MDI", " ", !Title , *!S) Halt !Title = "+Operator CONTinue " @Message( "DC", "time", "MDI", " ", !Title , *!S) Return End Select !Cmd_data_s = !Cmd_data + "," !Data_len_i = Len( !Cmd_data_s ) !Commas_i = 0 For !Char_pos = 1 to !Data_len_i !Char = Extract( !Cmd_data_s , !Char_pos , 1 ) If !Char = "," Then !Commas_i = !Commas_i + 1 End If End For For !Count = 1 To !Commas_i !Data_item_s = Splitstr( !Cmd_data_s , "," , !Count ) !Cmd_data_i( !No_of_cmds_i ) = Int( Val( !Data_item_s ) ) !No_of_cmds_i = !No_of_cmds_i + 1 End For PERFORM/NO PLM_BLOCK , "MDI" , !Code_i , !Cmd_data_i() , !No_of_cmds_i @WaitTime ( "00h00m02s" , *!S ) Return End Procedure -------------------------------------------------------------------------------+