Files
HaloKeymind/variants/m5stack_cardputer_adv/CardputerUiMemoryBounds.cpp
mikecarper 64a068506b Merge PR #26: add M5Stack Cardputer-Adv support
Integrate mjgodat's keyboard/display Companion, USB Companion, Repeater and
Room Server support for Cardputer-Adv with Cap LoRa-1262.

Fix UI retry dispatch and ACK ownership, packet/storage bounds, numeric
input validation, sparse channel selection, optional-display shutdown,
keyboard layout limits, reserved GPIOs and Windows cross-drive includes.
Retain all 350 contacts and queue capacity using the existing contact cache;
account for the custom UI's runtime allocations in the RAM admission gate.
Carry the MultiMote and DejaVu notices with firmware packages and add CI
coverage for all four board roles plus the shared T-Deck Companion.

Validation: all four Cardputer roles and the T-Deck BLE Companion build;
Cardputer sanitizer, UI, layout, ownership, licensing and storage tests;
65 RAM-policy tests and 14 contact-cache tests. PlatformIO ran serially.

PR: https://github.com/mikecarper/MeshCore/pull/26
2026-10-27 22:25:35 -07:00

26 lines
1.4 KiB
C++

#if CARDPUTER_ADV_UI
#include "companion_radio/ui-cardputer/screen/SplashScreen.h"
#include "companion_radio/ui-cardputer/screen/MainScreen.h"
#include "companion_radio/ui-cardputer/screen/NewMessageScreen.h"
#include "companion_radio/ui-cardputer/screen/SettingsScreen.h"
#include "companion_radio/ui-cardputer/screen/ToolsScreen.h"
#include "companion_radio/ui-cardputer/screen/main/FirstPage.h"
#include "companion_radio/ui-cardputer/screen/main/ContactsPage.h"
#include "companion_radio/ui-cardputer/screen/main/ChannelsPage.h"
#include "companion_radio/ui-cardputer/screen/main/ChatPage.h"
#include "companion_radio/ui-cardputer/screen/main/RecentAdvertsPage.h"
#include "companion_radio/ui-cardputer/screen/main/StatsPage.h"
#include "companion_radio/ui-cardputer/screen/main/GpsPage.h"
#include "hw/CardputerLayout.h"
// Bind the heap admission model to the actual target ABI. Strings and driver
// allocations have separate additive allowances in check_firmware_ram.py.
static_assert(sizeof(SplashScreen) + sizeof(MainScreen) + sizeof(NewMessageScreen)
+ sizeof(SettingsScreen) + sizeof(ToolsScreen) + sizeof(FirstPage)
+ sizeof(ContactsPage) + sizeof(ChannelsPage) + sizeof(ChatPage)
+ sizeof(RecentAdvertsPage) + sizeof(StatsPage) + sizeof(GpsPage) <= 8192,
"Cardputer screen objects exceed the heap allowance");
static_assert(sizeof(Keyboard::Layout::LayoutLayer) == 225,
"Cardputer keyboard layer size changed; update the heap allowance");
#endif