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