mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-18 08:12:57 +00:00
Compare commits
5 Commits
07424c43e5
...
a1ddca436d
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a1ddca436d | ||
![]() |
692b47db14 | ||
![]() |
6d54d95851 | ||
![]() |
295278bb12 | ||
![]() |
ec6949fdc0 |
@ -248,25 +248,25 @@ NodeDB::NodeDB()
|
||||
}
|
||||
#ifdef USERPREFS_FIXED_GPS
|
||||
if (myNodeInfo.reboot_count == 1) { // Check if First boot ever or after Factory Reset.
|
||||
meshtastic_Position FixedGPS = meshtastic_Position_init_default;
|
||||
meshtastic_Position fixedGPS = meshtastic_Position_init_default;
|
||||
#ifdef USERPREFS_FIXED_GPS_LAT
|
||||
FixedGPS.latitude_i = (int32_t)(USERPREFS_FIXED_GPS_LAT * 1e7);
|
||||
FixedGPS.has_latitude_i = true;
|
||||
fixedGPS.latitude_i = (int32_t)(USERPREFS_FIXED_GPS_LAT * 1e7);
|
||||
fixedGPS.has_latitude_i = true;
|
||||
#endif
|
||||
#ifdef USERPREFS_FIXED_GPS_LON
|
||||
FixedGPS.longitude_i = (int32_t)(USERPREFS_FIXED_GPS_LON * 1e7);
|
||||
FixedGPS.has_longitude_i = true;
|
||||
fixedGPS.longitude_i = (int32_t)(USERPREFS_FIXED_GPS_LON * 1e7);
|
||||
fixedGPS.has_longitude_i = true;
|
||||
#endif
|
||||
#ifdef USERPREFS_FIXED_GPS_ALT
|
||||
FixedGPS.altitude = USERPREFS_FIXED_GPS_ALT;
|
||||
FixedGPS.has_altitude = true;
|
||||
fixedGPS.altitude = USERPREFS_FIXED_GPS_ALT;
|
||||
fixedGPS.has_altitude = true;
|
||||
#endif
|
||||
#if defined(USERPREFS_FIXED_GPS_LAT) && defined(USERPREFS_FIXED_GPS_LON)
|
||||
FixedGPS.location_source = meshtastic_Position_LocSource_LOC_MANUAL;
|
||||
fixedGPS.location_source = meshtastic_Position_LocSource_LOC_MANUAL;
|
||||
config.has_position = true;
|
||||
info->has_position = true;
|
||||
info->position = TypeConversions::ConvertToPositionLite(FixedGPS);
|
||||
nodeDB->setLocalPosition(FixedGPS);
|
||||
info->position = TypeConversions::ConvertToPositionLite(fixedGPS);
|
||||
nodeDB->setLocalPosition(fixedGPS);
|
||||
config.position.fixed_position = true;
|
||||
#endif
|
||||
}
|
||||
@ -824,7 +824,7 @@ void NodeDB::loadFromDisk()
|
||||
// disk we will still factoryReset to restore things.
|
||||
|
||||
// static DeviceState scratch; We no longer read into a tempbuf because this structure is 15KB of valuable RAM
|
||||
auto state = loadProto(prefFileName, sizeof(meshtastic_DeviceState) + MAX_NUM_NODES * sizeof(meshtastic_NodeInfo),
|
||||
auto state = loadProto(prefFileName, sizeof(meshtastic_DeviceState) + MAX_NUM_NODES_FS * sizeof(meshtastic_NodeInfo),
|
||||
sizeof(meshtastic_DeviceState), &meshtastic_DeviceState_msg, &devicestate);
|
||||
|
||||
// See https://github.com/meshtastic/firmware/issues/4184#issuecomment-2269390786
|
||||
@ -843,6 +843,10 @@ void NodeDB::loadFromDisk()
|
||||
meshNodes = &devicestate.node_db_lite;
|
||||
numMeshNodes = devicestate.node_db_lite.size();
|
||||
}
|
||||
if (numMeshNodes > MAX_NUM_NODES) {
|
||||
LOG_WARN("Node count %d exceeds MAX_NUM_NODES %d, truncating", numMeshNodes, MAX_NUM_NODES);
|
||||
numMeshNodes = MAX_NUM_NODES;
|
||||
}
|
||||
meshNodes->resize(MAX_NUM_NODES);
|
||||
|
||||
state = loadProto(configFileName, meshtastic_LocalConfig_size, sizeof(meshtastic_LocalConfig), &meshtastic_LocalConfig_msg,
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
|
||||
#include "architecture.h"
|
||||
#include "mesh/generated/meshtastic/admin.pb.h"
|
||||
#include "mesh/generated/meshtastic/deviceonly.pb.h"
|
||||
#include "mesh/generated/meshtastic/localonly.pb.h"
|
||||
@ -20,8 +21,14 @@
|
||||
|
||||
/// max number of nodes allowed in the mesh
|
||||
#ifndef MAX_NUM_NODES
|
||||
#ifdef ARCH_NRF52
|
||||
#define MAX_NUM_NODES 80
|
||||
#else
|
||||
#define MAX_NUM_NODES 100
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define MAX_NUM_NODES_FS 100
|
||||
|
||||
/// Max number of channels allowed
|
||||
#define MAX_NUM_CHANNELS (member_size(meshtastic_ChannelFile, channels) / member_size(meshtastic_ChannelFile, channels[0]))
|
||||
|
@ -1,4 +1,4 @@
|
||||
[VERSION]
|
||||
major = 2
|
||||
minor = 5
|
||||
build = 14
|
||||
build = 13
|
||||
|
Loading…
Reference in New Issue
Block a user