0 32 2-byte cabin channel (* 16) 32 4 4 byte unused 36 2 2 byte unused 38 2 S Noise Bandwidth 40 2 S Baseline Threshold 42 2 P Noise Bandwidth 44 2 P Baseline Threshold 46 4 Oversize Reject 50 4*nchan 4-byte histogram/bin-data (* nchan) 170 6 Timer response header 176 * PbP Data (12 bytes pere PBP particle)
Data packet back from probe (all unsigned little-endian):
starting byte size contents
0 32 2-byte cabin channel (* 16) 32 4 4 byte unused 36 2 2 byte unused 38 2 S Noise Bandwidth 40 2 S Baseline Threshold 42 2 P Noise Bandwidth 44 2 P Baseline Threshold 46 4 Oversize Reject 50 4*nchan 4-byte histogram/bin-data (* nchan) 170 6 Timer response header 176 * PbP Data (12 bytes pere PBP particle)
- 2080 Raw PbP Data
- 2 2-byte checksum (Total data size without checksum 34 + 4*nchan bytes)
The struct below is set up similar to the above, but because of alignment issues (e.g., the 2-byte unused2 above starts at byte 36 but in the struct below the unused2 will probably be aligned 40 bytes into the struct), we CANNOT do a single wholesale copy to move the packet data into the struct.
Also, the struct is sized to hold the maximum number of channels, while the actual data packet may contain fewer than the maximum.