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