Show last authors
1 {{groovy}}
2 int intPageStatus = 0
3 int intThTime = 0
4 int intBndDCy = 0
5 float flChVTime = 0.0
6 ArrayList lstEvalMethod = []
7 ArrayList lstEvalMethods = lstEvalMethod[][]
8 int i,j
9 String strListAllEval = ""
10 String strCommand
11 boolean boDebug = true
12
13
14 boolean doTH = false
15
16 strCommand == request.get("butAction")?: 'none'
17 if (strCommand){
18 if(boDebug){println "'" + strCommand + "' received."}
19 strCommand = services.cleanStr.alphanum(strCommand)
20 if (strCommand == "Calculate the Test Plan") {intPageStatus = 20}
21 if (strCommand == "Create a new Test Plan") {intPageStatus = 40}
22 if(boDebug){println "'" + strCommand + "'' received, pagestatus = " + intPageStatus}
23 }
24 else{
25 strCommand = "none"
26 intPageStatus = 0
27 if(boDebug){println strCommand + " received, pagestatus = " + intPageStatus}
28 }
29
30 // PageStatus == 0: Starting, no parameters queried
31 // PageStatus == 10: Some parameters provided, but impossible to create the plan
32 // PageStatus == 20: Parameters provided, attempt to create the plan
33 // PageStatus == 30: Parameters verified, show plan
34 // PageStatus == 40: Plan shown, create a new plan
35
36 //Get params from URL
37 int intAc = (request.get("Ac") ?:1).toInteger()
38 objUc = request.get("Uc") ?:1.0
39 float flUc = objUc.toFloat()
40 int intTmax = (request.get("Tmax") ?:50).toInteger()
41 String strScenario = request.get("scenario") ?:"icc"
42 boolean boP = (request.get("p") ?:false).toBoolean()
43 boolean boM = (request.get("m") ?:false).toBoolean()
44 boolean boIcc = (request.get("icc") ?:false).toBoolean()
45 boolean boPv = (request.get("pv") ?:false).toBoolean()
46 boolean boDi = (request.get("di") ?:false).toBoolean()
47 boolean boO = (request.get("o") ?:false).toBoolean()
48 boolean boE = (request.get("e") ?:false).toBoolean()
49 boolean boIcm = (request.get("icm") ?:false).toBoolean()
50
51 // Test Method Applicability
52 if (intPageStatus == 20) {
53 lstEvalMethods.add([true,"Vis","VisualExamination"])
54 lstEvalMethods.add([true,"Wrp","Card Warpage"])
55 lstEvalMethods.add([true,"Dim","Dimensions of cards"])
56 lstEvalMethods.add([true,"Fun","Testably Functional"])
57 if (boP && (["fc","gp"].contains(strScenario))){lstEvalMethods.add([true,"AdhXcut","Delamination - Cross cut tape test"])}
58 else{lstEvalMethods.add([false,"AdhXcut","Delamination - Cross cut tape test"])}
59 if(boIcm){lstEvalMethods.add([true,"AdhICM","Adhesion of ICM to card"])}
60 else{lstEvalMethods.add([false,"AdhICM","Adhesion of ICM to card"])}
61 if(["icc","fc"].contains(strScenario)){lstEvalMethods.add([true,"AdhPeel","Peel strength"])}
62 else{lstEvalMethods.add([false,"AdhPeel","Peel strength"])}
63 if(boP && (["fc","gp"].contains(strScenario))){lstEvalMethods.add([true,"AdhPatch","Peel Strength of Patches covering graphical personalisation"])}
64 else{lstEvalMethods.add([false,"AdhPatch","Peel Strength of Patches covering graphical personalisation"])}
65 int intEvalMethodCount = 8
66
67 // Create max list of Evaluation Methods based on product configuration
68 for(i;i<8;i++){
69 if(lstEvalMethods[i][0]){
70 strListAllEval = strListAllEval + lstEvalMethods[i][2]
71 if(i<6){strListAllEval=strListAllEval + "\n"}
72 }
73 }
74 xcontext.put("strListAllEval",strListAllEval)
75 // TH
76 if (["icc","fc","gp"].contains(strScenario)){
77 doTH=true
78 intThTime=Math.max(12,Math.min(intAc*12,120))
79 xcontext.put("doTH",doTH)
80 xcontext.put("intThTime",intThTime)
81 }
82
83 // THSeq
84 if (["icc","fc","gp"].contains(strScenario)){
85 doTHSeq=true
86 xcontext.put("doTHSeq",doTHSeq)
87 }
88
89 // ChP
90 if (["icc","fc","gp"].contains(strScenario)){
91 doChP=true
92 xcontext.put("doChP",doChP)
93 }
94
95 // ChV
96 if (["icc","fc","gp"].contains(strScenario) && !(boE)){
97 doChV=true
98 flChVTime=Math.max(12,Math.min(intAc*12,120))
99 xcontext.put("doChV",doChV)
100 xcontext.put("flChVTime",flChVTime)
101 }
102
103 // TExp
104 if (["icc","fc","gp"].contains(strScenario)){
105 doTExp=true
106 xcontext.put("doTExp",doTExp)
107 }
108
109 // AbrMT
110 if (["icc","fc","gp"].contains(strScenario) && (boM)){
111 doAbrMT=true
112 int intCyAbrMT=Math.max(50,Math.min(intAc*50 + 2*intAc*flUc,500))
113 xcontext.put("doAbrMT",doAbrMT)
114 xcontext.put("intCyAbrMT",intCyAbrMT)
115 }
116
117 // AdhMag
118 if (["icc","fc","gp"].contains(strScenario) && boM){
119 doAdhMag=true
120 xcontext.put("doAdhMag",doAdhMag)
121 }
122
123 intPageStatus = 30
124 }
125
126 // AbrST
127 if (["icc","fc","gp"].contains(strScenario) && !(boE)){
128 doAbrST=true
129 int intCyAbrST=(Math.max(10,Math.min(4.5*intAc*flUc,450))).toInteger()
130 xcontext.put("doAbrST",doAbrST)
131 xcontext.put("intCyAbrST",intCyAbrST)
132 }
133
134 // Tw
135 if (["icc","fc"].contains(strScenario) && (boIcm)){
136 doTw=true
137 int intTwF=Math.max(8,Math.min(Math.ceil(2.15*(3 + flUc*0.5)),15))
138 int intTwCy=50
139 xcontext.put("doTw",doTw)
140 xcontext.put("intTwF",intTwF)
141 xcontext.put("intTwCy",intTwCy)
142 }
143
144 // TwA
145 if (["icc","fc"].contains(strScenario) && !(boIcm) &&(boPv)){
146 doTwA=true
147 int intTwAF=(Math.max(8,Math.min((2.15*(3 + flUc*0.5)),15))).toInteger()
148 int intTwACy=50
149 xcontext.put("doTwA",doTwA)
150 xcontext.put("intTwAF",intTwAF)
151 xcontext.put("intTwACy",intTwACy)
152 }
153
154 // BndA
155 if (["icc","fc"].contains(strScenario) && !(boIcm) && !(boIcc) && !(boPv) && !(boDi) && !(boE)){
156 doBndA=true
157 int intBndACy=(Math.max(1000,Math.min(1000*((intAc*flUc/2).toInteger()),50000))).toInteger()
158 xcontext.put("doBndA",doBndA)
159 xcontext.put("intBndACy",intBndACy)
160 }
161
162 // BndB
163 if (["icc","fc"].contains(strScenario) && !(boIcm) && !(boIcc) && !(boPv) && !(boDi) && !(boE)){
164 doBndB=true
165 int intBndBCy=(Math.max(1000,Math.min(500*((intAc*flUc/2).toInteger()),50000))).toInteger()
166 xcontext.put("doBndB",doBndB)
167 xcontext.put("intBndBCy",intBndBCy)
168 }
169
170 // BndD
171 if (["icc","fc","gp"].contains(strScenario)){
172 boolean doBndD=true
173 intBndDCy=(Math.max(1000,Math.min(1000+1000*(Math.rint(500*intAc*flUc/1000)),4000)))
174 xcontext.put("doBndD",doBndD)
175 xcontext.put("intBndDCy",intBndDCy)
176 }
177
178 // BndS
179 if (["icc","fc"].contains(strScenario) && (boDi)){
180 doBndS=true
181 int intBndSCy=(Math.max(100,Math.min(100+100*(Math.rint(20*intAc*flUc/100)),400)))
182 xcontext.put("doBndS",doBndS)
183 xcontext.put("intBndSCy",intBndSCy)
184 }
185
186 // BndW
187 if (["icc","fc"].contains(strScenario) && (boIcm)){
188 doBndW=true
189 xcontext.put("doBndW",doBndW)
190 }
191
192 // TH_BndD
193 if (["icc","fc","gp"].contains(strScenario)){
194 doTH_BndD=true
195 int intTH_BndDSimCy = Math.rint(intAc / 3) + 1
196 int intTH_BndDTime = Math.max(3,Math.min(3*Math.rint(intThTime/(intTH_BndDSimCy*3)),120))
197 int intTH_BndDCy = Math.max(400,Math.min(400*Math.rint(intBndDCy/(intTH_BndDSimCy*400)),4000))
198 xcontext.put("doTH_BndD",doTH_BndD)
199 xcontext.put("intTH_BndDSimCy",intTH_BndDSimCy)
200 xcontext.put("intTH_BndDTime",intTH_BndDTime)
201 xcontext.put("intTH_BndDCy",intTH_BndDCy)
202 }
203
204 // THSeq_BndD
205 if (["icc","fc","gp"].contains(strScenario)){
206 doTHSeq_BndD=true
207 int intTHSeq_BndDSimCy = 1 // Math.rint(intAc / 3) + 1
208 int intTHSeq_BndDTimeH = 60
209 int intTHSeq_BndDTimeL = 6
210 int intTHSeq_BndDCy = intBndDCy
211 xcontext.put("doTHSeq_BndD",doTHSeq_BndD)
212 xcontext.put("intTHSeq_BndDSimCy",intTHSeq_BndDSimCy)
213 xcontext.put("intTHSeq_BndDTimeH",intTHSeq_BndDTimeH)
214 xcontext.put("intTHSeq_BndDTimeL",intTHSeq_BndDTimeL)
215 xcontext.put("intTHSeq_BndDCy",intTHSeq_BndDCy)
216 }
217
218 // Vnl_BndD
219 if (["icc","fc","gp"].contains(strScenario) && !(boE) && (intAc>2)){
220 doVnl_BndD=true
221 int intVnl_BndDSimCy = Math.rint(intAc / 3) + 1
222 int intVnl_BndDTime = Math.max(3,Math.min(3*Math.rint(flChVTime/(intVnl_BndDSimCy*3)),120))
223 int intVnl_BndDCy = Math.max(400,Math.min(400*Math.rint(intBndDCy/(intVnl_BndDSimCy*400)),4000))
224 xcontext.put("doVnl_BndD",doVnl_BndD)
225 xcontext.put("intVnl_BndDSimCy",intVnl_BndDSimCy)
226 xcontext.put("intVnl_BndDTime",intVnl_BndDTime)
227 xcontext.put("intVnl_BndDCy",intVnl_BndDCy)
228 }
229
230
231
232 if (intPageStatus == 40) {
233 intPageStatus = 0
234 }
235 xcontext.put("intAc", intAc)
236 xcontext.put("flUc", flUc)
237 xcontext.put("intTmax", intTmax)
238 xcontext.put("intPageStatus",intPageStatus)
239 xcontext.put("strScenario",strScenario)
240 xcontext.put("boP",boP)
241 xcontext.put("boM",boM)
242 xcontext.put("boIcc",boIcc)
243 xcontext.put("boPv",boPv)
244 xcontext.put("boDi",boDi)
245 xcontext.put("boO",boO)
246 xcontext.put("boE",boE)
247 xcontext.put("boIcm",boIcm)
248 xcontext.put("boP",boP)
249
250
251 {{/groovy}}
252
253 {{velocity}}
254 {{html wiki=false clean=false}}
255 #set($fmtTblHeadLeft = 'style="background-color:#400040; border-color:#d0d3d4; color: white; vertical-align:middle;text-align:left;"')
256 #set($fmtTblHeadCenter = 'style="background-color:#400040; border-color:#d0d3d4; color: white; vertical-align:middle; text-align:center;"')
257 #set($fmtTblLeft = 'style="background-color:#d0d3d4; border-color:#400040; color: #400040; vertical-align:middle;text-align:left;"')
258 #set($fmtTblCenter = 'style="background-color:#d0d3d4; border-color:#400040; color: #400040; vertical-align:middle; text-align:center;"')
259
260 <form action="">
261 <table id="table1"; cellspacing="5px" cellpadding="5%" border="1" width="100%"; align="left">
262 <col style="width:25%">
263 <col style="width:25%">
264 <tr>
265 #if ($xcontext.intPageStatus == 0 || $xcontext.intPageStatus == 10)
266 <th $fmtTblHeadLeft colSpan=2>Enter the Application Profile Parameters:</th>
267 #end
268 #if ($xcontext.intPageStatus >= 20)
269 <th $fmtTblHeadLeft colSpan=2>Application Profile Parameters:</th>
270 #end
271 </tr>
272 <tr>
273 #if ($xcontext.intPageStatus == 0 || $xcontext.intPageStatus == 10)
274 <th $fmtTblHeadLeft>1. Enter expected Service Life in years - Ac</th>
275 #end
276 #if ($xcontext.intPageStatus >= 20)
277 <th $fmtTblHeadLeft>Service Life in years - Ac</th>
278 #end
279 #if ($xcontext.intPageStatus >= 20)
280 <td $fmtTblCenter>
281 $xcontext.intAc
282 </td>
283 #end
284 #if ($xcontext.intPageStatus < 20)
285 <td $fmtTblCenter>
286 <input type="number" step="1" id="Ac" name="Ac" value="$xcontext.intAc" min="1" max="10">
287 </td>
288 #end
289 </tr>
290 <tr>
291 #if ($xcontext.intPageStatus < 20)
292 <th $fmtTblHeadLeft>2. Enter Number of Uses per day - Uc</th>
293 #end
294 #if ($xcontext.intPageStatus >= 20)
295 <th $fmtTblHeadLeft>Number of Uses per day - Uc</th>
296 #end
297 #if ($xcontext.intPageStatus < 20)
298 <td $fmtTblCenter>
299 <input type="number" step="0.1" id="Uc" name="Uc" value="$xcontext.flUc" min="0.1" max="10">
300 </td>
301 #end
302 #if ($xcontext.intPageStatus >= 20)
303 <td $fmtTblCenter>
304 $xcontext.flUc
305 </td>
306 #end
307 </tr>
308 <tr>
309 #if ($xcontext.intPageStatus < 20)
310 <th $fmtTblHeadLeft>3. Enter maximum storage temperature - T<sub>max</sub></th>
311 #end
312 #if ($xcontext.intPageStatus >= 20)
313 <th $fmtTblHeadLeft>Maximum storage temperature - T<sub>max</sub></th>
314 #end
315 #if ($xcontext.intPageStatus < 20)
316 <td $fmtTblCenter>
317 <input type="number" step="5" id="Tmax" name="Tmax" value="$xcontext.intTmax" min="50" max="100"> °C
318 </td>
319 #end
320 #if ($xcontext.intPageStatus >= 20)
321 <td $fmtTblCenter>
322 $xcontext.intTmax °C
323 </td>
324 #end
325 </tr>
326 <tr>
327 #if ($xcontext.intPageStatus == 0 || $xcontext.intPageStatus == 10)
328 <th $fmtTblHeadLeft>3. Select the Test Scenario (the Scope of the Evaluation)</th>
329 #end
330 #if ($xcontext.intPageStatus >= 20)
331 <th $fmtTblHeadLeft>Test Scenario</th>
332 #end
333 #if ($xcontext.intPageStatus >= 20)
334 <td $fmtTblCenter>
335 #if ($xcontext.strScenario == "fc")
336 Finished Card including Personalisation
337 #end
338 #if ($xcontext.strScenario == "icc")
339 Unpersonalised Card
340 #end
341 #if ($xcontext.strScenario == "gp")
342 Graphical Personalisation Layer only
343 #end
344 </td>
345 #end
346 #if ($xcontext.intPageStatus < 20)
347 <td $fmtTblCenter>
348 <select name="scenario">
349 <option value="icc">CB or ICC - Unpersonalised Card</option>
350 <option value="fc">FC - Finished, Personalised Card</option>
351 <option value="gp">GP - Graphical Personalization Only</option>
352 </select>
353 </td>
354 #end
355 </tr>
356 <tr>
357 #if ($xcontext.intPageStatus == 0 || $xcontext.intPageStatus == 10)
358 <th $fmtTblHeadLeft>4. Check each of the Technologies present on the card:</th>
359 #end
360 #if ($xcontext.intPageStatus >= 20)
361 <th $fmtTblHeadLeft>Technologies present on the card</th>
362 #end
363 #if ($xcontext.intPageStatus >= 20)
364 <td $fmtTblCenter>
365 #if ($xcontext.boP) Graphical Personalisation Layer <br> #end
366 #if ($xcontext.boM) Magnetic Stripe <br> #end
367 #if ($xcontext.boIcc) IC Card with Contact Interface <br> #end
368 #if ($xcontext.boPv) IC Card with Proximity or Vicinity Interface <br> #end
369 #if ($xcontext.boDi) IC Card with Contact and Contactless Interface <br> #end
370 #if ($xcontext.boO) Optical Memory <br> #end
371 #if ($xcontext.boE) Embossing <br> #end
372 #if ($xcontext.boIcm) ICM exposed on the surface <br> #end
373 </td>
374 #end
375 #if ($xcontext.intPageStatus < 20)
376 <td $fmtTblCenter>
377 <input type="checkbox" id="p" name="p" value=true>
378 <label for "p">Graphical Perso Layer</label><br>
379 <input type="checkbox" id="m" name="m" value=true>
380 <label for "p">Magnetic Stripe</label><br>
381 <input type="checkbox" id="icc" name="icc" value=true>
382 <label for "p">ICC with Contact Interface</label><br>
383 <input type="checkbox" id="pv" name="pv" value=true>
384 <label for "p">PICC or VICC Interface</label><br>
385 <input type="checkbox" id="di" name="di" value=true>
386 <label for "p">Dual Interface</label><br>
387 <input type="checkbox" id="o" name="o" value=true>
388 <label for "p">Optical Memory</label><br>
389 <input type="checkbox" id="e" name="e" value=true>
390 <label for "p">Embossing</label><br>
391 <input type="checkbox" id="icm" name="icm" value=true>
392 <label for "p"><a href="https://trucert.com/bin/view/StartPage/Standardization/Card%20Service%20Life%20Test%20Plan%20WebTool/Explanation%3A%20ICM%20exposed%20on%20the%20surface/WebHome" target="_blank">ICM exposed on the surface</a></label><br>
393 </td>
394 #end
395 </tr>
396 #if ($xcontext.intPageStatus < 20)
397 <tr>
398 <th $fmtTblHeadLeft>5. Click this Button</th>
399 <td $fmtTblCenter>
400 <input class="btn btn-primary" type="submit" name="butAction" value="Calculate the Test Plan">
401 </td>
402 </tr>
403 #end
404 </table>
405 {{/html}}
406
407 ##{{html wiki="true"}}
408 #if ( $xcontext.intPageStatus == 30)
409 #set($fmtTblHdLeft = '(% style="background-color:#400040; border:1px solid #d0d3d4; color: white; vertical-align:middle;text-align:left;" %)')
410 #set($fmtTblHdLeft2C = '(% style="background-color:#400040; border:1px solid #d0d3d4; color: white; vertical-align:middle;text-align:left" colspan="2" %)')
411 #set($fmtTblHdLeft3C = '(% style="background-color:#400040; border:1px solid #d0d3d4; color: white; vertical-align:middle;text-align:left" colspan="3" %)')
412 #set($fmtTblHdCenter = '(% style="background-color:#400040; border:1px solid #d0d3d4; color: white; vertical-align:middle; text-align:center;" %)')
413 #set($fmtTblLeft = '(% style="background-color:#d0d3d4; border:1px solid #400040; color: #400040; vertical-align:middle; text-align:left;" %)')
414 #set($fmtTblCenter = '(% style="background-color:#d0d3d4; border:1px solid #400040; color: #400040; vertical-align:middle; text-align:center;" %)')
415 #set($fmtTblCenter2C = '(% style="background-color:#d0d3d4; border:1px solid #400040; color: #400040; vertical-align:middle; text-align:center;" colspan="2" %)')
416 |=${fmtTblHdLeft3C}Test Plan:
417 |=${fmtTblHdLeft}Test Method|=${fmtTblHdLeft}Parameters|=${fmtTblHdLeft}Evaluation Methods following exposure
418 #if ($xcontext.doTH)
419 |${fmtTblHdLeft}ISO/IEC 24789-2 - Temperature and humidity aging|${fmtTblLeft}Exposure Time: $xcontext.intThTime h at 50 °C and 95% r.H.|${fmtTblLeft}${xcontext.strListAllEval}
420 #end
421 #if ($xcontext.doTHSeq)
422 |${fmtTblHdLeft}ISO/IEC 24789-2 - Temperature Exposure with Humidity Variation (50°C/95 % r.H. followed by 50°C/25 % r.H.)|${fmtTblLeft}Exposure Time: 50 °C and 95 %r.H. for 60 h, followed by 50 °C and 25 %r.H. for 6 h|${fmtTblLeft}${xcontext.strListAllEval}
423 #end
424 #if ($xcontext.doChP)
425 |${fmtTblHdLeft}ISO/IEC 10373-1 - Exposure to Chemicals - Exposure to Artificial Perspiration|${fmtTblLeft}Exposure Time: 24 h|${fmtTblLeft}Visual examination
426 #end
427 #if ($xcontext.doChV)
428 |${fmtTblHdLeft}ISO/IEC 24789-2 - Plasticised vinyl storage|${fmtTblLeft}Exposure Time: ${xcontext.flChVTime} h|${fmtTblLeft}Visual examination
429 #end
430 #if ($xcontext.doTExp)
431 |${fmtTblHdLeft}ISO/IEC 10373-1 - Resistance to heat|${fmtTblLeft}Exposure Temperature: ${xcontext.intTmax} °C|${fmtTblLeft}The sample after Stress Exposure shall not show a deflection greater than 10 mm when evaluated as defined in //ISO/IEC 10373-1 - Resistance to heat// after being exposed to the test at the Exposure Temperature.
432 #end
433 #if ($xcontext.doAbrMT)
434 |${fmtTblHdLeft}ISO/IEC 24789-2 - Magnetic stripe abrasion|${fmtTblLeft}Abrasion Cycles: ${xcontext.intCyAbrMT}|${fmtTblLeft}The evaluation is implicitly defined in the method in ISO/IEC 24789-2, determining the number of cycles until the magnetic signal has degraded to a certain extent.
435 #end
436 #if ($xcontext.doAdhMag)
437 |${fmtTblHdLeft}ISO/IEC 10373-2 - Magnetic stripe adhesion|${fmtTblLeft}n/a|${fmtTblLeft}The evaluation is implicitly defined in the method in ISO/IEC 10373-2. Iin addition verify that:
438 - no loss of magnetic material outside the cut area occurred, and that
439 - on the adhesive tape the only magnetic material visible is cutting debris along the cuts in the stripe with a permitted maximum length of 0,5 mm.
440 #end
441 #if ($xcontext.doAbrST)
442 |${fmtTblHdLeft}ISO/IEC 24789-2 - Surface abrasion|${fmtTblLeft}Abrasion Cycles: ${xcontext.intCyAbrST}|${fmtTblLeft}Visual examination
443 #end
444 #if ($xcontext.doTw)
445 |${fmtTblHdLeft}ISO/IEC 10373-1 - 3 Wheel Test|${fmtTblLeft}Force 3 Wheel Test: ${xcontext.intTwF} N for ${xcontext.intTwCy} cycles per side (front and back)|${fmtTblLeft}Testably functional
446 #end
447 #if ($xcontext.doTwA)
448 |${fmtTblHdLeft}ISO/IEC 18328-2 – Advanced 3 Wheel Test|${fmtTblLeft}Force 3 Wheel Test ${xcontext.intTwAF} N for ${xcontext.intTwACy} cycles per side (front and back)|${fmtTblLeft}Testably functional
449 #end
450 #if ($xcontext.doBndA)
451 |${fmtTblHdLeft}ISO/IEC 24789-2 - ID-1 Card Flexure Axis A|${fmtTblLeft}Flex Cycles: ${xcontext.intBndACy}|${fmtTblLeft}Visual examination
452 Testably functional
453 #end##
454 #if ($xcontext.doBndB)
455 |${fmtTblHdLeft}ISO/IEC 24789-2 - ID-1 Card Flexure Axis B|${fmtTblLeft}Flex Cycles: ${xcontext.intBndBCy}|${fmtTblLeft}Visual examination
456 Testably functional
457 #end##
458 #if ($xcontext.doBndD)
459 |${fmtTblHdLeft}ISO/IEC 10373-1 - Dynamic Bending Stress|${fmtTblLeft}Bending Cycles: ${xcontext.intBndDCy}|${fmtTblLeft}Visual examination
460 Testably functional
461 #end
462 #if ($xcontext.doBndS)
463 |${fmtTblHdLeft}ISO/IEC 24789-2 - Shortened Bending Stress|${fmtTblLeft}Bending Cycles: ${xcontext.intBndSCy}|${fmtTblLeft}Visual examination
464 Testably functional
465 #end
466 #if ($xcontext.doBndW)
467 |${fmtTblHdLeft}ISO/IEC 24789-2 - Adhesion of ICM to Card - Wrapping test|${fmtTblLeft}Wrapping Cycles: as defined in the Stress Exposure Method|${fmtTblLeft}Visual examination as defined in the Stress Exposure Method
468 #end
469 #if ($xcontext.doTH_BndD)
470 |${fmtTblHdLeft}ISO/IEC 24789-2 - Temperature and Humidity Aging alternating with Dynamic Bending Stress|${fmtTblLeft}Repeat the following sequence ${xcontext.intTH_BndDSimCy} times:
471 - ISO/IEC 24789-2 - Temperature and humidity aging with an Exposure Time of ${xcontext.intTH_BndDTime} h
472 - ISO/IEC 10373-1 - Dynamic Bending Stress for ${xcontext.intTH_BndDCy} Bending Cycles; subjecting the card for ¼ of the cycles to each of the 4 Dynamic Bending orientations|${fmtTblLeft}Visual examination
473 Testably functional
474 #end
475 #if ($xcontext.doTHSeq_BndD)
476 |${fmtTblHdLeft}ISO/IEC 24789-2 - Temperature Exposure with Humidity Variation followed by Dynamic Bending StressStress|${fmtTblLeft}Repeat the following sequence ${xcontext.intTHSeq_BndDSimCy} times:
477 - ISO/IEC 24789-2 - ISO/IEC 24789-2 - Temperature Exposure with humidity variation at 50 °C and 95% rH for ${xcontext.intTHSeq_BndDTimeH} h Exposure Time;
478 - ISO/IEC 24789-2 - ISO/IEC 24789-2 - Temperature Exposure with humidity variation at 50 °C and 25% rH for ${xcontext.intTHSeq_BndDTimeL} h Exposure Time;
479 - ISO/IEC 10373-1 - Dynamic Bending Stress for ${xcontext.intTHSeq_BndDCy} Bending Cycles; subjecting the card for ¼ of the cycles to each of the 4 Dynamic Bending orientations|${fmtTblLeft}Visual examination
480 Testably functional
481 #end
482 #if ($xcontext.doVnl_BndD)
483 |${fmtTblHdLeft}ISO/IEC 24789-2 - Softener Sequence - Plasticised vinyl storage alternating with Dynamic Bending StressStressStress|${fmtTblLeft}Repeat the following sequence ${xcontext.intVnl_BndDSimCy} times:
484 - ISO/IEC 24789-2 - Plasticised vinyl storage for ${xcontext.intVnl_BndDTime} h;
485 - ISO/IEC 10373-1 - Dynamic Bending Stress for ${xcontext.intVnl_BndDCy} Bending Cycles; subjecting the card for ¼ of the cycles to each of the 4 Dynamic Bending orientations;|${fmtTblLeft}Visual examination
486 Testably functional
487 #end
488 ##
489 ## 'Create a new Test Plan' button at the bottom
490 ##
491 |=${fmtTblHdLeft}Click this Button to calculate a new Test Plan|${fmtTblCenter2C}{{html wiki=false clean=false}}
492 <form action="" class="xformInline" method="post" name="Contact Edit Form">
493 <input class="btn btn-primary" type="submit" name="butAction" value="Create a new Test Plan" align="center">
494 </form>
495 {{/html}}|
496 #end
497 {{/velocity}}
498
499 [[ICM exposed on the surface>>doc:Main.Standardization.Card Service Life Test Plan WebTool.Explanation\: ICM exposed on the surface.WebHome]]
© 2022 TruCert Assessment Services Inc.
V01-00