Skip to content

Conversation

RFnexus
Copy link
Contributor

@RFnexus RFnexus commented Feb 1, 2025

This PR adds additional interfaces and interface options to MeshChat:

  • Add shared interface settings:
    • mode - select input
      • Only displayed when Transport mode is enabled
      • Options:
        • full
        • gateway
        • access_point
        • roaming
        • boundary
    • bitrate - inferred bitrate, numeric input
    • network name - text input
    • passphrase - text input
    • ifac_size - numeric input from 8 to 512
  • Additions to RNode interface UI:
    • Added noise floor reported from RNode to Interface component under stats
    • Separated frequency into GHz, MHz, and kHz for easier input
    • Added dropdown for on-air bitrate, link budget, and rx sensitivity calculations - https://unsigned.io/understanding-lora-parameters/
    • Additional options dropdown for airtime limit and callsign ID
  • Added additional options to AutoInterface, TCPClient, TCPServer, and UDP interfce
  • Added additional interface types:
    • RNodeMultiInterface
      • Add sub-interfaces from dropdown
    • I2P interface
      • I2P Peers can be added from dropdown
    • Serial interface
    • KISS Interface
      • AX.25 KISS Interface - checkbox will determine whether to use KISSInterface or AX25KISSInterface - "Use AX.25"
    • Pipe interface

This PR also contains a small fix for text not wrapping in the Micron .nodeContent container in components/nomadnetwork/NomadNetworkPage.vue

Copy link
Owner

Choose a reason for hiding this comment

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

Yeah, I fought with this one for a while when I originally made the change to text-wrap.

It does fix the text wrapping, but now it's not possible to have the full width background colours. I spent too long on it when I last looked, but it's not something I really care for ;) It makes more sense for the text to wrap like you have it.

With text-wrap:

Screenshot 2025-02-01 at 11 20 09 PM

With break-words whitespace-pre-wrap:

Screenshot 2025-02-01 at 11 20 24 PM

Copy link
Contributor

@LinuxinaBit LinuxinaBit Feb 1, 2025

Choose a reason for hiding this comment

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

Theoretically, whitespace-pre-wrap should preserve whitespace and only create new lines "at newline characters, at <br>, and as necessary to fill line boxes."

Shouldn't the full-width background colors be preserved?
If not maybe look into using these block characters ███ somehow...

Copy link
Contributor

@LinuxinaBit LinuxinaBit Feb 1, 2025

Choose a reason for hiding this comment

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

whitespace-pre-wrap might, however, also fix the long standing issue of centered elements not being properly centered, i.e. on this node: da305c3ead2bb7ae38cf8e97afadbd1c:/page/index.mu

MeshChat right now:
image
vs NomadNet:
image

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, the centering is a pretty important one to get fixed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is an issue with the JavaScript Micron parser that I need to fix. I also noticed that the links up at the top seem to be a bit broken. It just has to do with how it is expecting the positions of the tag which may not always be how they are written. That node looks great for testing though. I'll try and get this done by tomorrow.

Copy link
Contributor

Choose a reason for hiding this comment

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

Awesome stuff @RFnexus! Your work on this has really moved things forward!

@markqvist
Copy link
Contributor

I'd like to suggest not having the shared interface configurable, that should be handled by Reticulum itself. Or am I misunderstanding, and what you are calling "shared interface" here, is actually AutoInterface?

@liamcottle
Copy link
Owner

liamcottle commented Feb 1, 2025

I'd like to suggest not having the shared interface configurable, that should be handled by Reticulum itself. Or am I misunderstanding, and what you are calling "shared interface" here, is actually AutoInterface?

@markqvist I'll end up renaming this section. It's meant for settings that are shared across all interfaces (more namely common settings), not actually the SharedInterface :)

In the process of refactoring and clean up, so will make sure it's not confused with the internal SharedInterface when it gets merged in!

Btw, thank you very much for your work on this @RFnexus !!!

@markqvist
Copy link
Contributor

Ah, thank @liamcottle, that makes sense! I was the first test subject, apparently, and failed the test ;)

@RFnexus
Copy link
Contributor Author

RFnexus commented Feb 1, 2025

I'd like to suggest not having the shared interface configurable, that should be handled by Reticulum itself. Or am I misunderstanding, and what you are calling "shared interface" here, is actually AutoInterface?

@markqvist I'll end up renaming this section. It's meant for settings that are shared across all interfaces (more namely common settings), not actually the SharedInterface :)

In the process of refactoring and clean up, so will make sure it's not confused with the internal SharedInterface when it gets merged in!

Btw, thank you very much for your work on this @RFnexus !!!

Yeah I was trying to find the right verbiage for that. "Shared" definitely can get confused with the actual RNS instance settings, but "Common" sounds like they are "common" options used for the interface, (like commonly used) - I tried to address that by putting the "these are optional" label under it. "Common" is definitely better suited though. It's also how they are referenced in the manual.

@skyguy
Copy link

skyguy commented Feb 2, 2025

Can I be cheeky and ask you to add support for the SOCKSClientInterface I wrote? [1]

It takes the same settings as TCPClientInterface, but also 'proxy_host' and 'proxy_port'.
proxy_host has a default value of '127.0.0.1' and proxy_port has a default value of 9150.

Thanks!
-Kevin

[1] https://codeberg.org/SkyGuy/reti_socks_client

@markqvist
Copy link
Contributor

@skyguy it will need to be merged into Reticulum as well first, so before that has happened, it won't work here.

@skyguy
Copy link

skyguy commented Feb 2, 2025

MeshChat doesn't need the module to edit the config file, and it works if the user adds the module to their .reticulum/interfaces/ folder.

@markqvist
Copy link
Contributor

Ah yes, you're right of course @skyguy. But it will probably need additional logic to check if the module is actually loaded, so users are not presented with an interface type as configurable, but the it actually can't start because the module is not loaded.

@RFnexus
Copy link
Contributor Author

RFnexus commented Feb 2, 2025

Can I be cheeky and ask you to add support for the SOCKSClientInterface I wrote? [1]

It takes the same settings as TCPClientInterface, but also 'proxy_host' and 'proxy_port'. proxy_host has a default value of '127.0.0.1' and proxy_port has a default value of 9150.

Thanks! -Kevin

[1] https://codeberg.org/SkyGuy/reti_socks_client

@skyguy CustomInterfaces can definitely be added. My idea for that was just a input field for the interface name and a dropdown for adding key value pairs for whatever that interface expects.

Nice work on that feature btw. I tested it and it worked great

@skyguy
Copy link

skyguy commented Feb 2, 2025

Nice work on that feature btw. I tested it and it worked great

Thanks! I had help from the Chaosnet node's struggles - flushed out some bugs in my error handling!

@markqvist
Copy link
Contributor

markqvist commented Feb 2, 2025

What problems did you see on the node @skyguy? Sorry for hijacking this thread for random chatter, though, maybe should move it to another discussion. Just curious, though.

@liamcottle liamcottle merged commit 176aed9 into liamcottle:master Feb 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants