V 10 1 LANG:1 11 Diagnostics PANEL,-1 -1 580 250 N "_3DFace" 0 E E E E E 1 0 0 0 10 220 ""0 1 E E 2 "CBRef" "1" "EClose" E "" DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 LAYER, 0 1 LANG:1 6 Layer1 30 9 "Frame1" "" 1 10 220 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E E E 10 0 0 0 0 0 E E E 1 1 LANG:1 0 1 "dashclr"N "_Transparent" E E 0 1 1 0 1 E U 0 E 10 60 550 220 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 1 LANG:1 63 Repeat Charge Injection test or specific TRAP internal tests 13 3 "stress" "" 1 302 19 E E E 1 E 1 E N {153,0,0} E N "_Button" E E E E 4 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 300 17 419 46 T 1 LANG:1 11 Stress test "main() { this.backCol = \"green\"; //////////////////////////////////////////////////////////////////////////////// // Run stressTest in a asynchronous mode in order not to block the pMon //////////////////////////////////////////////////////////////////////////////// string semaphoreFileName=tmpnam (); int rc=system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/runAsyncStress \"+semaphoreFileName); if (rc) { DebugN(\"error in system()\",rc); return; } // now get the PID string PidFromFile; bool ok=fileToString(semaphoreFileName,PidFromFile); if (!ok) { DebugN(\"error: could not get the PID of spawned process\"); } int pid=PidFromFile; DebugN(\"PID is\",PidFromFile,pid); string f=\"/proc/\"+pid+\"/\"; rc=0; // DebugN(\"Before WHILE loop: rc = \", rc); while(rc==0) { rc = access(f,R_OK); // DebugN(\"During WHILE loop, rc = \", rc); delay(1,0); } // DebugN(\"After WHILE loop, rc = \", rc); DebugN(\"******************************************\"); DebugN(\"******* STRESS TEST HAS FINISHED *******\"); DebugN(\"******************************************\"); //////////////////////////////////////////////////////////////////////////////// // Display result in table \"test\" //////////////////////////////////////////////////////////////////////////////// shape diagTable = getShape(\"test\"); string sSummary; diagTable.columnName(0,\"result\"); diagTable.columnHeader(0, \"Stress test result\"); diagTable.columnHeaderVisibility() = TRUE; // fileToString(PROJ_PATH+\"files/\"+\"F0T3AV1N0261_summary.log\", sSummary); fileToString(\"/home/robocop/robTester/svnRobTester/ROB_ORI/result\", sSummary); if (sSummary==\"\") return; dyn_string dstr = strsplit(sSummary, \"\\n\"); diagTable.deleteAllLines(); diagTable.appendLines(dynlen(dstr)); for(int i = 1; i <= dynlen(dstr); i++) { diagTable.cellBackColRC(i-1, \"result\", \"{204, 204, 204}\"); diagTable.cellForeColRC(i-1, \"result\", \"{153,0,0}\"); // \"[100,40,20]\" --> Orange, \"{204, 204, 204}\" --> Gray diagTable.cellValueRC(i-1, \"result\", dstr[i]); } diagTable.tableMode(TABLE_SELECT_BROWSE); //diagTable.selectLineN(0); diagTable.lineVisible(0); // diagTable.stop(TRUE); this.backCol = \"_3DFace\"; system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/check_err_stress\"); }" 0 E E "main() { dpConnect(\"setButton\", \"settings.flag2:_online.._value\"); } setButton(string dp0) { bool val; dpGet(\"settings.flag2\",val); if (val==FALSE) this.enabled = FALSE; else this.enabled = TRUE; }" 0 13 4 "pdf" "" 1 151 20 E E E 1 E 1 E N "_ButtonText" E N "_Button" E E E E 5 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 149 18 268 47 T 1 LANG:1 17 View report (PDF) "main() { system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/viewPDF &\"); }" 0 E E "main() { dpConnect(\"setButton\", \"settings.flag2:_online.._value\"); } setButton(string dp0) { bool val; dpGet(\"settings.flag2\",val); if (val==FALSE) this.enabled = FALSE; else this.enabled = TRUE; }" 0 13 5 "summary" "" 1 10 20 E E E 1 E 1 E N "_ButtonText" E N "_Button" E E E E 6 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 8 18 127 47 T 1 LANG:1 12 View summary "// SimpleCtrlScriptStart {invalid} main() { EP_childPanelOn(); } EP_childPanelOn() { ChildPanelOn(\"summary.pnl\",\"Summary\",makeDynString(),618,-200); } // SimpleCtrlScript {EP_childPanelOn} // Function {ChildPanelOnParent} // File {feeServices.pnl} // Panel {Summary} // Parent {Summary} // Module {} // OffsetX {2} // OffsetY {5} // SimpleCtrlScriptEnd {EP_childPanelOn} " 0 E E "main() { dpConnect(\"setButton\", \"settings.flag2:_online.._value\"); } setButton(string dp0) { bool val; dpGet(\"settings.flag2\",val); if (val==FALSE) this.enabled = FALSE; else this.enabled = TRUE; }" 0 22 8 "ComboBox1" "" 1 88 76 E E E 1 E 1 E N {0,0,0} E N "_Window" E E E E 33 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 88 76 322 103 35 1 LANG:1 16 Charge Injection 0 1 LANG:1 18 SCSN test (bridge) 1 1 LANG:1 16 Pretrigger (PRE) 0 1 LANG:1 10 IMEM (IMM) 0 1 LANG:1 11 DBANK (DBK) 0 1 LANG:1 21 DMEM POWER test (DMP) 0 1 LANG:1 10 DMEM (DMM) 0 1 LANG:1 20 DMEM cross r/w (DDD) 0 1 LANG:1 14 Division (DIV) 0 1 LANG:1 23 Conditional jumps (CJP) 0 1 LANG:1 19 CPU constants (CST) 0 1 LANG:1 33 Private and global registers (PG) 0 1 LANG:1 35 Conf. registers in global bus (GIO) 0 1 LANG:1 26 Interrupt controller (IRQ) 0 1 LANG:1 20 Look-up tables (LUT) 0 1 LANG:1 19 Event buffers (EBF) 0 1 LANG:1 24 Filter address MUX (FLA) 0 1 LANG:1 24 Filter non-lin LUT (FLD) 0 1 LANG:1 32 Filter pedestal correction (FPA) 0 1 LANG:1 27 Gain correction adder (FGA) 0 1 LANG:1 32 Gain correction multiplier (FGM) 0 1 LANG:1 29 Filter input data delay (FDD) 0 1 LANG:1 29 Tail cancellation alpha (FTA) 0 1 LANG:1 34 Tail cancellation long decay (FTL) 0 1 LANG:1 35 Tail cancellation short decay (FTS) 0 1 LANG:1 28 Pedestal filter tptc=0 (FP0) 0 1 LANG:1 28 Pedestal filter tptc=1 (FP1) 0 1 LANG:1 28 Pedestal filter tptc=2 (FP2) 0 1 LANG:1 28 Pedestal filter tptc=3 (FP3) 0 1 LANG:1 28 Pedestal filter tptc=0 (FP4) 0 1 LANG:1 28 Pedestal filter tptc=1 (FP5) 0 1 LANG:1 28 Pedestal filter tptc=2 (FP6) 0 1 LANG:1 28 Pedestal filter tptc=3 (FP7) 0 1 LANG:1 34 SCSN test of readout tree (NIscsn) 0 1 LANG:1 31 Switch on all NI outputs (P4on) 0 "main() { this.text = \"Select a test...\"; }" 0 E E 0 0 13 13 "Button4" "" 1 442 72 E E E 1 E 1 E N "_ButtonText" E N "_Button" E E E E 14 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 87 -*-Arial-bold-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,697,0,0,0,0,0,0,0,0,Arial 0 "" 440 70 524 96 T 1 LANG:1 5 R U N "main() { this.backCol = \"green\"; //////////////////////////////////////////////////////////////////////////////// // Get testName string from combo box //////////////////////////////////////////////////////////////////////////////// string test, testname; int testlen; getValue(\"ComboBox1\", \"text\", test); testlen = strlen(test); if (test == \"Charge Injection\") testname = \"Inj\"; else if (test == \"SCSN test of readout tree (NIscsn)\" || test == \"SCSN test (bridge)\"){ testname = substr(test, (testlen - 7), 6); } else if (test == \"Switch on all NI outputs (P4on)\"){ testname = substr(test, (testlen - 5), 4); } else if (test == \"Private and global registers (PG)\"){ testname = substr(test, (testlen - 3), 2); } else testname = substr(test, (testlen - 4), 3); DebugN(testname); //////////////////////////////////////////////////////////////////////////////// // Create singleTest.sh script and execute `make \"testname\"` //////////////////////////////////////////////////////////////////////////////// if (testname != \"Inj\"){ file singleTest; int i, err; // err = error code string line; singleTest = fopen(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/singleTest.sh\",\"r+\"); err = ferror(singleTest); // export error if (testname == \"bridge\") { fputs(\"#!/bin/sh\"+\"\\n\"+\"TOP_DIR=/home/robocop/robTester/svnROBtester\"+\"\\n\"+ \"cd $TOP_DIR\"+\"\\n\"+\". target_type\"+\"\\n\"+\"rm *report.log\"+\"\\n\"+\"make \"+testname+\"\\n\"+ \"grep test bridge_report.log > reportbridge.log\"+\"\\n\"+ \"mv *report*.log LOG/\"+\"\\n\"+\" \", singleTest); } else { fputs(\"#!/bin/sh\"+\"\\n\"+\"TOP_DIR=/home/robocop/robTester/svnRobTester\"+\"\\n\"+ \"cd $TOP_DIR\"+\"\\n\"+\". target_type\"+\"\\n\"+\"rm *report.log\"+\"\\n\"+\"make \"+testname+\"\\n\"+ \"mv *report.log LOG/report\"+testname+\".log\"+\" \", singleTest); } rewind(singleTest); // necessary only for debugging /* // START OF DEBUGGING for (i = 1; i <= 8; i++) { fscanf(singleTest,\"%s\", line); DebugN(line); } // END OF DEBUGGING */ fclose(singleTest); // close file if (err!=0) DebugN(\"Error no. \",err,\" occurred\"); } //////////////////////////////////////////////////////////////////////////////// // Run singleTest.sh in asynchronous mode in order not to block the pMon //////////////////////////////////////////////////////////////////////////////// string semaphoreFileName=tmpnam (); if (testname == \"Inj\") { int rc=system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/runAsyncPre_2 \"+semaphoreFileName); if (rc) { DebugN(\"error in system()\",rc); return; } // now get the PID string PidFromFile; bool ok=fileToString(semaphoreFileName,PidFromFile); if (!ok) { DebugN(\"error: could not get the PID of spawned process\"); } int pid=PidFromFile; DebugN(\"PID is\",PidFromFile,pid); string f=\"/proc/\"+pid+\"/\"; rc=0; // DebugN(\"Before WHILE loop: rc = \", rc); while(rc==0) { rc = access(f,R_OK); // DebugN(\"During WHILE loop, rc = \", rc); delay(1,0); } } else{ int rc=system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/runAsyncSingle \"+semaphoreFileName); if (rc) { DebugN(\"error in system()\",rc); return; } // now get the PID string PidFromFile; bool ok=fileToString(semaphoreFileName,PidFromFile); if (!ok) { DebugN(\"error: could not get the PID of spawned process\"); } int pid=PidFromFile; DebugN(\"PID is\",PidFromFile,pid); string f=\"/proc/\"+pid+\"/\"; rc=0; // DebugN(\"Before WHILE loop: rc = \", rc); while(rc==0) { rc = access(f,R_OK); // DebugN(\"During WHILE loop, rc = \", rc); delay(1,0); } } //////////////////////////////////////////////////////////////////////////////// // Display result (report${testname}.log) in table \"test\" //////////////////////////////////////////////////////////////////////////////// shape diagTable = getShape(\"test\"); string sSummary; diagTable.columnName(0,\"result\"); diagTable.columnHeader(0, \"Single test results\"); diagTable.columnHeaderVisibility() = TRUE; // fileToString(PROJ_PATH+\"files/\"+\"F0T3AV1N0261_summary.log\", sSummary); fileToString(\"/home/robocop/robTester/svnRobTester/LOG/report\"+testname+\".log\", sSummary); if (sSummary==\"\") return; dyn_string dstr = strsplit(sSummary, \"\\n\"); diagTable.deleteAllLines(); diagTable.appendLines(dynlen(dstr)); for(int i = 1; i <= dynlen(dstr); i++) { diagTable.cellBackColRC(i-1, \"result\", \"{204, 204, 204}\"); diagTable.cellForeColRC(i-1, \"result\", \"{153,0,0}\"); // \"[100,40,20]\" --> Orange, \"{204, 204, 204}\" --> Gray diagTable.cellValueRC(i-1, \"result\", dstr[i]); } diagTable.tableMode(TABLE_SELECT_BROWSE); //diagTable.selectLineN(0); diagTable.lineVisible(0); // diagTable.stop(TRUE); //////////////////////////////////////////////////////////////////////////////// // Clean the LOG folder //////////////////////////////////////////////////////////////////////////////// //system(\"./SCRIPTS_2/cleanLog\"); this.backCol = \"_3DFace\"; }" 0 E E "main() { dpConnect(\"setButton\", \"settings.flag2:_online.._value\"); } setButton(string dp0) { bool val; dpGet(\"settings.flag2\",val); if (val==FALSE) this.enabled = FALSE; else this.enabled = TRUE; }" 0 25 14 "test" "" 1 -93 125 E E E 1 E 1 E N "_WindowText" E N "_Window" E E E E 15 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 18 108 542 212 "main() { this.deleteAllLines(); this.columnEditable(0, FALSE); this.columnVisibility(0,TRUE); this.sortOnClick(FALSE); this.columnWidth(0,1500); }" 0 E 0 0 1 1 1 "#1" 10 1 0 "s" 1 LANG:1 2 #1 E 1 LANG:1 0 128 20 20 "" 1 1 LANG:1 2 #1 8 56 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 0 1 1 0 7 1 0 13 15 "ori" "" 1 430 20 E E E 1 E 1 E N {153,0,0} E N "_Button" E E E E 15 0 0 0 0 0 E E E 0 1 LANG:1 0 0 1 LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial 0 "" 428 18 547 47 T 1 LANG:1 12 ORI read-out "main() { this.backCol = \"green\"; //////////////////////////////////////////////////////////////////////////////// // Run readViaOri in a asynchronous mode in order not to block the pMon //////////////////////////////////////////////////////////////////////////////// string semaphoreFileName=tmpnam (); int rc=system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/runAsyncOri \"+semaphoreFileName); if (rc) { DebugN(\"error in system()\",rc); return; } // now get the PID string PidFromFile; bool ok=fileToString(semaphoreFileName,PidFromFile); if (!ok) { DebugN(\"error: could not get the PID of spawned process\"); } int pid=PidFromFile; DebugN(\"PID is\",PidFromFile,pid); string f=\"/proc/\"+pid+\"/\"; rc=0; // DebugN(\"Before WHILE loop: rc = \", rc); while(rc==0) { rc = access(f,R_OK); // DebugN(\"During WHILE loop, rc = \", rc); delay(1,0); } // DebugN(\"After WHILE loop, rc = \", rc); DebugN(\"******************************************\"); DebugN(\"****** ORI READ-OUT HAS FINISHED *******\"); DebugN(\"******************************************\"); //////////////////////////////////////////////////////////////////////////////// // Display result in table \"test\" //////////////////////////////////////////////////////////////////////////////// shape diagTable = getShape(\"test\"); string sSummary; diagTable.columnName(0,\"result\"); diagTable.columnHeader(0, \"ORI read-out remarks\"); diagTable.columnHeaderVisibility() = TRUE; diagTable.deleteAllLines(); // <-- delete this line /* // fileToString(PROJ_PATH+\"files/\"+\"F0T3AV1N0261_summary.log\", sSummary); fileToString(\"/home/trap/robTester/svnROBtester/ROB_ORI/result\", sSummary); if (sSummary==\"\") return; dyn_string dstr = strsplit(sSummary, \"\\n\"); diagTable.deleteAllLines(); diagTable.appendLines(dynlen(dstr)); for(int i = 1; i <= dynlen(dstr); i++) { diagTable.cellBackColRC(i-1, \"result\", \"{204, 204, 204}\"); diagTable.cellForeColRC(i-1, \"result\", \"{153,0,0}\"); // \"[100,40,20]\" --> Orange, \"{204, 204, 204}\" --> Gray diagTable.cellValueRC(i-1, \"result\", dstr[i]); } diagTable.tableMode(TABLE_SELECT_BROWSE); //diagTable.selectLineN(0); diagTable.lineVisible(0); // diagTable.stop(TRUE); */ this.backCol = \"_3DFace\"; system(\"/home/robocop/robTester/svnRobTester/SCRIPTS_2/check_err_ori\");; }" 0 E E "main() { dpConnect(\"setButton\", \"settings.flag2:_online.._value\"); } setButton(string dp0) { bool val; dpGet(\"settings.flag2\",val); if (val==FALSE) this.enabled = FALSE; else this.enabled = TRUE; }" 0 0 LAYER, 1 1 LANG:1 6 Layer2 0 LAYER, 2 1 LANG:1 6 Layer3 0 LAYER, 3 1 LANG:1 6 Layer4 0 LAYER, 4 1 LANG:1 6 Layer5 0 LAYER, 5 1 LANG:1 6 Layer6 0 LAYER, 6 1 LANG:1 6 Layer7 0 LAYER, 7 1 LANG:1 6 Layer8 0 0