nds1 changes datablock size near s-trend frame/live data boundary
Looking into issues with reading NDS1 s-trends near the end of the last s-trend frame.
When trending 15 channels (all 5 s-trends of 3 dac kill channells) we have seen nds client errors, that have been traced to the server changing the size of the datablock being sent back. When using 3 other channels (PEM, captured via edcu) this is not seen.
I got a recording of a session where I ask for 15 channels (all 5 trends of 3 DACKILL channels). What I see it this (output by a script I wrote to deconstruct the data stream). block = Block(type=, blen=84, secs=1, gps=1387053872, nano=0, seqnum=0, data=b'@4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10A\xa0\x00\x00A\xa0\x00\x00@4\x00\x00\x00\x00\x00\x00?\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x01?\xf0\x00\x00\x00\x00\x00\x00?\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x01?\xf0\x00\x00\x00\x00\x00\x00') block = Block(type=, blen=28, secs=1, gps=1387053873, nano=0, seqnum=1, data=b'@4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10A\xa0\x00\x00A\xa0\x00\x00@4\x00\x00\x00\x00\x00\x00') Notice the difference in data length (also reflected in the blen field [block length]). The client is erroring out on this difference and just doesn't have a good vocabulary for expressing this. The daqd/nds sent data for all the seconds that I requested, all other blocks where at the smaller [wrong] data length
This doesn't seem to happen when older data is requested. This hints that it is an issue at a boundary between frame and in-memory data.