mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-02 10:51:57 +00:00
feat(l2,core): battery curve editor and an L2 feedback round
- Battery curve: NodePrefs batt_curve_mv[11] (voltage at 0..100 %, all zeros = built-in LiPo curve, sentinel 0xC0DE0032). ui-core/Battery.h uses it for every percentage. L1: Settings > System > Batt curve list (Left/Right 10 mV, Reset); L2: Settings > Power > Battery curve chart with draggable points and a line at the cell's voltage. - L2: the Nodes map is the full navigation map plus the nodes, Back returns to Nodes; the favourite button is lit while it is one; pinning to the Home dial uses a thumbtack (fonts regenerated); minimap dots follow the accent; arranging tiles shows where they land while dragging; emoji row in Diagnostics > Font. - Sim hooks: sim_open nodesmap / accent@N / homeedit / battcurve. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -350,7 +350,9 @@ void UITask::perfMap(bool reset) {
|
||||
#endif
|
||||
|
||||
void UITask::openMap(bool nav) {
|
||||
_map_nav = nav;
|
||||
// One map everywhere (trail, target, tools); from Nodes it adds the nodes.
|
||||
_map_nav = true;
|
||||
_map_nodes = !nav;
|
||||
showMap();
|
||||
}
|
||||
|
||||
@@ -693,7 +695,7 @@ void UITask::rebuildMapMarkers() {
|
||||
mapview::s_mark_prev = mapview::s_mark_count;
|
||||
mapview::s_mark_count = 0;
|
||||
if (_map_nav) rebuildNavMarkers();
|
||||
else rebuildNodeMarkers();
|
||||
if (_map_nodes || !_map_nav) rebuildNodeMarkers();
|
||||
for (int k = mapview::s_mark_count; k < mapview::s_mark_prev; k++) lv_obj_delete(mapview::s_marks[k].obj);
|
||||
mapview::s_mark_prev = 0;
|
||||
layoutNow(_map_marks); // so layoutMap() knows where each dot sits in its marker
|
||||
@@ -704,6 +706,7 @@ void UITask::rebuildNodeMarkers() {
|
||||
for (int i = 0; i < _nearby->count() && mapview::s_mark_count < mapview::MAX_MARKS; i++) {
|
||||
const NearbyModel::Entry& e = _nearby->at(i);
|
||||
if (e.lat_e6 == 0 && e.lon_e6 == 0) continue;
|
||||
if (e.is_live && _map_nav) continue; // the live share's own marker shows it
|
||||
uint32_t col = e.is_live ? theme::OK : e.type == ADV_TYPE_CHAT ? theme::TEXT : theme::TEXT_MUTED;
|
||||
addMapMark(mapview::MK_NODE, i, e.lat_e6, e.lon_e6, col, e.name[0] ? e.name : "?");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user