14 const std::vector<GIntegralPayload*>* intPayloadvec = frameRunData->
getIntegralPayload();
17 frame_data.resize(header_offset, 0);
21 std::vector<std::uint32_t>
const super_magic = {0xC0DA2019, 0XC0DA0001};
22 ofile->write(
reinterpret_cast<const char*
>(super_magic.data()),
sizeof(std::uint32_t) * 2);
29 dataFrameHeader.
magic = 0xC0DA2019;
31 dataFrameHeader.
flags = 0;
33 dataFrameHeader.
ts_sec = llswap((frameID * 65536) /
static_cast<int>(1e9));
34 dataFrameHeader.
ts_nsec = llswap((frameID * 65536) %
static_cast<int>(1e9));
37 unsigned int crate = 0;
38 unsigned int slot, channel, charge, time;
39 unsigned int slots = 16;
41 frame_data.resize(header_offset);
42 frame_data.push_back(0x80000000);
43 frame_data.insert(frame_data.end(), slots, 0);
45 for (
unsigned int i = 0; i < slots; ++i) {
46 int starting_point = (int)frame_data.size() - header_offset;
47 frame_data.push_back(0x80008000 | (crate << 8) | i);
50 for (
unsigned int hit = 0; hit < intPayloadvec->size(); ++hit) {
52 std::vector<int> payload = intpayload->
getPayload();
60 frame_data.push_back(charge | (channel << 13) | ((time / 4) << 17));
66 if (hit_counter == 0) {
67 frame_data.pop_back();
73 frame_data[header_offset + 1 + i] =
74 ((hit_counter) << 16) | starting_point;
88bool 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 successfully.
JLAB SRO binary frame streamer declarations.
std::vector< int > getPayload() const