Old Tool - northern-bites/nbites GitHub Wiki

Pre-requirements

If you set up your code using Linux Setup then you're good to go.

Code Layout

Everything in the Tool is under the namespace tool. Each module has its own namespace, folder and a cmake build file . The main application class is called Tool. This class manages the toolbar and loads all of the other modules. If a module is represented by a widget, it can be added as a tab in the application (Note that not all modules are represented in the generic tool).

Modules

Each module is usually built around a main widget class that takes care of all the GUI or delegates it to some other helper widgets and some other helper classes.

If you want dockable widget functionality then you can have your main module widget inherit from QMainWindow

Getting it to run

By running make tool from the command line while in the src/tool folder should compile and then run the entire Tool. Often this is unnecessary as you only want to use a specific module, such as vision or loc. It is recommended that you only make and run the module that you want to use as it will compile faster and run more quickly. You can run a specific module by entering make <module> while in the tool directory. Some examples of the usage are make vision and make loc (if you want to see all build options, from the command line type make and press tab twice)

Other useful commands include:

make clean which will remove all build files for the tool, forcing cmake to recompile completely the next time you want to compile

make config which gives you cmake options such as building protobufs or changing which field the tool should assume we are using

If you are having issues running the tool, first make sure that you make clean and then make config, and set BUILD_PROTOBUF to "ON", and CMAKE_BUILD_TYPE to "release". Then configure (c), and generate (g), and try running the tool again. Note that you only have to build protobufs once, and after that you should be all set with them.

Window sizing

The Tool saves whatever window configuration you have (screen position, width and height) on close to the file src/tool/.geometry and restores that information on its next open. If your screen resolution is smaller than the Tool's size and you can't reach the window corner to resize it, you can manually change window settings in this file (they are in the order corner X position, corner Y position, window width, window height).

The below is not currently true (3/26/14) but it would be great if someone would re-implement this functionality

Log Viewing

Once a log is viewed, the images in it can be browsed by clicking on the </> buttons on the top toolbar (which advance or reverse one frame) or the <<</>>> buttons (which fast forward and rewind ten frames at a time). The following keys are bound to these functions:

  • A, L: Rewind
  • S, K, P: Previous
  • D, J, N: Next
  • F, H: Fast Forward
⚠️ **GitHub.com Fallback** ⚠️