Initial standalone track core

This commit is contained in:
2026-05-15 16:02:44 +08:00
commit 84598cad20
15 changed files with 1733 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
#include <iostream>
#include "track_core/memory_strip.hpp"
int main() {
track_core::TrackConfig config{
.draw_kind = track_core::TrackDrawKind::circular,
.line_length_m = 10.0F,
.active_line_length_m = 4.0F,
.head_offset_m = 0.0F,
.line_leds_num = 20,
};
track_core::TrackInfo info{
.kind = track_core::SchemeKind::speed_input_time_segmented_mileage_free,
.color = track_core::Color::green(),
.id = 1,
.is_running = true,
.num_segments = 1,
};
track_core::TrackReport report{
.id = 1,
.state = track_core::TrackState::run,
.mileage_m = 8.5F,
.speed_m_s = 1.0F,
.time_elapsed_ms = 0,
};
track_core::MemoryStrip strip(config.line_leds_num);
const auto plan = track_core::make_track_render_plan(config, info, report);
static_cast<void>(track_core::apply_render_plan(strip, plan));
static_cast<void>(strip.show());
std::cout << "frame=" << strip.frame_sequence() << " leds=" << strip.leds_count() << "\n";
for (std::size_t i = 0; i < plan.span_count; ++i) {
const auto &span = plan.spans[i];
std::cout << "span start=" << span.start_led
<< " count=" << span.led_count
<< " color=" << span.color.hex() << "\n";
}
}