Version 2.20 by SuperUwe Trueggelmann on 2022-09-28

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