13 int i, j,rpnt = 0, wpnt = 0, size1, size2,trg = 0,k;
22 freq = (datain[0] >> 16 ) & 0x3;
25 Tsamp =(float)((1.0/2500.0)*1000.0);
28 Tsamp =(float)((1.0/1000.0)*1000.0);
31 Tsamp =(float)((1.0/5000.0)*1000.0);
35 st_ind =(uint16_t)((datain[0]>>20)& 0x3FF);
36 size1 = datain[0]& 0xFFF;
37 if ((trg = (datain[0]>>12)& 0x1) == 1)
38 size2 =(datain[0]>>3)& 0x1FF;
44 samples = ((long) (size1 /3));
46 while (rpnt < size1) {
50 dataout->
DataChannel[0][wpnt] = (float) (datain[rpnt+1] & 0x00000FFF);
51 dataout->
DataChannel[1][wpnt] = (float) ((datain[rpnt+1] & 0x00FFF000) >> 12);
52 dataout->
DataChannel[2][wpnt] = (float) ((datain[rpnt+1] & 0xFF000000) >> 24);
55 dataout->
DataChannel[2][wpnt] += (float) ((datain[rpnt+1] & 0x0000000F) << 8);
56 dataout->
DataChannel[3][wpnt] = (float) ((datain[rpnt+1] & 0x0000FFF0) >> 4);
57 dataout->
DataChannel[4][wpnt] = (float) ((datain[rpnt+1] & 0x0FFF0000) >> 16);
58 dataout->
DataChannel[5][wpnt] = (float) ((datain[rpnt+1] & 0xF0000000) >> 28);
61 dataout->
DataChannel[5][wpnt] += (float) ((datain[rpnt+1] & 0x000000FF) << 4);
62 dataout->
DataChannel[6][wpnt] = (float) ((datain[rpnt+1] & 0x000FFF00) >> 8) ;
63 dataout->
DataChannel[7][wpnt] = (float) ((datain[rpnt+1] & 0xFFF00000) >> 20);
70 for (k=0;k<8;k++) dataout->
ChSize[k] = wpnt;
73 for (i=0; i < size2; i++) {
76 dataout->
DataChannel[8][wpnt] = (float) ( datain[rpnt+i] & 0x00000FFF);
77 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0x00FFF000) >> 12) ;
78 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0xFF000000) >> 24);
81 dataout->
DataChannel[8][wpnt] += (float) ((datain[rpnt+i] & 0x0000000F) << 8);
82 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0x0000FFF0) >> 4);
83 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0x0FFF0000) >> 16);
84 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0xF0000000) >> 28);
87 dataout->
DataChannel[8][wpnt] += (float) ((datain[rpnt+i] & 0x000000FF) << 4);
88 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0x000FFF00) >> 8);
89 dataout->
DataChannel[8][++wpnt] = (float) ((datain[rpnt+i] & 0xFFF00000) >> 20);
96 return (size1+size2+2);