Backend | Win64 | Linux |
---|---|---|
Opengl 3 |
MacOs is not officially maintained but i think he can compile on it. So i let the cmake infos about MacOs in bottom of this ReadMe.
LogToGraph have been designed to display numerical signals based logs as graph.
The kind of logs you have in mesuring systems like, profiler, electric system/simulator, etc...
This tool can be adapted to many log formats, since the log pattern matching is achieved by a lua script.
- The tool will read your log row by row.
- Each row will be put in the memory space of a scripting engine
- The script will parse the row and will add a signal tick with infos (category, epoch time, signal name, signal value)
- the tool will display all signal in graph
with this tool you can :
- display many signals in separate graph
- display many signals grouped per graph group
- display all signals in a minimal view
- search for a signal name
- show the values of all signals at the timeframe hovered by the mouse
- show zone of signals (start / end)
- show a special tag for point event (like erreors by ex)
- show the changed signals values between two timeframe markers
- display the whole singals tick in a log view
- display the whole singals tick in a second log view (for compare with the first)
- display a code pane for let you test/design your script
- the project file is a sqlite database, so you can open it again without reparse or do treatment with other apps
- you can parse many log file at same time but with the same parsing file
function startFile()
end
function parse(buffer)
end
function endFile()
end
LogToGraph can work with many plugins.
- Lua
- Python (WIP)
- open the app
- in menu, click new
- in the tool pane, you have three buttons
- in the tool pane, select your lua script
- in the tool pane, select your log file
- in the tool pane, click on the analyse buttons
- in the tool pane, expand some category
- click on some signals
- mouse over some signals to see infos of hovered timeframe
- click on log pane title and explore it
- in the group graph pane
- on a signal row, select anpother group column. each new comlumn except the gdef, will be group graph
- click on a color button, and change the color of the signal.
- then click back on the auto coloring nbutton in pane menu
- mouse hover a graph
- with the wheel button, zoom in
- with the left mouse button, slide horizontally -you will see than all grpah are synchronized)
- with the right mouse button, you can click and drag for define a custom time range
- click right on it and a menu will appear, with it you can do many thing and by ex move the legend
- go in layout menu
- select entry "all graph signals"
- explore this new pane
- go in layout menu
- select entry "Signals Hovered List"
- now go over signals with mouse and observe the "Signals Hovered List" pane change his values
- go in layout menu
- select entry "Signals Hovered Diff"
- now mouse over a signal and press the key "f" like first, you will see a red vertical line, you can move it with mouse
- move the mouse horizontally over a signal and press the key "s" like second, you will see a blue vertical line, you can move it with mouse
- observe the pane "Signals Hovered Diff", you will see in it all signals who have change their value between the two markers
- you can press the key "r" like reset, for remove the markers
- you have a tip explaining this, in the graphs pane menu
- available only on alone graph
- mouse hover a curve
- when the cruve is thick, clik with the middle mouse button
- then move the mouse on another part of the curve
- when this new pos is thick too, click with the middle mouse ubtton agian
- and you have a Annotation wiht the delta time. hte biggest unit is the day, the lowest the nano seconds.
for delete or see all your Annotations, open the layout menu, then click on Annotation Pane then you have a list of all annotations per signal, then you can click on the cross on the left for delete what you want.
- got in menu then press on close item
- a dialog appear in the center of the app
- you can save the current proejct, save as a new project, continue without saving or cancel
- the project is closed
you also have this dialog when you quit the app
-- UserDatas ltg (LogToGraph valid only from LogToGraph)
-- ltg:logInfo(infos_string) : will log the message in the in app console
-- ltg:logWarning(infos_string) : will log the message in the in app console
-- ltg:logError(infos_string) : will log the message in the in app console
-- ltg:logDebug(infos_string) : will log the message in the in app console
-- ltg:addSignalTag(date, r, g, b, a, name, help) : add a signal tag with date, color a name (color is linear [0:1]. the help will be displayed when mouse over the tag
-- ltg:addSignalStatus(signal_category, signal_name, signal_epoch_time, signal_status) : will add a signal string status
-- ltg:addSignalValue(signal_category, signal_name, signal_epoch_time, signal_value) : will add a signal numerical value
-- ltg:addSignalStartZone(signal_category, signal_name, signal_epoch_time, signal_string) : will add a signal start zone
-- ltg:addSignalEndZone(signal_category, signal_name, signal_epoch_time, signal_string) : will add a signal end zone
-- get/set epoch time from datetime in format "YYYY-MM-DD HH:MM:SS,MS" or "YYYY-MM-DD HH:MM:SS.MS" with hour offset in second param
-- double ltg:stringToEpoch("2023-01-16 15:24:26,464", 0)
-- string ltg:epochToString(18798798465465.546546, 0)
- The log file must be ascii file
- You need opengl for using it, since the ui is a opengl based gui
You need to use cMake. For the 3 Os (Win, Linux, MacOs), the cMake usage is exactly the same,
- Choose a build directory. (called here my_build_directory for instance) and
- Choose a Build Mode : "Release" / "MinSizeRel" / "RelWithDebInfo" / "Debug" (called here BuildMode for instance)
- Run cMake in console : (the first for generate cmake build files, the second for build the binary)
cmake -B my_build_directory -DCMAKE_BUILD_TYPE=BuildMode
cmake --build my_build_directory --config BuildMode
Some cMake version need Build mode define via the directive CMAKE_BUILD_TYPE or via --Config when we launch the build. This is why i put the boths possibilities
By the way you need before, to make sure, you have needed dependencies.
You need to have the opengl library installed
You need many lib : (X11, xrandr, xinerama, xcursor, mesa)
If you are on debian you can run :
sudo apt-get update
sudo apt-get install libgl1-mesa-dev libx11-dev libxi-dev libxrandr-dev libxinerama-dev libxcursor-dev
you need many lib : opengl and cocoa framework