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
7
8PacketFmt::PacketFmt(const uint8_t* const aPtr, const size_t aNrBytes) :
9 mData(1, std::pair<const uint8_t*, size_t>(aPtr, aNrBytes))
10{}
11
12
13PacketFmt::PacketFmt(const std::vector< std::pair<const uint8_t*, size_t> >& aData) :
14 mData(aData)
15{}
16
17
20
21
22std::ostream& operator<<(std::ostream& aStream, const PacketFmt& aPacket)
23{
24 std::ios::fmtflags lOrigFlags( aStream.flags() );
25
26 size_t lNrBytesWritten = 0;
27 for (size_t i = 0; i < aPacket.mData.size(); i++) {
28 for (const uint8_t* lPtr = aPacket.mData.at(i).first; lPtr != (aPacket.mData.at(i).first + aPacket.mData.at(i).second); 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
45
46std::ostream& operator<<(std::ostream& aStream, const DMAFmt& aPacket)
47{
48 std::ios::fmtflags lOrigFlags( aStream.flags() );
49
50 size_t lNrBytesWritten = 0;
51 for (size_t i = 0; i < aPacket.mData.size(); i++) {
52 for (const uint8_t* lPtr = aPacket.mData.at(i).first; lPtr != (aPacket.mData.at(i).first + aPacket.mData.at(i).second); lPtr++, lNrBytesWritten++) {
53 if ((lNrBytesWritten & 63) == 0)
54 aStream << std::endl << " @ " << std::setw(3) << std::dec << (lNrBytesWritten >> 2) << " : x";
55 aStream << std::setw(2) << std::hex << uint16_t(*lPtr) << " ";
56 }
57 }
58
59 aStream.flags( lOrigFlags );
60 return aStream;
61}
62
63
64
65} // 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:8
std::ostream & operator<<(std::ostream &aStream, const PacketFmt &aPacket)