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
Branches
Tags
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.
Please register or to comment