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