Allows driving with the controller. The default subsystem feed IP is set in the constructor. It cannot be modified in the GUI on Linux, but the new Network Settings module is otherwise able to change network settings (Bug #50).
Drive Stats Module
This also adds the drive stats module. It is a simple toolbar with a button, progress bar, and textbox. The button toggles between drive and neutral. The progress bar shows actual speed scaled to the throttle, and the textbox displays the speed. The module has a dynamic calculate size function that will scale the progress bar size (for future use when windows are resizable). Still, this may be better suited as a component of a larger module.
Network Settings Module
Not really a module and not intended for dynamic resizing or embedding in a grid. Allows changing IP/port and other settings related to network. The multicast feed settings do not work correctly on Linux (Bug #50). The cause is entirely unknown and debugging has proven difficult (there are no error messages and the socket appears to operate properly).
Events Library
Multiple unrelated components may be interested in various events emitted across the program. This means trying to share one callback or polling for changing, both of which are inefficient. For instance, multiple drive info modules may wish to update their contents when updates arrive from the rover.
The events library is an extremely simple header-only library with an Emitter and Handler. Handlers can subscribe to emitters. Clean-up is automatic when a handler is destructed.
Summary
Closes #40
Allows driving with the controller. The default subsystem feed IP is set in the constructor. It cannot be modified in the GUI on Linux, but the new Network Settings module is otherwise able to change network settings (Bug #50).
Drive Stats Module
This also adds the drive stats module. It is a simple toolbar with a button, progress bar, and textbox. The button toggles between drive and neutral. The progress bar shows actual speed scaled to the throttle, and the textbox displays the speed. The module has a dynamic calculate size function that will scale the progress bar size (for future use when windows are resizable). Still, this may be better suited as a component of a larger module.
Network Settings Module
Not really a module and not intended for dynamic resizing or embedding in a grid. Allows changing IP/port and other settings related to network. The multicast feed settings do not work correctly on Linux (Bug #50). The cause is entirely unknown and debugging has proven difficult (there are no error messages and the socket appears to operate properly).
Events Library
Multiple unrelated components may be interested in various events emitted across the program. This means trying to share one callback or polling for changing, both of which are inefficient. For instance, multiple drive info modules may wish to update their contents when updates arrive from the rover.
The events library is an extremely simple header-only library with an Emitter and Handler. Handlers can subscribe to emitters. Clean-up is automatic when a handler is destructed.