feat:heapmap with value;fix:qcustomplot warning

This commit is contained in:
2025-11-04 10:47:41 +08:00
parent f411ab21cb
commit a07ff7d6b7
9 changed files with 852 additions and 389 deletions

View File

@@ -3,6 +3,7 @@
#include <csignal>
#include <iomanip>
#include <iostream>
#include <memory>
#include <optional>
#include <string>
#include <thread>
@@ -115,40 +116,40 @@ int main(int argc, char** argv) {
// Also demonstrate polling API (in case users don't want callbacks)
while (g_running) {
ffmsep::DecodedFrame df;
if (core.wait_for_frame(df, 200ms)) {
std::cout << "Frame pts=" << df.pts
<< " bytes=" << df.frame.data.size();
if (df.tactile) {
const auto& tf = *df.tactile;
std::shared_ptr<ffmsep::DecodedFrame> df;
if (core.wait_for_frame(df, 200ms) && df) {
std::cout << "Frame pts=" << df->pts
<< " bytes=" << df->frame.data.size();
if (df->tactile) {
const auto& tf = *df->tactile;
std::cout << " addr=" << int(tf.device_address)
<< " func=0x" << std::hex << std::uppercase << int(tf.response_function)
<< std::dec;
if (df.tactile_matrix_size) {
const auto& ms = *df.tactile_matrix_size;
if (df->tactile_matrix_size) {
const auto& ms = *df->tactile_matrix_size;
std::cout << " matrix=" << int(ms.long_edge)
<< "x" << int(ms.short_edge);
}
if (!df.tactile_pressures.empty()) {
std::cout << " pressures=" << df.tactile_pressures.size()
if (!df->tactile_pressures.empty()) {
std::cout << " pressures=" << df->tactile_pressures.size()
<< " values=[";
const std::size_t preview = std::min<std::size_t>(df.tactile_pressures.size(), 8);
const std::size_t preview = std::min<std::size_t>(df->tactile_pressures.size(), 8);
for (std::size_t idx = 0; idx < preview; ++idx) {
if (idx != 0U) {
std::cout << ", ";
}
std::cout << df.tactile_pressures[idx];
std::cout << df->tactile_pressures[idx];
}
if (preview < df.tactile_pressures.size()) {
if (preview < df->tactile_pressures.size()) {
std::cout << ", ...";
}
std::cout << "]";
}
std::cout << "\n raw=";
print_hex(df.frame.data);
print_hex(df->frame.data);
} else {
std::cout << " raw=";
print_hex(df.frame.data);
print_hex(df->frame.data);
}
std::cout << "\n";
}