Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //puts raw data from all 16 channels into a 1D array with 8192
- //samples per channel, at position (channel#*8192)+i
- void ReadData(FILE *rawInputFile, unsigned int *rawData, unsigned int *buffer)
- {
- int i, eventNumber;
- unsigned int readWord;
- //read entire event into buffer
- fread(buffer, sizeof (unsigned int), 65544, rawInputFile);
- //put the raw data into the array, "4*(1+i/65536)" skips over the ADC headers which are
- //four words in front of each block of 65536 words that make up the raw data
- //not efficient
- //#pragma omp parallel for
- for (i = 0; i < 131072; i += 2) {
- rawData[i] = ((buffer[i/2 + 4*(1+i/65536)]&0xFF000000)>>24) + ((buffer[i/2 + 4*(1+i/65536)]&0x00FF0000)>>8);
- rawData[i+1] = ((buffer[i/2 + 4*(1+i/65536)]&0x0000FF00)>>8) + ((buffer[i/2 + 4*(1+i/65536)]&0x000000FF)<<8);
- }
- //take the 3 byte event number from ADC0 header (word 3)
- readWord = buffer[2];
- eventNumber = ((readWord&0xFF000000)>>24) + ((readWord&0x00FF0000)>>8) + ((readWord&0x0000FF00)<<8);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement