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