Skip to content
Snippets Groups Projects
Commit 94332f29 authored by Satoru Yamada's avatar Satoru Yamada
Browse files

event counts are not reset when run is changed.

parent 5761f047
No related branches found
No related tags found
1 merge request!56links
......@@ -161,8 +161,6 @@ int crc_calc_event( unsigned int* data, int start_pos ){
}
if( bad ){
// if( evenum > 50000 ){
// if( 1 ){
for( i = 0 ; i < size ; i++){
printf("%.8x ", data[ ( start_pos + i ) % DMASIZE ] );
if( i % 8 == 7 ) printf("\n");
......@@ -248,7 +246,7 @@ int crc_calc_event( unsigned int* data, int start_pos ){
int offset;
unsigned int next_exp_run, cur_exp_run = 0, evenum, ctime, utime, first_eve = 0;
int start_pos = 0;
int cnt = 0;
int cnt = 0, dma_cnt = 0;
int eve_cnt = 0, first_event_flag = 0, crc_err_eve_cnt = 0;
......@@ -267,6 +265,7 @@ int crc_calc_event( unsigned int* data, int start_pos ){
//res = ecs_write( 0 , 2 , 0x000501A0 , 0x1 ) ;
//sleep(5);
res = pcie40_b2dmapointerread( 0 , &data ) ;
dma_cnt++;
if ( start_flag == 1 ){
ecs_write( 0 , 2 , 0x000501A0 , 0x0 ) ;
start_flag = 0;
......@@ -282,19 +281,24 @@ int crc_calc_event( unsigned int* data, int start_pos ){
//
while( 1 ){
while( 1 ){
// if( ( data[ ( cur_pos + 1 ) % DMASIZE ] & 0xffff0000 ) == 0x7f7f0000 ){
// printf("HEAD %.8x TRAIL %.8x\n", data[ ( cur_pos + 1 ) % DMASIZE ],
// data[ ( cur_pos + data[ cur_pos % DMASIZE ] - 1 + DMASIZE ) % DMASIZE ] );
// }
// if( !( ( ( ( magic = data[ ( cur_pos + 1 ) % DMASIZE ] ) & 0xffff0000 ) != 0x7f7f0000 ) ) ){
if( !( ( ( ( magic = data[ ( cur_pos + 1 ) % DMASIZE ] ) & 0xffff0000 ) != 0x7f7f0000 )
|| data[ ( cur_pos + data[ cur_pos % DMASIZE ] - 1 + DMASIZE ) % DMASIZE ] != 0x7fff0006 ) ){
|| data[ ( cur_pos + data[ cur_pos % DMASIZE ] - 1 + DMASIZE ) % DMASIZE ] != 0x7fff0006 ) ){
break;
}
// printf("MAGIC %.8x\n", magic);
// usleep(1000); // to avoid BUSY loop
//
// Refresh DMA memory
//
res = pcie40_b2dmapointerread( 0 , &data ) ;
dma_cnt++;
int wait_flag = 0;
//
// Scan to find x"7f7f...."
//
......@@ -309,9 +313,11 @@ int crc_calc_event( unsigned int* data, int start_pos ){
next_eve = data[ ( cur_pos + j + 3 ) % DMASIZE ];
next_exp_run = data[ ( cur_pos + j + 2 ) % DMASIZE ] ;
printf( "7f7f is found. TRAILER %.8x eve %.8x exprun %.8x pos %d\n",
if( dma_cnt % 1000 == 0 ){
printf( "7f7f is found. TRAILER %.8x eve %.8x exprun %.8x pos %d dmacnt %d\n",
data[ ( cur_pos + j + data[ ( cur_pos + j + DMASIZE ) % DMASIZE ] - 1 + DMASIZE ) % DMASIZE ],
next_eve, next_exp_run, ( cur_pos + j + 1 ) % DMASIZE );
next_eve, next_exp_run, ( cur_pos + j + 1 ) % DMASIZE, dma_cnt );
}
if( next_eve > cur_eve && next_exp_run >= cur_exp_run ){
/* if( data[ ( ( data[ ( cur_pos + j + DMASIZE ) % DMASIZE ] ) - 1 + DMASIZE ) % DMASIZE ] != 0x7fff0006 ){ */
......@@ -334,18 +340,22 @@ int crc_calc_event( unsigned int* data, int start_pos ){
cnt++;
}
size = data[ cur_pos ] ;
//
// Check event-data
//
next_eve = data[ ( cur_pos + 3 ) % DMASIZE ];
next_exp_run = data[ ( cur_pos + 2 ) % DMASIZE ];
if( first_event_flag == 0 || cur_exp_run != next_exp_run ){
first_event_flag = 1;
first_eve = next_eve;
crc_err_eve_cnt = 0;
eve_cnt = 0;
// crc_err_eve_cnt = 0;
// eve_cnt = 0;
}
eve_cnt++;
ret = crc_calc_event( data, cur_pos );
// printf("crc ret %d cnt %d\n", eve_cnt);
if( ret != 1 ){
crc_err_eve_cnt++;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment