pdxlocations / curses-client-for-meshtastic

GNU General Public License v3.0
19 stars 2 forks source link

Feature Request: Add TraceRoute functionality #8

Open phrogger opened 3 weeks ago

phrogger commented 3 weeks ago

A feature I commonly use on the Web Client when I am remotely accessing a node over TCP is TraceRoute. It is a useful tool to use when trying to figure out how the mesh is actually routing the messages and packets. This feature is currently not implemented in the meshtastic-curses-client.

I have not given a lot of thought as to how to implement the feature. It could be a separate text box with it's own input and display box. Or ... It could be treated as a special case of a message, in which case a special symbol or string is sent as the client currently inputs a message, the input processing recognizes this special symbol or string, perhaps "<>" or "<~>" and sends a trace route request instead of a message. The returned route information could be displayed as the client displays a message, just with a prepend, prefix, and/or a unique color so the user knew it was a trace route result, and not a regular message.

pdxlocations commented 3 weeks ago

Thanks for adding this feature request. I have most the the "plumbing" already implemented in my MQTT client so it shouldn't be too tricky: https://github.com/pdxlocations/Meshtastic-MQTT-Connect/blob/f10b5a36229106bcd2d2fb0b45885e699a0eb807/meshtastic-mqtt-connect.py#L671

For the curses client I'm thinking since it's only used when selecting a node I could have a special character or function key used to initiate the traceroute.