mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +00:00
New board variant compiling the unmodified MyMesh/UITask/DataStore app logic against real mesh::Radio/MainBoard/RTCClock/RNG interfaces, for running the actual firmware outside embedded hardware: - Native (plain g++, platform = native): ASCII-art display over stdout, stdin-driven input, local-disk-backed DataStore/IdentityStore. - Emscripten/WASM (variants/sim/build_wasm.sh, since PlatformIO's native platform force-overrides any CC/CXX toolchain override back to system clang++): canvas-backed display, IDBFS-backed persistence across page reloads, JS-callable input via sim_enqueue_key(), emscripten_set_main_loop. Real rweather/Crypto (AES128/SHA256/Ed25519) vendored unmodified and proven working on both targets. variants/sim/web/index.html is a bare verification harness, not the polished website embed.
27 lines
843 B
C++
27 lines
843 B
C++
#pragma once
|
|
|
|
#include <MeshCore.h>
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
|
|
// mesh::MainBoard implementation for the native sim build -- no real
|
|
// hardware, so battery/manufacturer/reboot are all just plausible fakes.
|
|
class SimMainBoard : public mesh::MainBoard {
|
|
public:
|
|
void begin() { }
|
|
|
|
uint16_t getBattMilliVolts() override { return 4000; } // pretend full battery
|
|
const char* getManufacturerName() const override { return "MeshCore Sim (native)"; }
|
|
|
|
void reboot() override {
|
|
printf("\n[sim] reboot() requested -- exiting process (rerun the binary to simulate a reboot)\n");
|
|
fflush(stdout);
|
|
exit(0);
|
|
}
|
|
|
|
uint8_t getStartupReason() const override { return BD_STARTUP_NORMAL; }
|
|
|
|
void onBootComplete() override { }
|
|
void sleep(uint32_t secs) override { } // no-op: native process never actually sleeps the CPU
|
|
};
|