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