DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
formatters.cpp
Go to the documentation of this file.
2
3#include <iomanip> // for pair
4
5namespace uhallibs {
6
7PacketFmt::PacketFmt(const uint8_t* const aPtr, const size_t aNrBytes)
8 : mData(1, std::pair<const uint8_t*, size_t>(aPtr, aNrBytes))
9{
10}
11
12PacketFmt::PacketFmt(const std::vector<std::pair<const uint8_t*, size_t>>& aData)
13 : mData(aData)
14{
15}
16
18
19std::ostream&
20operator<<(std::ostream& aStream, const PacketFmt& aPacket)
21{
22 std::ios::fmtflags lOrigFlags(aStream.flags());
23
24 size_t lNrBytesWritten = 0;
25 for (size_t i = 0; i < aPacket.mData.size(); i++) {
26 for (const uint8_t* lPtr = aPacket.mData.at(i).first;
27 lPtr != (aPacket.mData.at(i).first + aPacket.mData.at(i).second);
28 lPtr++, lNrBytesWritten++) {
29 if ((lNrBytesWritten & 3) == 0)
30 aStream << std::endl << " @ " << std::setw(3) << std::dec << (lNrBytesWritten >> 2) << " : x";
31 aStream << std::setw(2) << std::hex << uint16_t(*lPtr) << " ";
32 }
33 }
34
35 aStream.flags(lOrigFlags);
36 return aStream;
37}
38
39DMAFmt::DMAFmt(const uint8_t* const aPtr, const size_t aNrBytes)
40 : mData(1, std::pair<const uint8_t*, size_t>(aPtr, aNrBytes))
41{
42}
43
45
46std::ostream&
47operator<<(std::ostream& aStream, const DMAFmt& aPacket)
48{
49 std::ios::fmtflags lOrigFlags(aStream.flags());
50
51 size_t lNrBytesWritten = 0;
52 for (size_t i = 0; i < aPacket.mData.size(); i++) {
53 for (const uint8_t* lPtr = aPacket.mData.at(i).first;
54 lPtr != (aPacket.mData.at(i).first + aPacket.mData.at(i).second);
55 lPtr++, lNrBytesWritten++) {
56 if ((lNrBytesWritten & 63) == 0)
57 aStream << std::endl << " @ " << std::setw(3) << std::dec << (lNrBytesWritten >> 2) << " : x";
58 aStream << std::setw(2) << std::hex << uint16_t(*lPtr) << " ";
59 }
60 }
61
62 aStream.flags(lOrigFlags);
63 return aStream;
64}
65
66} // namespace uhal
const std::vector< std::pair< const uint8_t *, size_t > > mData
DMAFmt(const uint8_t *const, const size_t)
const std::vector< std::pair< const uint8_t *, size_t > > mData
PacketFmt(const uint8_t *const, const size_t)
Definition formatters.cpp:7
std::ostream & operator<<(std::ostream &aStream, const PacketFmt &aPacket)