crosstyan 7b0f6a523d feat(emulator): add editable training schema panel
Redesign the DearPyGui emulator into a two-column layout with an interactive training schema editor and runtime preview.

Add JSON load/save support for ST, SM, MT, and RSMT schemes, including draft normalization, conversion to core schemes, and explicit Apply validation so intermediate edits do not restart or block the preview.

Update manual mode to clamp negative mileage, remove speed from manual positioning, preserve stopped runtime state when reloading schemas, and keep linear rendering visible with span-based drawing.

Fix the core linear pingpong render plan so reverse travel remains visible near endpoints and prefix/postfix colors stay tied to physical sides instead of reversing with heading.

Add C++ and Python regressions for schema conversion, emulator edit behavior, manual mode, linear endpoint visibility, and fixed prefix/postfix colors.
2026-05-18 17:23:00 +08:00
2026-05-15 16:02:44 +08:00

track-core

Standalone C++ core for TrackBackFwd track simulation and strip rendering.

This library is intentionally platform-neutral. It does not depend on ESP-IDF, FreeRTOS, protobuf/nanopb, BLE, or hardware LED drivers.

Build

cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failure

When used inside an ESP-IDF project under components/track-core, the same CMakeLists.txt registers an IDF component.

Python bindings

The Python package builds a nanobind extension for the emulator-facing API:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[emulator,test]"
python -m pytest python/tests
python -m track_core.emulator

The DearPyGui emulator can either render a manual static report for boundary checks or load an SM, MT, ST, or RSMT scheme and tick the portable training runtime with explicit frame deltas. Both paths render pixels through the same C++ planner used by firmware adapters.

S
Description
No description provided
Readme 169 KiB
Languages
C++ 70.6%
Python 28.3%
CMake 1.1%