Subversion Repositories f9daq

Rev

Rev 111 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 111 Rev 118
Line 11... Line 11...
11
#include <sys/time.h>
11
#include <sys/time.h>
12
 
12
 
13
#include "wusbxx_dll.h" /* the header of the shared library */
13
#include "wusbxx_dll.h" /* the header of the shared library */
14
#include "daq.h"
14
#include "daq.h"
15
 
15
 
16
#define DEVICE_NAME "/dev/cc32_1"
-
 
17
#define PRRES(X) printf(">>> %s -> %d\n",#X,(X))
16
#define PRRES(X) printf(">>> %s -> %d\n",#X,(X))
18
 
17
 
19
 
18
 
20
 
19
 
21
/* definiram lokacije enot*/
20
/* definiram lokacije enot*/
Line 102... Line 101...
102
 
101
 
103
 
102
 
104
  long cres;
103
  long cres;
105
  int q,x;  
104
  int q,x;  
106
 
105
 
107
  CSSA_RQX(0,0,0,&cres,&q,&x);
106
  short retval = CSSA_RQX(0,0,0,&cres,&q,&x);
108
  dum = cres;
107
  dum = cres;
109
  id   = (dum & 0xF000) >> 12;
108
  id   = (dum & 0xF000) >> 12;
110
  fpga = (dum & 0x0F00) >> 8;  
109
  fpga = (dum & 0x0F00) >> 8;  
111
  modid =  (dum & 0x00F0) >> 4;
110
  modid =  (dum & 0x00F0) >> 4;
112
  q      =  (dum & 0x0008) >> 3;
111
  q      =  (dum & 0x0008) >> 3;
113
  x      =  (dum & 0x0004) >> 2;
112
  x      =  (dum & 0x0004) >> 2;
114
  inhibit=  (dum & 0x0002) >> 1;
113
  inhibit=  (dum & 0x0002) >> 1;
115
  lam    =  (dum & 0x0001);    
114
  lam    =  (dum & 0x0001);    
116
  printf ("CCUSB CSR ID=%x FPGA=%x modID=%x Q=%d X=%d INHIBIT=%d LAM=%d \n",id,fpga,modid, q,x,inhibit,lam);
115
  printf ("[%d] CCUSB CSR ID=%x FPGA=%x modID=%x Q=%d X=%d INHIBIT=%d LAM=%d \n",retval, id,fpga,modid, q,x,inhibit,lam);
117
}
116
}
118
 
117
 
119
int daq::connect(){
118
int daq::connect(){
120
/*xxusb_device_type devices[100];
-
 
121
struct usb_device *dev;
-
 
122
dev = devices[0].usbdev;
-
 
123
udev = xxusb_device_open(dev);*/
-
 
124
    WUSBXX_load (NULL);
119
    WUSBXX_load (NULL);
125
//    WUSBXX_open ((char *)"CC0126");
120
//    WUSBXX_open ((char *)"CC0126");
126
    WUSBXX_open ((char *)"CC0130");
121
    WUSBXX_open ((char *)"CC0130");
127
    printf("daq::connect()\n");
122
    printf("daq::connect()\n");
128
    return 0;
123
    return 0;
129
}
124
}
130
 
125
 
131
int daq::disconnect(){
126
int daq::disconnect(){
132
  /* zakljuci */
127
   /* zakljuci */
133
 
-
 
-
 
128
   if (udev == NULL) ;    WUSBXX_close ();
134
   printf("daq::disconnect()\n");
129
   printf("daq::disconnect()\n");
135
  return 0;
130
  return 0;
136
}
131
}
137
 
132
 
138
int daq::start(int thr_set,int time_set){
133
int daq::start(int thr_set,int time_set){
139
      int q,x;
134
      int q,x;
140
      // printf("Nastavljam  threshold na %d in cas meritve na %d ms\n",thr_set,time_set);
135
      // printf("Nastavljam  threshold na %d in cas meritve na %d ms\n",thr_set,time_set);
141
      long dum;
136
      long dum;
-
 
137
      short retval;
142
      /* postavimo zeljeni prag prozenja */
138
      /* postavimo zeljeni prag prozenja */
143
      CSSA_WQX(NDIS,0,17,thr_set,&q,&x);
139
      retval = CSSA_WQX(NDIS,0,17,thr_set,&q,&x);
-
 
140
      if (retval<0) printf ("USB error %d line %d\n",retval,__LINE__);
-
 
141
 
144
      CSSA_WQX(NDIS,1,17,0,&q,&x);
142
      retval = CSSA_WQX(NDIS,1,17,0,&q,&x);
-
 
143
      if (retval<0) printf ("USB error %d line %d\n",retval,__LINE__);
145
       
144
       
146
      /* stevec postavim na nic */
145
      /* stevec postavim na nic */
147
      CSSA_RQX ( NSCA, 0, 9,&dum, &q,&x);
146
      retval = CSSA_RQX ( NSCA, 0, 9,&dum, &q,&x);
-
 
147
      if (retval<0) printf ("USB error %d line %d\n",retval,__LINE__);
148
   
148
   
149
      /* nastavim dolzino signala */
149
      /* nastavim dolzino signala */
150
      CSSA_WQX(NTGG,0,16,time_set,&q,&x);
150
      retval = CSSA_WQX(NTGG,0,16,time_set,&q,&x);
-
 
151
      if (retval<0) printf ("USB error %d line %d\n",retval,__LINE__);
-
 
152
 
151
      CSSA_RQX(NTGG,0,15,&dum,&q,&x);
153
      retval = CSSA_RQX(NTGG,0,15,&dum,&q,&x);
-
 
154
      if (retval<0) printf ("USB error %d line %d\n",retval,__LINE__);
152
       
155
       
153
      usleep(1000*time_set);
156
      usleep(time_set);
154
      return 0;
157
      return 0;
155
}
158
}
156
 
159
 
157
 
160
 
158
int daq::count(){
161
int daq::count(){
159
    int q,x;    
162
    int q,x;
-
 
163
    short retval=0;    
160
    /* prestejem sunke na posameznem kanalu */    
164
    /* prestejem sunke na posameznem kanalu */    
161
      for ( int ch=0 ; ch<16 ; ch ++ ) {
165
      for ( int ch=0 ; ch<16 ; ch ++ ) {
162
        long data=0;
166
        long data=0;
163
        CSSA_RQX( NSCA, ch, 0, &data, &q,&x);
167
        retval = CSSA_RQX( NSCA, ch, 0, &data, &q,&x);
164
        CSSA_RQX( NSCA, ch, 0, &data, &q,&x);
168
        retval = CSSA_RQX( NSCA, ch, 0, &data, &q,&x);
-
 
169
        if (retval<0) printf ("USB error %d line %d\n",retval,__LINE__);
-
 
170
       
-
 
171
 
165
                // CC USB ne precita v redu CAEN C257 scalerja, 
172
                // CC USB ne precita v redu CAEN C257 scalerja, 
166
                // kanali so zamaknjeni za 1, ce je klic samo en
173
                // kanali so zamaknjeni za 1, ce je klic samo en
167
                // vrednost kanala 0 se pristeje h kanalom 8..16, zato ga ne uporabljamo. 
174
                // vrednost kanala 0 se pristeje h kanalom 8..16, zato ga ne uporabljamo. 
168
                // vajo izvedemo le s kanali 1..15.
175
                // vajo izvedemo le s kanali 1..15.
169
        gData[ch]=data;
176
        gData[ch]=data;
170
//        printf("Kanal:%d Stevilo sunkov: %d \n",ch,data );
177
        printf("[%d] Kanal:%d Stevilo sunkov: %ld \n",retval,ch,data );
171
      }
178
      }
172
      for ( int ch=0 ; ch<16 ; ch ++ ) if (gData[ch]>0) gData[ch]--;
179
      for ( int ch=0 ; ch<16 ; ch ++ ) if (gData[ch]>0) gData[ch]--;
173
     
180
     
174
return 0;
181
return 0;
175
}    
182
}    
Line 211... Line 218...
211
  CAMAC_status();
218
  CAMAC_status();
212
  CCCZ;
219
  CCCZ;
213
  CCCC;
220
  CCCC;
214
 
221
 
215
  CSET_I;
222
  CSET_I;
216
 
223
 
217
  int q,x;  
224
  int q,x;  
218
  long dum;  
225
  long dum;  
219
  printf("Pazi na cas meritve. Kaksen je obseg stevca?\n");
226
  printf("Pazi na cas meritve. Kaksen je obseg stevca?\n");
220
  CSSA_RQX( NTGG, 0, 9, &dum,&q, &x);         /* init TGG */
227
  CSSA_RQX( NTGG, 0, 9, &dum,&q, &x);         /* init TGG */
221
  CSSA_WQX( NTGG, 0,16, 1000,&q, &x);  /* Set preset counting value   */
228
  CSSA_WQX( NTGG, 0,16, 1000,&q, &x);  /* Set preset counting value   */
222
  CSSA_WQX( NTGG, 0,17, 0x2 ,&q, &x );  /* Set Load&Clock Modes */
229
  CSSA_WQX( NTGG, 0,17, 0x2 ,&q, &x );  /* Set Load&Clock Modes */
223
  CSSA_WQX( NDIS, 0,16, 0xffff,&q, &x);/* enable all ch. */
230
  CSSA_WQX( NDIS, 0,16, 0xffff,&q, &x);/* enable all ch. */
224
  CSSA_RQX( NDIS, 0,26, &dum,&q, &x);
231
  CSSA_RQX( NDIS, 0,26, &dum,&q, &x);
225
 
232
 
226
  CREM_I;
233
  CREM_I;
-
 
234
  printf("Initialized\n");
227
 
235
 
228
  return 0;
236
  return 0;
229
}
237
}
230
 
238
 
231
 
239
 
232
 
240
 
233
daq::daq(){
241
daq::daq(){
234
// intercept routine
242
// intercept routine
235
  if (signal (SIGINT, SigInt) == SIG_ERR) perror ("sigignore");
243
  if (signal (SIGINT, SigInt) == SIG_ERR) perror ("sigignore");
Line 254... Line 262...
254
  if (argc>2) sprintf(filename ,"%s",argv[2]);
262
  if (argc>2) sprintf(filename ,"%s",argv[2]);
255
  if (argc>3) time_set  = atoi(argv[3]);
263
  if (argc>3) time_set  = atoi(argv[3]);
256
  daq *d= new daq();
264
  daq *d= new daq();
257
  d->init();
265
  d->init();
258
  d->start(threshold, time_set); // threshold
266
  d->start(threshold, time_set); // threshold
259
 
267
  usleep(time_set*.1);
260
  d->count();
268
  d->count();
261
  d->append(filename);
269
  d->append(filename);
262
  delete d;
270
  delete d;
263
 
271
 
264
return 0;
272
return 0;