8 #include <common/include/CommonProfilingUtils.hpp> 20 void PeriodicCounterCaptureCommandHandler::ParseData(
const arm::pipe::Packet& packet)
22 std::vector<uint16_t> counterIds;
23 std::vector<uint32_t> counterValues;
31 if (packet.GetLength() >= 8)
35 uint64_t timestamp =
arm::pipe::ReadUint64(reinterpret_cast<const unsigned char*>(packet.GetData()), offset);
37 if (m_FirstTimestamp == 0)
39 m_FirstTimestamp = timestamp;
43 m_SecondTimestamp = timestamp;
45 m_FirstTimestamp = m_SecondTimestamp;
49 unsigned int counters = (packet.GetLength() - 8) / 6;
53 counterIds.reserve(counters);
54 counterValues.reserve(counters);
56 offset += sizeOfUint64;
57 for (
unsigned int pos = 0; pos < counters; ++pos)
59 counterIds.emplace_back(
61 offset += sizeOfUint16;
63 counterValues.emplace_back(
65 offset += sizeOfUint32;
78 if (!m_QuietOperation)
80 std::string header, body, uidString, valueString;
84 uidString.append(std::to_string(uid));
85 uidString.append(
", ");
90 valueString.append(std::to_string(val));
91 valueString.append(
", ");
103 if (!m_HeaderPrinted)
106 header.append(
" | ");
108 header.append(
" | ");
110 header.append(
" | ");
115 m_HeaderPrinted =
true;
118 std::cout << std::string(body.size(),
'-') <<
"\n";
uint64_t ReadUint64(const IPacketBufferPtr &packetBuffer, unsigned int offset)
uint16_t ReadUint16(const IPacketBufferPtr &packetBuffer, unsigned int offset)
Copyright (c) 2021 ARM Limited and Contributors.
uint64_t m_CurrentPeriodValue
std::vector< uint32_t > m_Values
CounterCaptureValues m_CounterCaptureValues
std::vector< uint16_t > m_Uids
uint32_t ReadUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset)
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
std::string CentreAlignFormatting(const std::string &stringToPass, const int spacingWidth)
void operator()(const arm::pipe::Packet &packet) override