Inbound APRS message relay into JS8 mesh.#134
Conversation
|
Kelly, this looks good. As we work on mainwindow.cpp let's try to continue to move affected MainWindow class member functions out of that file if we can. I would say anything reasonable, especially over 50 lines like processTxQueue() could be stripped out of that file. I didn't get 'em all over New Year's. I just stopped at my goal of stripping at least 4,000 lines of code out of that file. At that point we decided that was invasive enough for one sitting. Then as we work on stuff in it, continue that process more in a one-step-at-a-time approach :-) |
Noted... I'll confess I actually wrote this pre-refactor and just massaged it into the new format after the fact. I probably should have paid a LITTLE more attention to the changes in mainwindow. |
|
Yeah, the goal with that is to continue breaking the MainWindow class down. Design a new UI with Qt Creator, then hook the back end engine up to it and strip the current UI integration out of the back end. This is not gonna happen overnight, however! But it's what I need to do to code up an iOS application with SwiftUI, port the back end to Objective-C and hook it up to the front end for an iPad app that can be distributed on the App Store :-) |
Might be worth looking at my Android repo when you get a moment. I split the engine out into its own module that's designed to be pretty portable... The idea being that if someone wanted to port to iOS they'd have a bit of a head start. |
|
@punk-kaos excellent! I may end up stealing your work there! :-) |
Beauty of collaboration, its there for the taking ;) |
|
As long as you're working on MainWindow class, feel free to strip another thousand lines from it :-) Of course, not required. But just in case you got some free time........... LOL! |
wmiler
left a comment
There was a problem hiding this comment.
Please add some doxy blocks to the functions in APRSISClient.cpp that you added. Feel to fixup any docs that are already there. Most of the blocks I added were for testing, so prolly aren't the best, lol!
Otherwise, looks fine. Maybe also a doxy block about how to actually use it.
Whoops, that was on my to-do! I'll get that done! |
|
Ok, split out functions better and added some DOXYGEN docs. |
| /** | ||
| * @brief Handles inbound APRS-IS messages and enqueues JS8 relays. | ||
| */ | ||
| class AprsInboundRelay : public QObject { |
There was a problem hiding this comment.
This is a new class, shouldn't this be moved to JS8_Main with the APRSISClient since it's not tied to a .ui file like the rest of the files in this folder?
| //---------------------------------------------------------- MainWindow | ||
| #include "mainwindow.h" | ||
|
|
||
| #include "aprsinboundrelay.h" |
There was a problem hiding this comment.
I think here I would declare this include in the mainwindow header.
|
@punk-kaos other than a couple minor changes I'm requesting, this looks good! |
Nothing too hard there, I'll get on it. |
|
not a problem. What I'd like to see is the classes in JS8_Main have the header and source files use the same naming convention as the class name. Helps with code maintainability to identify the class. |
Ok, think I got it covered. Let me know if that what you were thinking. |
wmiler
left a comment
There was a problem hiding this comment.
Thanks muchly for the docs!
Good to go from my standpoint once you address @Chris-AC9KH Chris's issue, and pair off another 2500 lines from mainwindow 😈🤪
|
Merged. Thanks! |
PR branch was named same as master Rename new class so file is same name as the class
Adds support for inbound relay from APRS. Listens for message packets in APRS for callsigns in our heard list. If heard it relays them to the host under the existing @APRSIS format.
Example: KI7WKZ: @APRSIS MSG TO: N0CALL THIS IS A MESSAGE FROM APRS! DE APRSCALL-6.
This will be placed in the users message inbox as coming from APRS.
This allows for bidirectional APRS messaging across HF Via JS8 to augment our current unidirectional outbound APRS features.
USE CASES: I hike and camp a lot in remote areas. I often relay APRS messages via NVIS JS8 message out of a deep canyon where VHF wouldn't reach to SMS to reach home, this would allow me to get return messages or to contact WXBOT for weather reports for example.