mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-09 06:32:06 +00:00
drop oem.proto support in favor of userprefs
This commit is contained in:
parent
89c1e041e1
commit
e49e584ae1
@ -186,56 +186,6 @@ static void drawIconScreen(const char *upperMsg, OLEDDisplay *display, OLEDDispl
|
|||||||
display->setTextAlignment(TEXT_ALIGN_LEFT); // Restore left align, just to be kind to any other unsuspecting code
|
display->setTextAlignment(TEXT_ALIGN_LEFT); // Restore left align, just to be kind to any other unsuspecting code
|
||||||
}
|
}
|
||||||
|
|
||||||
static void drawOEMIconScreen(const char *upperMsg, OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y)
|
|
||||||
{
|
|
||||||
// draw an xbm image.
|
|
||||||
// Please note that everything that should be transitioned
|
|
||||||
// needs to be drawn relative to x and y
|
|
||||||
|
|
||||||
// draw centered icon left to right and centered above the one line of app text
|
|
||||||
display->drawXbm(x + (SCREEN_WIDTH - oemStore.oem_icon_width) / 2,
|
|
||||||
y + (SCREEN_HEIGHT - FONT_HEIGHT_MEDIUM - oemStore.oem_icon_height) / 2 + 2, oemStore.oem_icon_width,
|
|
||||||
oemStore.oem_icon_height, (const uint8_t *)oemStore.oem_icon_bits.bytes);
|
|
||||||
|
|
||||||
switch (oemStore.oem_font) {
|
|
||||||
case 0:
|
|
||||||
display->setFont(FONT_SMALL);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
display->setFont(FONT_LARGE);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
display->setFont(FONT_MEDIUM);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
display->setTextAlignment(TEXT_ALIGN_LEFT);
|
|
||||||
const char *title = oemStore.oem_text;
|
|
||||||
display->drawString(x + getStringCenteredX(title), y + SCREEN_HEIGHT - FONT_HEIGHT_MEDIUM, title);
|
|
||||||
display->setFont(FONT_SMALL);
|
|
||||||
|
|
||||||
// Draw region in upper left
|
|
||||||
if (upperMsg)
|
|
||||||
display->drawString(x + 0, y + 0, upperMsg);
|
|
||||||
|
|
||||||
// Draw version and shortname in upper right
|
|
||||||
char buf[25];
|
|
||||||
snprintf(buf, sizeof(buf), "%s\n%s", xstr(APP_VERSION_SHORT), haveGlyphs(owner.short_name) ? owner.short_name : "");
|
|
||||||
|
|
||||||
display->setTextAlignment(TEXT_ALIGN_RIGHT);
|
|
||||||
display->drawString(x + SCREEN_WIDTH, y + 0, buf);
|
|
||||||
screen->forceDisplay();
|
|
||||||
|
|
||||||
display->setTextAlignment(TEXT_ALIGN_LEFT); // Restore left align, just to be kind to any other unsuspecting code
|
|
||||||
}
|
|
||||||
|
|
||||||
static void drawOEMBootScreen(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y)
|
|
||||||
{
|
|
||||||
// Draw region in upper left
|
|
||||||
const char *region = myRegion ? myRegion->name : NULL;
|
|
||||||
drawOEMIconScreen(region, display, state, x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Screen::drawFrameText(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y, const char *message)
|
void Screen::drawFrameText(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y, const char *message)
|
||||||
{
|
{
|
||||||
uint16_t x_offset = display->width() / 2;
|
uint16_t x_offset = display->width() / 2;
|
||||||
@ -1699,9 +1649,6 @@ void Screen::setup()
|
|||||||
// Set the utf8 conversion function
|
// Set the utf8 conversion function
|
||||||
dispdev->setFontTableLookupFunction(customFontTableLookup);
|
dispdev->setFontTableLookupFunction(customFontTableLookup);
|
||||||
|
|
||||||
if (strlen(oemStore.oem_text) > 0)
|
|
||||||
logo_timeout *= 2;
|
|
||||||
|
|
||||||
// Add frames.
|
// Add frames.
|
||||||
EINK_ADD_FRAMEFLAG(dispdev, DEMAND_FAST);
|
EINK_ADD_FRAMEFLAG(dispdev, DEMAND_FAST);
|
||||||
alertFrames[0] = [this](OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) -> void {
|
alertFrames[0] = [this](OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) -> void {
|
||||||
@ -1847,23 +1794,6 @@ int32_t Screen::runOnce()
|
|||||||
showingBootScreen = false;
|
showingBootScreen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we have an OEM Boot screen, toggle after logo_timeout seconds
|
|
||||||
if (strlen(oemStore.oem_text) > 0) {
|
|
||||||
static bool showingOEMBootScreen = true;
|
|
||||||
if (showingOEMBootScreen && (millis() > ((logo_timeout / 2) + serialSinceMsec))) {
|
|
||||||
LOG_INFO("Switch to OEM screen...");
|
|
||||||
// Change frames.
|
|
||||||
static FrameCallback bootOEMFrames[] = {drawOEMBootScreen};
|
|
||||||
static const int bootOEMFrameCount = sizeof(bootOEMFrames) / sizeof(bootOEMFrames[0]);
|
|
||||||
ui->setFrames(bootOEMFrames, bootOEMFrameCount);
|
|
||||||
ui->update();
|
|
||||||
#ifndef USE_EINK
|
|
||||||
ui->update();
|
|
||||||
#endif
|
|
||||||
showingOEMBootScreen = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef DISABLE_WELCOME_UNSET
|
#ifndef DISABLE_WELCOME_UNSET
|
||||||
if (showingNormalScreen && config.lora.region == meshtastic_Config_LoRaConfig_RegionCode_UNSET) {
|
if (showingNormalScreen && config.lora.region == meshtastic_Config_LoRaConfig_RegionCode_UNSET) {
|
||||||
setWelcomeFrames();
|
setWelcomeFrames();
|
||||||
|
@ -187,22 +187,7 @@ CryptoKey Channels::getKey(ChannelIndex chIndex)
|
|||||||
LOG_DEBUG("Expanding short PSK #%d", pskIndex);
|
LOG_DEBUG("Expanding short PSK #%d", pskIndex);
|
||||||
if (pskIndex == 0)
|
if (pskIndex == 0)
|
||||||
k.length = 0; // Turn off encryption
|
k.length = 0; // Turn off encryption
|
||||||
else if (oemStore.oem_aes_key.size > 1) {
|
else {
|
||||||
// Use the OEM key
|
|
||||||
LOG_DEBUG("Using OEM Key with %d bytes", oemStore.oem_aes_key.size);
|
|
||||||
memcpy(k.bytes, oemStore.oem_aes_key.bytes, oemStore.oem_aes_key.size);
|
|
||||||
k.length = oemStore.oem_aes_key.size;
|
|
||||||
// Bump up the last byte of PSK as needed
|
|
||||||
uint8_t *last = k.bytes + oemStore.oem_aes_key.size - 1;
|
|
||||||
*last = *last + pskIndex - 1; // index of 1 means no change vs defaultPSK
|
|
||||||
if (k.length < 16) {
|
|
||||||
LOG_WARN("OEM provided a too short AES128 key - padding");
|
|
||||||
k.length = 16;
|
|
||||||
} else if (k.length < 32 && k.length != 16) {
|
|
||||||
LOG_WARN("OEM provided a too short AES256 key - padding");
|
|
||||||
k.length = 32;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
memcpy(k.bytes, defaultpsk, sizeof(defaultpsk));
|
memcpy(k.bytes, defaultpsk, sizeof(defaultpsk));
|
||||||
k.length = sizeof(defaultpsk);
|
k.length = sizeof(defaultpsk);
|
||||||
// Bump up the last byte of PSK as needed
|
// Bump up the last byte of PSK as needed
|
||||||
|
@ -55,8 +55,6 @@ meshtastic_MyNodeInfo &myNodeInfo = devicestate.my_node;
|
|||||||
meshtastic_LocalConfig config;
|
meshtastic_LocalConfig config;
|
||||||
meshtastic_LocalModuleConfig moduleConfig;
|
meshtastic_LocalModuleConfig moduleConfig;
|
||||||
meshtastic_ChannelFile channelFile;
|
meshtastic_ChannelFile channelFile;
|
||||||
meshtastic_OEMStore oemStore;
|
|
||||||
static bool hasOemStore = false;
|
|
||||||
|
|
||||||
bool meshtastic_DeviceState_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field)
|
bool meshtastic_DeviceState_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field)
|
||||||
{
|
{
|
||||||
@ -684,7 +682,6 @@ static const char *prefFileName = "/prefs/db.proto";
|
|||||||
static const char *configFileName = "/prefs/config.proto";
|
static const char *configFileName = "/prefs/config.proto";
|
||||||
static const char *moduleConfigFileName = "/prefs/module.proto";
|
static const char *moduleConfigFileName = "/prefs/module.proto";
|
||||||
static const char *channelFileName = "/prefs/channels.proto";
|
static const char *channelFileName = "/prefs/channels.proto";
|
||||||
static const char *oemConfigFile = "/oem/oem.proto";
|
|
||||||
|
|
||||||
/** Load a protobuf from a file, return LoadFileResult */
|
/** Load a protobuf from a file, return LoadFileResult */
|
||||||
LoadFileResult NodeDB::loadProto(const char *filename, size_t protoSize, size_t objSize, const pb_msgdesc_t *fields,
|
LoadFileResult NodeDB::loadProto(const char *filename, size_t protoSize, size_t objSize, const pb_msgdesc_t *fields,
|
||||||
@ -785,12 +782,6 @@ void NodeDB::loadFromDisk()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
state = loadProto(oemConfigFile, meshtastic_OEMStore_size, sizeof(meshtastic_OEMStore), &meshtastic_OEMStore_msg, &oemStore);
|
|
||||||
if (state == LoadFileResult::LOAD_SUCCESS) {
|
|
||||||
LOG_INFO("Loaded OEMStore");
|
|
||||||
hasOemStore = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2.4.X - configuration migration to update new default intervals
|
// 2.4.X - configuration migration to update new default intervals
|
||||||
if (moduleConfig.version < 23) {
|
if (moduleConfig.version < 23) {
|
||||||
LOG_DEBUG("ModuleConfig version %d is stale, upgrading to new default intervals", moduleConfig.version);
|
LOG_DEBUG("ModuleConfig version %d is stale, upgrading to new default intervals", moduleConfig.version);
|
||||||
@ -897,11 +888,6 @@ bool NodeDB::saveToDiskNoRetry(int saveWhat)
|
|||||||
saveProto(moduleConfigFileName, meshtastic_LocalModuleConfig_size, &meshtastic_LocalModuleConfig_msg, &moduleConfig);
|
saveProto(moduleConfigFileName, meshtastic_LocalModuleConfig_size, &meshtastic_LocalModuleConfig_msg, &moduleConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We might need to rewrite the OEM data if we are reformatting the FS
|
|
||||||
if ((saveWhat & SEGMENT_OEM) && hasOemStore) {
|
|
||||||
success &= saveProto(oemConfigFile, meshtastic_OEMStore_size, &meshtastic_OEMStore_msg, &oemStore);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (saveWhat & SEGMENT_CHANNELS) {
|
if (saveWhat & SEGMENT_CHANNELS) {
|
||||||
success &= saveChannelsToDisk();
|
success &= saveChannelsToDisk();
|
||||||
}
|
}
|
||||||
@ -922,8 +908,6 @@ bool NodeDB::saveToDisk(int saveWhat)
|
|||||||
#ifdef ARCH_NRF52 // @geeksville is not ready yet to say we should do this on other platforms. See bug #4184 discussion
|
#ifdef ARCH_NRF52 // @geeksville is not ready yet to say we should do this on other platforms. See bug #4184 discussion
|
||||||
FSCom.format();
|
FSCom.format();
|
||||||
|
|
||||||
// We need to rewrite the OEM data if we are reformatting the FS
|
|
||||||
saveWhat |= SEGMENT_OEM;
|
|
||||||
#endif
|
#endif
|
||||||
success = saveToDiskNoRetry(saveWhat);
|
success = saveToDiskNoRetry(saveWhat);
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@ DeviceState versions used to be defined in the .proto file but really only this
|
|||||||
#define SEGMENT_MODULECONFIG 2
|
#define SEGMENT_MODULECONFIG 2
|
||||||
#define SEGMENT_DEVICESTATE 4
|
#define SEGMENT_DEVICESTATE 4
|
||||||
#define SEGMENT_CHANNELS 8
|
#define SEGMENT_CHANNELS 8
|
||||||
#define SEGMENT_OEM 16
|
|
||||||
|
|
||||||
#define DEVICESTATE_CUR_VER 23
|
#define DEVICESTATE_CUR_VER 23
|
||||||
#define DEVICESTATE_MIN_VER 22
|
#define DEVICESTATE_MIN_VER 22
|
||||||
@ -31,7 +30,6 @@ extern meshtastic_ChannelFile channelFile;
|
|||||||
extern meshtastic_MyNodeInfo &myNodeInfo;
|
extern meshtastic_MyNodeInfo &myNodeInfo;
|
||||||
extern meshtastic_LocalConfig config;
|
extern meshtastic_LocalConfig config;
|
||||||
extern meshtastic_LocalModuleConfig moduleConfig;
|
extern meshtastic_LocalModuleConfig moduleConfig;
|
||||||
extern meshtastic_OEMStore oemStore;
|
|
||||||
extern meshtastic_User &owner;
|
extern meshtastic_User &owner;
|
||||||
extern meshtastic_Position localPosition;
|
extern meshtastic_Position localPosition;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user