spaulaus / paass-lc

Acquire and Analyze data from XIA Pixie16 modules
GNU General Public License v3.0
2 stars 7 forks source link

Firmware 34455 does not decode trace length properly #129

Closed spaulaus closed 6 years ago

spaulaus commented 6 years ago

Expected Behavior

Trace lengths are decoded properly while unpacking the XIA data buffers.

Current Behavior

Firmware 34455 doesn't seem to be decoding the trace properly. When the scan runs we get inundated with error messages. They're all from XiaListModeDataDecoder::ReadBuffer() method. The error occurs when the trace length + header doesn't match the event length.

Context

Well, I'm missing big swaths of data, as seen in Issue #120. What's interesting is that this error doesn't kill the scan all the time, which means that sometimes it's decoding properly, but other times its not. I have a feeling this is a symptom of the issue described in Issue #18.

Possible Solution (optional)

Fix the trace length decoding for that firmware revision.

Acceptance Criteria

  1. The scan code doesn't get the wrong trace length for 34455
  2. The scan code decodes other firmware properly

Bug Report

Your Environment

Component Value
Operating system ubuntu
Kernel Version 4.4.0-43-Microsoft
CMake Version 3.5.1
GCC Version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.6) 5.4.0 20160609
ROOT Version 6.13/01
GSL Version 2.4

Steps to Reproduce

  1. Try scanning some data taken with 34455

Error Logs

XiaListModeDataDecoder::ReadBuffer : Eventlength (4) does not correspond to header length (4) and trace length (16384). Skipped a total of 7 buffers in this file. 
spaulaus commented 6 years ago

The issue was in XiaListModeDataMask::ConvertStringToFirmware(). The limits for the conversion were wrong so we were using the wrong data mask with 34455. I adjusted the limits and everything's hunky dory now.

34455

image image

spaulaus commented 6 years ago

R30474

image

Scans without losing any data.

jjvz commented 6 years ago

Woaho!!!