-
Notifications
You must be signed in to change notification settings - Fork 76
tool8
Final version of the java based 'nbtool' system developed by pkoch
Uses json headers, improves reliability when connecting to and controlling the robots, improves java - c++ interface.
Enforces log structure and eases log parsing.
- ant is required to build the tool. use
sudo apt-get update
sudo apt-get install ant
this will also ensure that your machine has java of required version (7).
-
all tool7 preferences will be dropped. After you resize your window again though, you probably will never notice.
-
SExpr in log header replaced with json object. See json. Both c++ and java json libs are internal.
-
Log data field and full log header no longer visible. Instead, each log is divided into
-
global log header as json object
-
array of blocks, each with data and individual json object.
-
See java log interface and c++ log interface
-
logging and controlling a robot is done by duplexing one socket.
-
nbcross may connect to remote hosted tools. use
nbcross -s address_of_tool
this is very useful if you wish to run your java nbtool and nbcross instance on different virtual machines.
-
to run java unit tests, add 'tests' argument to tool invocation
-
c++ tests run automatically by nbcross
-
nbcross functions now accept variable arguments. note that all functions are created with
NBCROSS_FUNCTION(name, va, ...)
where va is a bool indicating variable arguments, and the variadic macro args is an optional list of required arguments. this macro must be immediately followed by
(const std::vector<nbl::logptr> &arguments){ /* your function defition */ }
The parenthesized statement is to make clear the arguments to your function, and is then followed by the bracketed function definition.
-
log sorting / searching / streaming is hard coded to typical values which are 'supposed/typically' to be correct.
-
nbtool has it's own system independent file chooser
-
use tab like on a command line
-
allows creation of arbitrary path structure
-
shows current directory contents, which are click-selectable.
-
may use drag and drop file selection (who does this???)
-
idk. It is easier. Use it. Also it's mandatory so.
-
Log views must specify what log classes they support in their implementation.
-
Log view is instantiated on startup to check conformance.
-
VisionView provides functionality duplicated over many vision-type views.
-
numerous general static classes in nbtool.util provide utility
-
ClassFinder for finding all instances of code in our codebase
-
Debug for debugging output levels and colors. Also, code location in printout
-
Robots for getting full list of robots along with hostnames and ip addresses.
-
SharedConstants for defining constants in LOGGING_CONSTANTS.json to use in both c++ and java
-
note this class is mirrored in Log.hpp (c++)