Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. //puts raw data from all 16 channels into a 1D array with 8192
  2. //samples per channel, at position (channel#*8192)+i
  3. void ReadData(FILE *rawInputFile, unsigned int *rawData, unsigned int *buffer)
  4. {
  5. int i, eventNumber;
  6. unsigned int readWord;
  7.  
  8. //read entire event into buffer
  9. fread(buffer, sizeof (unsigned int), 65544, rawInputFile);
  10.  
  11. //put the raw data into the array, "4*(1+i/65536)" skips over the ADC headers which are
  12. //four words in front of each block of 65536 words that make up the raw data
  13. //not efficient
  14. //#pragma omp parallel for
  15. for (i = 0; i < 131072; i += 2) {
  16. rawData[i] = ((buffer[i/2 + 4*(1+i/65536)]&0xFF000000)>>24) + ((buffer[i/2 + 4*(1+i/65536)]&0x00FF0000)>>8);
  17. rawData[i+1] = ((buffer[i/2 + 4*(1+i/65536)]&0x0000FF00)>>8) + ((buffer[i/2 + 4*(1+i/65536)]&0x000000FF)<<8);
  18. }
  19.  
  20. //take the 3 byte event number from ADC0 header (word 3)
  21. readWord = buffer[2];
  22. eventNumber = ((readWord&0xFF000000)>>24) + ((readWord&0x00FF0000)>>8) + ((readWord&0x0000FF00)<<8);
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement