13 const std::vector<GIntegralPayload*>* intPayloadvec = frameRunData->
getIntegralPayload();
15 frame_data.resize(header_offset, 0);
18 std::vector<std::uint32_t>
const super_magic = {0xC0DA2019, 0XC0DA0001};
19 ofile->write(
reinterpret_cast<const char*
>(super_magic.data()),
sizeof(std::uint32_t) * 2);
26 dataFrameHeader.
magic = 0xC0DA2019;
28 dataFrameHeader.
flags = 0;
30 dataFrameHeader.
ts_sec = llswap((frameID * 65536) /
static_cast<int>(1e9));
31 dataFrameHeader.
ts_nsec = llswap((frameID * 65536) %
static_cast<int>(1e9));
35 unsigned int crate = 0;
36 unsigned int slot, channel, charge, time;
37 unsigned int slots = 16;
39 frame_data.resize(header_offset);
40 frame_data.push_back(0x80000000);
41 frame_data.insert(frame_data.end(), slots, 0);
43 for (
unsigned int i = 0; i < slots; ++i) {
44 int starting_point = (int)frame_data.size() - header_offset;
45 frame_data.push_back(0x80008000 | (crate << 8) | i);
48 for (
unsigned int hit = 0; hit < intPayloadvec->size(); ++hit) {
50 std::vector<int> payload = intpayload->
getPayload();
59 frame_data.push_back(charge | (channel << 13) | ((time / 4) << 17));
64 if (hit_counter == 0) {
65 frame_data.pop_back();
71 frame_data[header_offset + 1 + i] =
72 ((hit_counter) << 16) | starting_point;
85bool GstreamerJSROFactory::endStreamImpl([[maybe_unused]]
const GFrameDataCollection* frameRunData) {
std::shared_ptr< GLogger > log
const GFrameHeader * getHeader() const
const std::vector< GIntegralPayload * > * getIntegralPayload() const
void error(int exit_code, Args &&... args) const
Shared constants and error codes for the gstreamer module.
#define ERR_CANTOPENOUTPUT
Output medium could not be opened (file/device not accessible).
JLAB SRO frame streamer plugin definitions.
std::vector< int > getPayload() const