Files
templates/c/set-protocol/ports/android/README.md

1.5 KiB
Raw Blame History

Android port

Android.mk builds libsetprotocol.so from the same C99 sources used by MCU and desktop builds. setprotocol_jni.c contains only JNI marshalling; protocol rules remain in the core. Add the Kotlin directory as an Android source directory and include this Android.mk from the application NDK build.

The JNI streaming parser returns fixed 15-byte records SEQ | FLAGS | CAN_ID_LE | DLC | DATA[8]. Dynamic allocation is confined to the Android adapter for protocol operations; the portable protocol core remains allocation free.

nativeSpectrum calls the shared host DSP module set_spectrum.c (bounded heap workspace, up to 2×16384 doubles). trends/SpectrumAnalyzer maps timestamps and errors but does not duplicate FFT/filter math. Run it off the UI thread. trends/PlotViewport is a toolkit-free normalized zoom/pan model.

legacycan/LegacyCanTerminal.kt contains the two historical CAN_terminal wire formats, the complete Projects.ini node/command catalog, and shared codecs for register writes and command frames. Android UI code must use this module instead of reproducing the Delphi byte rotation or CAN-ID routing rules.

kotlin/ru/setcorp/setprotocol/update/FirmwareCatalog.kt is a UI-independent firmware release client. It reads the optional firmware.releases array from the shared update.json, accepts only HTTPS assets, limits their size and returns image bytes only after SHA-256 verification. Applications provide their own UI and pass optional HTTP Basic credentials.