]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
t needed any more
authorhadaq <hadaq>
Sun, 5 Jul 2009 23:18:55 +0000 (23:18 +0000)
committerhadaq <hadaq>
Sun, 5 Jul 2009 23:18:55 +0000 (23:18 +0000)
libtrbnet/HowTo_ADCM_v2.txt [deleted file]
libtrbnet/pulser.c

diff --git a/libtrbnet/HowTo_ADCM_v2.txt b/libtrbnet/HowTo_ADCM_v2.txt
deleted file mode 100644 (file)
index d0726f1..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-HowTo ADCM_v2\r
-=============\r
-\r
-Alle Skripte / Software befindet sich im TRB0 /home/hadaq/mboehmer/ !\r
-\r
-Anschalten: Board zieht ca. 2A in Vollbestückung, im konfigurierten Betrieb ca. 2.8A. Netzteil wird heiss!\r
-\r
-TRB: ./load_xilinx.sh\r
-\r
-Initialisieren: ./setaddress_sn000 -> TRBnet-Adresse 0x42 wird zugewiesen\r
-\r
-APVs klarmachen: ./init_apvs\r
-\r
-APVs syncen: ./trbbang T 3 0 aa bb cccc\r
-\r
-Sync-Event abholen: ./trbbang I 0 aa bb cccc\r
-\r
-Triggern: ./trbbang T 0 X aa bb cccc\r
-\r
-X: 0 -> RAW128 mode (all channels raw)\r
-   1 -> PED128 mode (all channels pedestal corrected)\r
-   2 -> PED128THR mode (mode 1 + threshold comparison)\r
-   3 -> reserved\r
-   4 -> NC64PED64\r
-   5 -> NC64\r
-   6 -> NC64GOOD\r
-   7 -> NC64THR\r
-\r
-############################################################################################\r
-\r
-Datenformat:\r
-\r
-D[31]     0 -> Daten, 1 -> Debug\r
-D[30:28]  sector number\r
-D[27:25]  module number\r
-D[24:21]  APV number\r
-D[20:14]  channel number\r
-D[13:0]   ADC data\r
-\r
-Debug:\r
-\r
-D[30:28]  sector number\r
-D[27:25]  module number\r
-D[24:21]  APV number\r
-D[20]     bad buffer\r
-D[19]     buffer not valid\r
-D[18]     frame counter error\r
-D[17]     row error\r
-D[16]     APV error bit set\r
-D[15:12]  number of frames requested\r
-D[11:8]   current frame number\r
-D[7:0]    row information (if available)\r
-\r
-\r
-\r
-\r
-\r
-\r
-############################################################################################\r
-\r
-Es gibt vier Kontrollregister im APV, die die Boardkonfiguration beeinflussen:\r
-\r
-0xc0: [31]    RESET_SYS\r
-      [30]    RESET_APV\r
-      [29]    RESET_ADC\r
-      [26]    POWERDOWN_ADC1\r
-      [25]    POWERDOWN_ADC0\r
-      [24]    reserved, do not use\r
-      [16]    LED auf Backplane :-)\r
-      [15:0]  APV_ON\r
-\r
-0xc1: [31]    reset PLL ADC1\r
-      [27:24] Phase PLL ADC1\r
-      [23]    reset PLL ADC0\r
-      [19:16] Phase PLL ADC0\r
-      [14:12] debug output select ADC1\r
-      [10:8]  debug output select ADC0\r
-      [7]     reset PLL 40MHz\r
-      [3:0]   Phase CLK ADC / APV\r
-      \r
-0xc2: [31:28] maximum number of APV frames / event (= 0x3)\r
-      [23:20] TODO hardware trigger 2\r
-      [19:16] DELAY hardware trigger 2\r
-      [15:12] TODO hardware trigger 1\r
-      [11:8]  DELAY hardware trigger 1\r
-      [7:4]   TODO hardware trigger 0\r
-      [3:0]   DELAY hardware trigger 0\r
-      \r
-0xc3: [31:24] BitHigh setting\r
-      [23:16] BitLow setting\r
-      [15:8]  FlatHigh setting\r
-      [7:0]   FlatLow setting\r
-\r
-\r
index 1781302cd0acf41cd08e91079d1da0c3e29c3652..3457ab81f2aeb6fe8bbd0c73fa94e58f82b0363e 100644 (file)
@@ -117,6 +117,8 @@ int main(int argc, char ** argv)
 
   /* Loop Triggers */
   while(evtCounter < numEvts) {
+    unsigned int len;
+    
     /* Block signals */
     sigprocmask(SIG_BLOCK, &blockSet, NULL);
     
@@ -132,14 +134,25 @@ int main(int argc, char ** argv)
       fprintf(stderr, "Error IPU Read\n");
       exit(EXIT_FAILURE);
     }
-
+    
+    /* There must be a DHDR --> size must be at least >= 2 */
+    if (size < 2) {
+      fprintf(stderr, "DHRD error, size=%d\n", size);
+      exit(EXIT_FAILURE);
+    }
+    len = ((buffer[1] >> 16) & 0xffff) + 2;
+    if (len >= size) {
+      fprintf(stderr, "DHRD len error, len=%d  size=%d\n", len, size);
+      exit(EXIT_FAILURE);
+    } 
+    /*fprintf(stderr, "number padding zeros: %d\n", size - len);*/
     if (writeToStdout == 1) {
       fprintf(stdout, "Trigger# %d\n", trgNumber);
-      for (i = 0; i < size; i++) {
+      for (i = 0; i < len; i++) {
         fprintf(stdout, "0x%08x\n", buffer[i]);
       }
     } else {
-      if (fwrite((void*)buffer, 4, size, hldFile) != size) {
+      if (fwrite((void*)buffer, 4, len, hldFile) != len) {
         perror("Writing to File failed");
         exit(EXIT_FAILURE);
       }