Skip to content

Nodelist with Playa addresses for burningmesh #7321

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jul 21, 2025

Conversation

tschundler
Copy link
Contributor

@tschundler tschundler commented Jul 13, 2025

  • move the heading list on oled devices from its own page to the carousel
  • new "BRC" page in the UI, a single-column nodelist like this:
    PXL_20250712_220721680 RAW-01 MP COVER

real address will have less text like "4:40&C-30" (30 ft towards the man from C)


this has more copy-paste than I'd normally be comfortable with, but I think more refactor to reduce duplication will make upstream merges more difficult. The refactors (eg single function to display time with units) should be in the main branch.


🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other: t-lora v2

IMPORTANT: This is more likely to introduce bad UI than #7252

@tschundler
Copy link
Contributor Author

...something is wrong with this that is shows commits already in the repo with different IDs

@tschundler
Copy link
Contributor Author

rebased - now the commits are correct.

@vidplace7 vidplace7 requested a review from Xaositek July 13, 2025 18:44
@tschundler
Copy link
Contributor Author

tschundler commented Jul 14, 2025

I noticed it includes nodes with no location at 12:49&407101ft
So I should fix the list to exclude those (maybe an update tomorrow night?)

Please do review, but don't commit yet. (fixed in 17-July commits)

Copy link
Contributor

@Xaositek Xaositek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've looked through the code and flashed it to a RAK4631 and ThinkNode M1; in my opinion, it would be vastly easier to support long term, if we created a standalone frame for all the BRC navigational points that we called on demand.

The way its implemented at the moment results in menu systems unintentionally being available and functionality being moved differently from production code.

@tschundler
Copy link
Contributor Author

tschundler commented Jul 16, 2025

if we created a standalone frame for all the BRC navigational points that we called on demand.

I'm not sure what you mean. What do you mean by "frame" (page/screen something else?), "navigational points" (your friends' locations on playa?) and "on demand"

There's a new page in the list of available screens. How would you get to it other than stepping through the list of screens?

results in menu systems unintentionally being available

Long-press opens the node favorite menu, which was intended - it's a variant on the node list, so that made sense. Or did you mean some other menu?


I'd be inclined to make the screen classes and not have separate places for icon vs menu vs title vs render - all just class methods, etc. It would be just a new class added to a list building up the available screens. But that's a bigger refactor for the main branch someday not by me.

Who knows where the code will actually go. (maybe you do?)

I suspect next year it would be likely re-integrated from scratch - that's why BRC.h/cpp is separate - I expect that will still be valid next year, but not the rest. And the rest I took the approach I did hoping it would be likely to easily merge the next months' changes without getting in the way. But I don't really know what is in the pipeline..

@Xaositek
Copy link
Contributor

Looking at the code, I think we're really close; I would leave the bearings where it currently is and overall just add:
fsi.positions.nodelist_brc = numframes; normalFrames[numframes++] = graphics::NodeListRenderer::drawBRCList; indicatorIcons.push_back(icon_bm);

I would also remove this line as the Node Action frame doesn't apply to the BRC bits (the contents of the menu wouldn't affect the BRC screen).
|| this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_brc

@ews
Copy link

ews commented Jul 19, 2025

Hi @tschundler and @Xaositek, I've implemented the "additive" fix that was discussed. The changes are in this single commit:

ews@9b257e8

I've also created a PR to your fork : tschundler#3

This restores the separate Bearings screen and adds the BRC screen without modifying core functionality. I am absolutely not familiar with this code, so please take a look and suggest changes if needed.

@tschundler
Copy link
Contributor Author

So you find that a better user experience?

Moving the bearings to the rotating pages was a choice for a better UX with fewer pages to step through on a 1-button interface, and less to visually scan in the tabs at the bottom of the screen.

But if others think it's really better with the extra screen to click through, let's use ews' version.

@Xaositek
Copy link
Contributor

So you find that a better user experience?

Moving the bearings to the rotating pages was a choice for a better UX with fewer pages to step through on a 1-button interface, and less to visually scan in the tabs at the bottom of the screen.

But if others think it's really better with the extra screen to click through, let's use ews' version.

The goal here was to ensure the long term simplification of the BRC additions to the firmware. That way next year, if we have merge conflicts or other issues, we have decent parity with the firmware itself and only managing a couple changes directly within the BRC frame.

@vidplace7 vidplace7 merged commit 90385ab into meshtastic:event/burningmesh2025 Jul 21, 2025
50 checks passed
vidplace7 pushed a commit that referenced this pull request Jul 21, 2025
* Move BRC address code to a .cpp file since it will be used from multiple places.

* Nodelist with addresses

* Burning Man icon for BRC page

* Draw last-seen time instead of compass

This is likely more important - don't want to wander to a device that is off.

* Add the bearing list back to the cycled pages on oled devices

* Add bearings screen into the carousel of rotated screens

* trunk fmt

* fix build errors caused by trunk fmt

* correct swapped screen positions for BRC vs bearings display

* don't show playa position if unknown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants