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