[Daqpp-forum] [Fwd: Re: progress update]
Brought to you by:
lacasta
From: Andrej S. <and...@ij...> - 2007-01-31 16:08:21
|
A DataRecord issue. Look at the original message below and here is Eric's reply. ---------------------------- Original Message ---------------------------= - Subject: Re: progress update From: "Eric Cochran" <coc...@os...> Date: Wed, January 31, 2007 10:41 To: and...@ij... -------------------------------------------------------------------------= - Andrej, Yes, I remember this now, I don't think it was ever resolved. I verified that the correct value of BigDataRecord is used in SecondDetector.cc when the data is passed on in the getData method, but somehow a value 2 greate= r than whatever I set BigDataRecord to gets written to the file. I believe = I asked Carlos about this but don't think I ever got a response. I will loo= k into it again, maybe I know a little more about vmedaq now, but we should probably ask Carlos about it as well to try to clear it up as soon as possible. As a temporary fix, I recall that I made a separate DataFormat.h file for the offline analysis in which I changed the BigDataRecord value to an "a"= or whatever actually got written to the file. -Eric On 1/30/07, Andrej Studen <and...@ij...> wrote: > > Hey Eric! > > I was trying to look at files that we collected last week. Although I w= as > only looking for silicon records the program was crashing. I went in wi= th > a debugger and found that data started with spurious record (here is th= e > pipe out): > > Breakpoint 2, VMEdaq::read (this=3D0xbfe93090) at vmedaq.cc:77 > 77 if (IsBigDataRecord(x)) { > (gdb) print /x x > $10 =3D 0xcafea000 > > Big record should be 0xcafe8000 right? > > (DataFormat.h here reads : > > const unsigned long DataHeader =3D 0xcafe0000; > enum EventType { > StartOfRunRecord =3D 0x1000, > DataRecord =3D 0x2000, > EndOfRunRecord =3D 0x3000, > PedestalRecord =3D 0x4000, > NewPointRecord =3D 0x5000, > MapRecord =3D 0x6000, > ScanRecord =3D 0x7000, > BigDataRecord =3D 0x8000, > }; > > ) > > Is it a coincidence that SIS3300data DataType has an a in it? > > enum DataType { > NormalData =3D 0x10000, > PulseData =3D 0x20000, > ScanData =3D 0x30000, > ADCdata =3D 0x40000, > CSPRINTdata =3D 0x80000, > FBTDCdata =3D 0x90000, > SIS3300data =3D 0xa0000, > SecDetData =3D 0xb0000 > }; > > I guess it crashes because 0xcafea000 is treated as ordinary record wit= h a > size of 0 and then a gzread with a size of -4bytes (ie. one unsigned lo= ng) > is attempted. > > How do we wiggle our way out of this one? > > Andrej > > > > |