-
Notifications
You must be signed in to change notification settings - Fork 65
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
Added a plugin manager and 2 plugins #71
Conversation
…as changed in the macro settings window.
…n the netproxy plugin.
This looks good to me. I can't test thoroughly though. At least it runs on my local machine. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Hi Meinhard, I don't have unit tests, but I've profiled with vagrant and tried to find any issues. |
Hi all.
I've added a plugin manager and two plugins.
The plugin manager adds the plugins in a QVBoxLayout (m_pluginsLayout) on the main form.
The supported plugins are listed on the
Plugins
menu, so every new plugin should be added there.The plugin manager is quite simple and the only requirement is that the plugins have a QFrame with a
Plugin
class instance. The frame shouldn't occupy many pixels height on the main window, therefore if many settings or controls are needed then you can use another dialog. The macro and netproxy plugins do exactly that.You can add as many instances of the plugin you like using the plugin menu. Therefore, every plugin must have an unload option to remove itself from the main window.
The plugin manager supports the following functions
For the last one, I'll also add another plugin soon that applies regex to replace data in the outstream.
The plugings are written in a way that you can load multiple instances as long as they don't use the same resources.
The macro plugin allows the user to store macros and it's pretty straight forward. Just press the macro button and the string is sent.
The netproxy plugin allows you to bind a UDP socket and run a TCP server (simultaneously) and proxy data from/to both sides. Therefore, you can send/receive data to the serial port from a UDP/TCP client. I believe there are many people that will find this very convenient and useful.
I've tried to keep things very simple and not add much code in the main code. Therefore in the main window there are only a few new lines of code and everything else is done in the plugin manager.
Dimitris