**************************************************************************************************** ** LNG product : ELISA source **************************************************************************************************** ** Type: Test Sequence ** ** Description This sequence uses service 6 to load SWA ASW software into either ** MRAM. The memory image should be delivered in SREC format ** ** ** Input Arguments: ** $FILNAME -- Name of .txt file to be loaded which contains the list of SREC files. Path is "TEST_EXEC/FFT/SWA/ASW" ** $TCVERIF -- TC verification mode SKIP results in faster load time. ** ** Output Values: None ** ** DAS Version: All ** ** FOPs used (name & version): N/A ** ** TM Packets Used: N/A ** ** Test Spec & Reference: N/A ** ** Restrictions and Limitations: S3 SREC files must be provided. ** ** **************************************************************************************************** ** History **-------------------------------------------------------------------------------------------------- ** Version Date Author Comment **-------------------------------------------------------------------------------------------------- ** 1.1 23/03/2018 J. Silverthorn Initial creation from TINC_METIS_SWLD v1.9 ** 1.13 04/04/2018 J Silverthorn First version used on EM SWA ** 1.14 Increased delay between commands to 0.25s ** 1.15 Increased delay between commands to 0.5s **************************************************************************************************** SEQUENCE TIET_SWA_SWLOAD PROTO string $MEMID ["DPU_MRAM1","DPU_MRAM2"] string $Filename string $TCVERIF := "SKIP" ["SKIP", "AUTO", "ACK"] END PROTO ************************************************************************************************ ** Definition of Variables ************************************************************************************************ VAR date $d_CurDate string $FILE1 string $FILE2 string $s_Trace := "TRACE" string $s_ArgList :="" string $s_NumPhase string $sFilePath := "TEST_EXEC/FFT/SWA/ASW/" string $s_RecordType string $s_Message string $s_Line1 string $s_Term := "NOK" int $i_TcData(226) -- Data table for ZIA58058 command int $i_Address1 int $i_Address2 int $i_No_Bytes int $i int $j int $i_LineNb :=0 int $i_NbCmdSent := 0 int $i_Nb_BytesSent :=0 int $Char_ASCII int $AsciiInt int $i_LastAddress int $i_StartAddress int $i_FirstAddress int $Byte := 0 int $i_byte int $i_csum int $i_csumfile int $LoadedFileCsum := 0 int $i_Est_NoTCs int $No_Records int $i_No_Records := 0 int $i_RptFlowId int $i_RptRefNb int $max_cmd_len := 226 ************************************************************************************************ ** MAIN PROCEDURE ************************************************************************************************ MAIN WINDOW $s_ArgList := arg($s_ArgList, $TCVERIF, "TC verification mode") @SU_SEQSTART($s_ArgList, *$d_CurDate) $FILE1 := $sFilePath+$Filename $i_LineNb := 0 ** For each file : Loop through all lines of the file. @SU_SEQPHASE2(1, "Opening configuration file " + %s($FILE1) + " ", *$s_NumPhase, "", "TITLE") if (EXIST ($FILE1)) OPEN r, $FILE1 else print "File "+ $FILE1 + " does not exist" halt end if do exit if(eof($FILE1)) read $FILE1, *$FILE2 $FILE2 := trim($FILE2) $FILE2 := $sFilePath + $FILE2 @SU_SEQPHASE2(1, "Build and send load TCs based on the content of input file " + %s($FILE2), *$s_NumPhase, "", "TITLE") ta_print "*****************************************" ta_print "Opening SREC file : "+$FILE2 ta_print "*****************************************" if (EXIST ($FILE2)) OPEN r, $FILE2 else ta_print "File "+ $FILE2 + " does not exist" halt end if -- Estimate the number of commands that will be sent $i_LineNb := 0 do exit if( eof($FILE2) ) read $FILE2, *$s_Line1 $i_LineNb := $i_LineNb + 1 end do $i_Est_NoTCs := $i_LineNb * 30 / $max_cmd_len $i_LineNb := 0 close $FILE2 ta_print "Estimated no. of Tc's = "+%d($i_Est_NoTCs) OPEN r, $FILE2 do exit if( eof($FILE2) ) read $FILE2, *$s_Line1 -- Display progression display "Processing line " + %d($i_LineNb) + " of SREC file:" + $FILE2 ** Line format: S3l5aaaaaaaaddddddddddddddddddddddddddddddddcc ** BE CAREFUL: ADDRESS SHOULD BE IN ABSOLUTE IN S315 files !!! ** Only process lines starting "S3", all other lines are ignored. if ( $s_Line1 <>"") $s_RecordType := extract($s_Line1, 1, 2) SWITCH $s_RecordType Case "S3" -- 32 bit address up to 16 bytes of data $i_No_Bytes := (int(val("0x" + extract($s_Line1, 3, 2))) - 4 - 1) ** Number of data bytes in line If ($i_No_Bytes > 250) print "Too much data in line" halt end if $i_Address1 := int(val("0x" + extract($s_Line1, 5, 8))) if ($i_Nb_BytesSent = 0) $i_FirstAddress := $i_Address1 -- start of memory loaded area used for Csum verification at end endif for $i := 0 to 4 ** (5 bytes of count and address) $i_byte := int(val("0x" + extract($s_Line1, 3 + (2*$i), 2))) $i_csum := $i_csum + $i_byte end for if ($i_Address1 = $i_StartAddress + $Byte) -- data is contignous for $i := 0 to ($i_No_Bytes - 1) $i_TcData($Byte) := int(val("0x" + extract($s_Line1, 13 + (2*$i), 2))) $i_csum := $i_csum + $i_TcData($Byte) $Byte := $Byte +1 if ($Byte = $max_cmd_len) -- max. no. bytes per command display "Sending command ZIA58053 no. " + %d($i_NbCmdSent) + " of " +%d($i_Est_NoTCs) @Send_Cmd ($MEMID, *$i_TcData, *$i_StartAddress, *$Byte, $s_Trace, $TCVERIF) $i_TcData := fill(0) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $Byte $i_StartAddress := $i_StartAddress + $Byte $Byte := 0 endif end for $i_LastAddress := $i_Address1 $i_csum := ((($i_csum) ANDB 0xFF) XORB 0xFF) ** 1's complement of last byte $i_csumfile := int(val("0x" + extract($s_Line1, (($i_No_Bytes + 6) * 2 + 1), 2))) if ($i_csumfile <> $i_csum) print "Error in checksum - line " + %d($i_LineNb) halt end if $i_csum := 0 else -- start creating new command if ($Byte > 0) -- send previous command if there is one display "Sending command ZIA58053 no. " + %d($i_NbCmdSent) + " of " +%d($i_Est_NoTCs) @Send_Cmd ($MEMID, *$i_TcData, *$i_StartAddress, *$Byte, $s_Trace, $TCVERIF) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $i_No_Bytes ta_print "Non-Contiguous data block - please confirm before continuing" halt end if $i_TcData := fill(0) $Byte := 0 $i_StartAddress := $i_Address1 for $i := 0 to ($i_No_Bytes - 1) $i_TcData($Byte) := int(val("0x" + extract($s_Line1, 13 + (2*$i), 2))) $i_csum := $i_csum + $i_TcData($Byte) $Byte := $Byte +1 if ($Byte = $max_cmd_len) -- max. no. bytes per command display "Sending command ZIA58053 no. " + %d($i_NbCmdSent) + " of " +%d($i_Est_NoTCs) @Send_Cmd ($MEMID, *$i_TcData, *$i_StartAddress, *$Byte, $s_Trace, $TCVERIF) $i_TcData := fill(0) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $Byte $i_StartAddress := $i_Address1 + $Byte $Byte := 0 endif end for $i_LastAddress := $i_Address1 $i_csum := ($i_csum ANDB 0xFF) XORB 0xFF ** 1's complement of last byte $i_csumfile := int(val("0x" + extract($s_Line1, (($i_No_Bytes + 6) * 2 + 1), 2))) if ($i_csumfile <> $i_csum) ta_print "Error in checksum - line " + %d($i_LineNb) halt end if $LoadedFileCsum := $LoadedFileCsum + $i_csum $i_csum := 0 end if $No_records := $No_Records + 1 Case "S0" -- Header record $i_No_Bytes := (int(val("0x" + extract($s_Line1, 3, 2))) - 3) **Number of ASCII characters for $i := 0 to ($i_No_Bytes - 1) $Char_ASCII := int(val("0x" + extract($s_Line1, 9 + (2*$i), 2))) $s_Message := $s_Message + CHR($Char_ASCII) end for ta_print "Message :- " + $s_Message $s_Message := "" Case "S5" -- Record count if ($Byte > 0) -- send previous command if there is one display "Sending command ZIA58053 no. " + %d($i_NbCmdSent) @Send_Cmd ($MEMID, *$i_TcData, *$i_StartAddress, *$Byte, $s_Trace, $TCVERIF) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $Byte $i_TcData := fill(0) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $Byte $i_StartAddress := $i_Address1 + $Byte $Byte := 0 end if $i_No_Records := (int(val("0x" + extract($s_Line1, 5, 4)))) **Number of ASCII characters if ($i_No_Records = $No_Records) ta_print "S5 record received. No of S3 records in file = "+%d($No_records) else ta_print "S5 record received. Incorrect no of S3 records counted" halt endif Case "S7" -- Header record if ($Byte > 0) -- send previous command if there is one display "Sending command ZIA58053 no. " + %d($i_NbCmdSent) @Send_Cmd ($MEMID, *$i_TcData, *$i_StartAddress, *$Byte, $s_Trace, $TCVERIF) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $Byte $i_TcData := fill(0) $i_NbCmdSent := $i_NbCmdSent + 1 $i_Nb_BytesSent := $i_Nb_BytesSent + $Byte $i_StartAddress := $i_Address1 + $Byte $Byte := 0 end if ta_print "S7 Termination record received" $s_Term := "OK" $i_csum := 1 -- force next checksum test to fail as end of file is reached in case more S3 records seen Default end switch $i_LineNb := $i_LineNb + 1 endif -- $s_Line1 <>"" end do $i_LineNb := 0 close $FILE2 ta_print "Summary :" ta_print "Total no of Tc's = "+ %d($i_NbCmdSent) ta_print "Total no of bytes = "+ %d($i_Nb_BytesSent) ta_print "Overall checksum = "+ %d($LoadedFileCsum) if ($s_Term <> "OK") ta_print "No termination packet seen" halt end if $i_csum := 0 $No_Records := 0 $i_NbCmdSent := 0 $i_Nb_BytesSent := 0 $LoadedFileCsum := 0 $s_Term := "NOK" end do -- reading SREC files @SU_SEQPHASE2(1, "End of config file " + %s($FILE1), *$s_NumPhase, "", "TITLE") END SEQUENCE ****************************************************************** ** Send command ****************************************************************** ROUTINE Send_Cmd Proto string $MEMID int *$i_TcData(226) -- Data table for ZIA58053 command int *$i_Address int *$i_LineLen string $s_Trace string $TCVERIF end proto MAIN @SU_SEND({ AB.TC.ZIA58053 , \ SHF:OBV := 0 , \ SID:OBV := 120 , \ PIA58056_ := $MEMID , \ PIA60330_ := $i_Address , \ PIA60329_:OBV := $i_LineLen , \ PIA60432_1:OBV := $i_TcData(0) , \ PIA60432_2:OBV := $i_TcData(1) , \ PIA60432_3:OBV := $i_TcData(2) , \ PIA60432_4:OBV := $i_TcData(3) , \ PIA60432_5:OBV := $i_TcData(4) , \ PIA60432_6:OBV := $i_TcData(5) , \ PIA60432_7:OBV := $i_TcData(6) , \ PIA60432_8:OBV := $i_TcData(7) , \ PIA60432_9:OBV := $i_TcData(8) , \ PIA60432_10:OBV := $i_TcData(9) , \ PIA60432_11:OBV := $i_TcData(10) , \ PIA60432_12:OBV := $i_TcData(11) , \ PIA60432_13:OBV := $i_TcData(12) , \ PIA60432_14:OBV := $i_TcData(13) , \ PIA60432_15:OBV := $i_TcData(14) , \ PIA60432_16:OBV := $i_TcData(15) , \ PIA60432_17:OBV := $i_TcData(16) , \ PIA60432_18:OBV := $i_TcData(17) , \ PIA60432_19:OBV := $i_TcData(18) , \ PIA60432_20:OBV := $i_TcData(19) , \ PIA60432_21:OBV := $i_TcData(20) , \ PIA60432_22:OBV := $i_TcData(21) , \ PIA60432_23:OBV := $i_TcData(22) , \ PIA60432_24:OBV := $i_TcData(23) , \ PIA60432_25:OBV := $i_TcData(24) , \ PIA60432_26:OBV := $i_TcData(25) , \ PIA60432_27:OBV := $i_TcData(26) , \ PIA60432_28:OBV := $i_TcData(27) , \ PIA60432_29:OBV := $i_TcData(28) , \ PIA60432_30:OBV := $i_TcData(29) , \ PIA60432_31:OBV := $i_TcData(30) , \ PIA60432_32:OBV := $i_TcData(31) , \ PIA60432_33:OBV := $i_TcData(32) , \ PIA60432_34:OBV := $i_TcData(33) , \ PIA60432_35:OBV := $i_TcData(34) , \ PIA60432_36:OBV := $i_TcData(35) , \ PIA60432_37:OBV := $i_TcData(36) , \ PIA60432_38:OBV := $i_TcData(37) , \ PIA60432_39:OBV := $i_TcData(38) , \ PIA60432_40:OBV := $i_TcData(39) , \ PIA60432_41:OBV := $i_TcData(40) , \ PIA60432_42:OBV := $i_TcData(41) , \ PIA60432_43:OBV := $i_TcData(42) , \ PIA60432_44:OBV := $i_TcData(43) , \ PIA60432_45:OBV := $i_TcData(44) , \ PIA60432_46:OBV := $i_TcData(45) , \ PIA60432_47:OBV := $i_TcData(46) , \ PIA60432_48:OBV := $i_TcData(47) , \ PIA60432_49:OBV := $i_TcData(48) , \ PIA60432_50:OBV := $i_TcData(49) , \ PIA60432_51:OBV := $i_TcData(50) , \ PIA60432_52:OBV := $i_TcData(51) , \ PIA60432_53:OBV := $i_TcData(52) , \ PIA60432_54:OBV := $i_TcData(53) , \ PIA60432_55:OBV := $i_TcData(54) , \ PIA60432_56:OBV := $i_TcData(55) , \ PIA60432_57:OBV := $i_TcData(56) , \ PIA60432_58:OBV := $i_TcData(57) , \ PIA60432_59:OBV := $i_TcData(58) , \ PIA60432_60:OBV := $i_TcData(59) , \ PIA60432_61:OBV := $i_TcData(60) , \ PIA60432_62:OBV := $i_TcData(61) , \ PIA60432_63:OBV := $i_TcData(62) , \ PIA60432_64:OBV := $i_TcData(63) , \ PIA60432_65:OBV := $i_TcData(64) , \ PIA60432_66:OBV := $i_TcData(65) , \ PIA60432_67:OBV := $i_TcData(66) , \ PIA60432_68:OBV := $i_TcData(67) , \ PIA60432_69:OBV := $i_TcData(68) , \ PIA60432_70:OBV := $i_TcData(69) , \ PIA60432_71:OBV := $i_TcData(70) , \ PIA60432_72:OBV := $i_TcData(71) , \ PIA60432_73:OBV := $i_TcData(72) , \ PIA60432_74:OBV := $i_TcData(73) , \ PIA60432_75:OBV := $i_TcData(74) , \ PIA60432_76:OBV := $i_TcData(75) , \ PIA60432_77:OBV := $i_TcData(76) , \ PIA60432_78:OBV := $i_TcData(77) , \ PIA60432_79:OBV := $i_TcData(78) , \ PIA60432_80:OBV := $i_TcData(79) , \ PIA60432_81:OBV := $i_TcData(80) , \ PIA60432_82:OBV := $i_TcData(81) , \ PIA60432_83:OBV := $i_TcData(82) , \ PIA60432_84:OBV := $i_TcData(83) , \ PIA60432_85:OBV := $i_TcData(84) , \ PIA60432_86:OBV := $i_TcData(85) , \ PIA60432_87:OBV := $i_TcData(86) , \ PIA60432_88:OBV := $i_TcData(87) , \ PIA60432_89:OBV := $i_TcData(88) , \ PIA60432_90:OBV := $i_TcData(89) , \ PIA60432_91:OBV := $i_TcData(90) , \ PIA60432_92:OBV := $i_TcData(91) , \ PIA60432_93:OBV := $i_TcData(92) , \ PIA60432_94:OBV := $i_TcData(93) , \ PIA60432_95:OBV := $i_TcData(94) , \ PIA60432_96:OBV := $i_TcData(95) , \ PIA60432_97:OBV := $i_TcData(96) , \ PIA60432_98:OBV := $i_TcData(97) , \ PIA60432_99:OBV := $i_TcData(98) , \ PIA60432_100:OBV := $i_TcData(99) , \ PIA60432_101:OBV := $i_TcData(100) , \ PIA60432_102:OBV := $i_TcData(101) , \ PIA60432_103:OBV := $i_TcData(102) , \ PIA60432_104:OBV := $i_TcData(103) , \ PIA60432_105:OBV := $i_TcData(104) , \ PIA60432_106:OBV := $i_TcData(105) , \ PIA60432_107:OBV := $i_TcData(106) , \ PIA60432_108:OBV := $i_TcData(107) , \ PIA60432_109:OBV := $i_TcData(108) , \ PIA60432_110:OBV := $i_TcData(109) , \ PIA60432_111:OBV := $i_TcData(110) , \ PIA60432_112:OBV := $i_TcData(111) , \ PIA60432_113:OBV := $i_TcData(112) , \ PIA60432_114:OBV := $i_TcData(113) , \ PIA60432_115:OBV := $i_TcData(114) , \ PIA60432_116:OBV := $i_TcData(115) , \ PIA60432_117:OBV := $i_TcData(116) , \ PIA60432_118:OBV := $i_TcData(117) , \ PIA60432_119:OBV := $i_TcData(118) , \ PIA60432_120:OBV := $i_TcData(119) , \ PIA60432_121:OBV := $i_TcData(120) , \ PIA60432_122:OBV := $i_TcData(121) , \ PIA60432_123:OBV := $i_TcData(122) , \ PIA60432_124:OBV := $i_TcData(123) , \ PIA60432_125:OBV := $i_TcData(124) , \ PIA60432_126:OBV := $i_TcData(125) , \ PIA60432_127:OBV := $i_TcData(126) , \ PIA60432_128:OBV := $i_TcData(127) , \ PIA60432_129:OBV := $i_TcData(128) , \ PIA60432_130:OBV := $i_TcData(129) , \ PIA60432_131:OBV := $i_TcData(130) , \ PIA60432_132:OBV := $i_TcData(131) , \ PIA60432_133:OBV := $i_TcData(132) , \ PIA60432_134:OBV := $i_TcData(133) , \ PIA60432_135:OBV := $i_TcData(134) , \ PIA60432_136:OBV := $i_TcData(135) , \ PIA60432_137:OBV := $i_TcData(136) , \ PIA60432_138:OBV := $i_TcData(137) , \ PIA60432_139:OBV := $i_TcData(138) , \ PIA60432_140:OBV := $i_TcData(139) , \ PIA60432_141:OBV := $i_TcData(140) , \ PIA60432_142:OBV := $i_TcData(141) , \ PIA60432_143:OBV := $i_TcData(142) , \ PIA60432_144:OBV := $i_TcData(143) , \ PIA60432_145:OBV := $i_TcData(144) , \ PIA60432_146:OBV := $i_TcData(145) , \ PIA60432_147:OBV := $i_TcData(146) , \ PIA60432_148:OBV := $i_TcData(147) , \ PIA60432_149:OBV := $i_TcData(148) , \ PIA60432_150:OBV := $i_TcData(149) , \ PIA60432_151:OBV := $i_TcData(150) , \ PIA60432_152:OBV := $i_TcData(151) , \ PIA60432_153:OBV := $i_TcData(152) , \ PIA60432_154:OBV := $i_TcData(153) , \ PIA60432_155:OBV := $i_TcData(154) , \ PIA60432_156:OBV := $i_TcData(155) , \ PIA60432_157:OBV := $i_TcData(156) , \ PIA60432_158:OBV := $i_TcData(157) , \ PIA60432_159:OBV := $i_TcData(158) , \ PIA60432_160:OBV := $i_TcData(159) , \ PIA60432_161:OBV := $i_TcData(160) , \ PIA60432_162:OBV := $i_TcData(161) , \ PIA60432_163:OBV := $i_TcData(162) , \ PIA60432_164:OBV := $i_TcData(163) , \ PIA60432_165:OBV := $i_TcData(164) , \ PIA60432_166:OBV := $i_TcData(165) , \ PIA60432_167:OBV := $i_TcData(166) , \ PIA60432_168:OBV := $i_TcData(167) , \ PIA60432_169:OBV := $i_TcData(168) , \ PIA60432_170:OBV := $i_TcData(169) , \ PIA60432_171:OBV := $i_TcData(170) , \ PIA60432_172:OBV := $i_TcData(171) , \ PIA60432_173:OBV := $i_TcData(172) , \ PIA60432_174:OBV := $i_TcData(173) , \ PIA60432_175:OBV := $i_TcData(174) , \ PIA60432_176:OBV := $i_TcData(175) , \ PIA60432_177:OBV := $i_TcData(176) , \ PIA60432_178:OBV := $i_TcData(177) , \ PIA60432_179:OBV := $i_TcData(178) , \ PIA60432_180:OBV := $i_TcData(179) , \ PIA60432_181:OBV := $i_TcData(180) , \ PIA60432_182:OBV := $i_TcData(181) , \ PIA60432_183:OBV := $i_TcData(182) , \ PIA60432_184:OBV := $i_TcData(183) , \ PIA60432_185:OBV := $i_TcData(184) , \ PIA60432_186:OBV := $i_TcData(185) , \ PIA60432_187:OBV := $i_TcData(186) , \ PIA60432_188:OBV := $i_TcData(187) , \ PIA60432_189:OBV := $i_TcData(188) , \ PIA60432_190:OBV := $i_TcData(189) , \ PIA60432_191:OBV := $i_TcData(190) , \ PIA60432_192:OBV := $i_TcData(191) , \ PIA60432_193:OBV := $i_TcData(192) , \ PIA60432_194:OBV := $i_TcData(193) , \ PIA60432_195:OBV := $i_TcData(194) , \ PIA60432_196:OBV := $i_TcData(195) , \ PIA60432_197:OBV := $i_TcData(196) , \ PIA60432_198:OBV := $i_TcData(197) , \ PIA60432_199:OBV := $i_TcData(198) , \ PIA60432_200:OBV := $i_TcData(199) , \ PIA60432_201:OBV := $i_TcData(200) , \ PIA60432_202:OBV := $i_TcData(201) , \ PIA60432_203:OBV := $i_TcData(202) , \ PIA60432_204:OBV := $i_TcData(203) , \ PIA60432_205:OBV := $i_TcData(204) , \ PIA60432_206:OBV := $i_TcData(205) , \ PIA60432_207:OBV := $i_TcData(206) , \ PIA60432_208:OBV := $i_TcData(207) , \ PIA60432_209:OBV := $i_TcData(208) , \ PIA60432_210:OBV := $i_TcData(209) , \ PIA60432_211:OBV := $i_TcData(210) , \ PIA60432_212:OBV := $i_TcData(211) , \ PIA60432_213:OBV := $i_TcData(212) , \ PIA60432_214:OBV := $i_TcData(213) , \ PIA60432_215:OBV := $i_TcData(214) , \ PIA60432_216:OBV := $i_TcData(215) , \ PIA60432_217:OBV := $i_TcData(216) , \ PIA60432_218:OBV := $i_TcData(217) , \ PIA60432_219:OBV := $i_TcData(218) , \ PIA60432_220:OBV := $i_TcData(219) , \ PIA60432_221:OBV := $i_TcData(220) , \ PIA60432_222:OBV := $i_TcData(221) , \ PIA60432_223:OBV := $i_TcData(222) , \ PIA60432_224:OBV := $i_TcData(223) , \ PIA60432_225:OBV := $i_TcData(224) , \ PIA60432_226:OBV := $i_TcData(225)} ,$s_Trace ,"", $TCVERIF, 60) if ($TCVERIF = "SKIP") waitforsys delay := 0.50 -- chosen by trial and error endif End Routine