--- yoda/techmodel/forroutines/anticounter/AC.c 2004/12/03 22:08:07 2.2 +++ yoda/techmodel/forroutines/anticounter/AC.c 2004/12/20 14:15:15 2.4 @@ -29,6 +29,43 @@ struct calibstruct calibdata[2]; struct calibstruct *calibpointer; +//Fill physicsdata from buffer +void fillphys(int k,unsigned short *buff) +{ + for(i=0;i<2;i++) physicsdata[k].header[i]=buff[i]; + physicsdata[k].status=buff[2]; + physicsdata[k].hitmap=buff[3]; + for(i=0;i<6;i++) physicsdata[k].regist[i]=buff[4+i]; + for(i=0;i<16;i++) physicsdata[k].shift[i]=buff[10+i]; + for(i=0;i<16;i++) physicsdata[k].counters[i]=buff[26+i]; + for(i=0;i<8;i++) physicsdata[k].coinc[i]=buff[42+i]; + physicsdata[k].trigg=buff[50]; + for(i=0;i<2;i++) physicsdata[k].clock[i]=buff[51+i]; + for(i=0;i<2;i++) physicsdata[k].temp[i]=buff[53+i]; + for(i=0;i<8;i++) physicsdata[k].DAC[i]=buff[55+i]; + physicsdata[k].CRC=buff[63]; + +} + +//Fill calibdata from buffer +void fillcalib(int k,unsigned short *buff) +{ + for(i=0;i<2;i++) calibdata[k].header[i]=buff[i]; + for(i=0;i<5;i++) calibdata[k].status[i]=buff[2+i]; + for(i=0;i<8;i++) calibdata[k].temp[i]=buff[7+i]; + for(i=0;i<8;i++) calibdata[k].DAC1[i]=buff[15+i]; + for(i=0;i<8;i++) calibdata[k].DAC2[i]=buff[23+i]; + for(i=0;i<6;i++) calibdata[k].regist[i]=buff[31+i]; + for(i=0;i<8;i++) calibdata[k].time[i]=buff[37+i]; + calibdata[k].n_tr=buff[45]; + for(i=0;i<16;i++) calibdata[k].hitmap_tr[i]=buff[46+i]; + for(i=0;i<4096;i++) calibdata[k].curve1[i]=buff[62+i]; + for(i=0;i<4096;i++) calibdata[k].curve2[i]=buff[4158+i]; + calibdata[k].iCRC=buff[8254]; + calibdata[k].tail=buff[8255]; + calibdata[k].CRC=buff[8256]; + printf("tail:CRC > %hx:%hx\n",buff[8255],buff[8256]); +} unsigned char ACphysics(int length,unsigned char* datapointer,struct physicsstruct* physicspointer) @@ -45,7 +82,7 @@ tmp1 = ((*datapointer) << 8) | *(datapointer+1); tmp2 = ((*(datapointer+2)) << 8) | *(datapointer+3); - if(tmp1 == 0xAC11 && ((tmp2 == 0xAC11 && (err&0xF0)==0x0) || (tmp2 == 0xAC22 && (err&0x0F)==0x0))) + if(tmp1 == 0xACAC && ((tmp2 == 0xAC11 && (err&0xF0)==0x0) || (tmp2 == 0xAC22 && (err&0x0F)==0x0))) { for(i=0;i<64;i++) @@ -93,7 +130,7 @@ if(tmp1 == 0xACCA && ((tmp2 == 0xAC11 && (err&0xF0)==0x0) || (tmp2 == 0xAC22 && (err&0x0F)==0x0))) { - for(i=0;i<8256;i++) + for(i=0;i<8258;i++) { buffer[i]=((*datapointer) << 8) | *(datapointer+1); datapointer=datapointer+2; @@ -118,39 +155,3 @@ return err; } -//Fill physicsdata from buffer -void fillphys(int k,unsigned short *buff) -{ - for(i=0;i<2;i++) physicsdata[k].header[i]=buff[i]; - physicsdata[k].status=buff[2]; - physicsdata[k].hitmap=buff[3]; - for(i=0;i<6;i++) physicsdata[k].regist[i]=buff[4+i]; - for(i=0;i<16;i++) physicsdata[k].shift[i]=buff[10+i]; - for(i=0;i<16;i++) physicsdata[k].counters[i]=buff[26+i]; - for(i=0;i<8;i++) physicsdata[k].coinc[i]=buff[42+i]; - physicsdata[k].trigg=buff[50]; - for(i=0;i<2;i++) physicsdata[k].clock[i]=buff[51+i]; - for(i=0;i<2;i++) physicsdata[k].temp[i]=buff[53+i]; - for(i=0;i<8;i++) physicsdata[k].DAC[i]=buff[55+i]; - physicsdata[k].CRC=buff[63]; - -} - -//Fill calibdata from buffer -void fillcalib(int k,unsigned short *buff) -{ - calibdata[k].header=buff[0]; - for(i=0;i<5;i++) calibdata[k].status[i]=buff[1+i]; - for(i=0;i<8;i++) calibdata[k].temp[i]=buff[6+i]; - for(i=0;i<8;i++) calibdata[k].DAC1[i]=buff[14+i]; - for(i=0;i<8;i++) calibdata[k].DAC2[i]=buff[22+i]; - for(i=0;i<6;i++) calibdata[k].regist[i]=buff[30+i]; - for(i=0;i<8;i++) calibdata[k].time[i]=buff[36+i]; - calibdata[k].n_tr=buff[44]; - for(i=0;i<16;i++) calibdata[k].hitmap_tr[i]=buff[45+i]; - for(i=0;i<4096;i++) calibdata[k].curve1[i]=buff[61+i]; - for(i=0;i<4096;i++) calibdata[k].curve2[i]=buff[4157+i]; - calibdata[k].iCRC=buff[8253]; - calibdata[k].tail=buff[8254]; - calibdata[k].CRC=buff[8255]; -}