diff --git a/README.md b/README.md
index 8d9ec160..9b29778e 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,12 @@
----
+## v.1.0.27 released!
+
+Checkout the ['plot view'](./md/plot_view/plot_view.md#plot-view) feature!
+
+----
+
![DLT Message Analyzer logo](./md/DLTMessageAnalyzer_logo.png)
![Build linux](https://github.com/svlad-90/DLT-Message-Analyzer/workflows/Build%20linux%20Qt5/badge.svg)
@@ -80,6 +86,10 @@ There are the following schemas of deployment:
- Plugin supports integration with the PlantUML tool, which allows you to create sequence diagrams out of the logs
+### [Plot view](./md/plot_view/plot_view.md)
+
+- Plugin supports integration with the QCustomPlot library, which allows you to create plots out of the logs
+
### [Files view](./md/files_view/files_view.md)
- Extension, which lists the paths & names of all currently opened DLT files
diff --git a/dltmessageanalyzerplugin/src/CMakeLists.txt b/dltmessageanalyzerplugin/src/CMakeLists.txt
index 6d3af60b..58792a92 100644
--- a/dltmessageanalyzerplugin/src/CMakeLists.txt
+++ b/dltmessageanalyzerplugin/src/CMakeLists.txt
@@ -32,6 +32,28 @@ function (DMA_QT_WRAP_UI ui_headers_var_name wrap_ui_var_name)
endfunction()
################### QT_SPECIFIC ( END ) ###################
+################### QCUSTOMPLOT ###########################
+# function - sync_qcustomplot
+# Syncs QCustomPlot, implementation, which is used for
+# the creation of plots
+function (DMA_sync_q_custom_plot)
+ include(FetchContent)
+ FetchContent_Declare(
+ qcustomplot
+ GIT_REPOSITORY https://github.com/svlad-90/QCustomPlot-library
+ GIT_TAG 2.1.1.1
+ )
+
+ FetchContent_GetProperties(qcustomplot)
+ if(NOT qcustomplot_POPULATED)
+ FetchContent_Populate(qcustomplot)
+ add_subdirectory(${qcustomplot_SOURCE_DIR} ${qcustomplot_BINARY_DIR})
+ endif()
+
+# include_directories(${qcustomplot_SOURCE_DIR}/DMA_Plantuml/include)
+endfunction(DMA_sync_q_custom_plot)
+################### QCUSTOMPLOT ( END ) ###################
+
################### COMMON_DEPS ###########################
include(FetchContent)
FetchContent_Declare(
@@ -60,6 +82,7 @@ add_definitions(-DDMA_FORCE_LINK_ON)
DMA_sync_g_test_framework()
DMA_sync_plantuml()
DMA_sync_framework()
+DMA_sync_q_custom_plot()
################### DEPENDENCIES ( END )###################
################### COMPATIBILITY #########################
diff --git a/dltmessageanalyzerplugin/src/common/BaseDefinitions.cpp b/dltmessageanalyzerplugin/src/common/BaseDefinitions.cpp
new file mode 100644
index 00000000..5ef930a5
--- /dev/null
+++ b/dltmessageanalyzerplugin/src/common/BaseDefinitions.cpp
@@ -0,0 +1,12 @@
+/**
+ * @file BaseDefinitions.cpp
+ * @author vgoncharuk
+ * @brief Implementation of the BaseDefinitions
+ */
+
+#include "BaseDefinitions.hpp"
+
+bool QOptionalColor::operator== ( const QOptionalColor& rhs ) const
+{
+ return color == rhs.color && isSet == rhs.isSet;
+}
diff --git a/dltmessageanalyzerplugin/src/common/BaseDefinitions.hpp b/dltmessageanalyzerplugin/src/common/BaseDefinitions.hpp
new file mode 100644
index 00000000..57d6d437
--- /dev/null
+++ b/dltmessageanalyzerplugin/src/common/BaseDefinitions.hpp
@@ -0,0 +1,48 @@
+/**
+ * @file BaseDefinitions.hpp
+ * @author vgoncharuk
+ * @brief Declaration of the BaseDefinitions
+ */
+
+#ifndef BASE_DEFINITIONS_HPP
+#define BASE_DEFINITIONS_HPP
+
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+typedef std::shared_ptr tQStringPtr;
+typedef std::vector tQStringPtrVec;
+
+struct tQStringPtrWrapper
+{
+ tQStringPtrWrapper();
+ tQStringPtrWrapper(const tQStringPtr& pString_);
+ bool operator== ( const tQStringPtrWrapper& rVal ) const;
+ bool operator< ( const tQStringPtrWrapper& rVal ) const;
+ tQStringPtr pString = nullptr;
+};
+
+namespace std {
+template<> struct hash {
+ std::size_t operator()(const tQStringPtrWrapper& pS) const noexcept {
+ return pS.pString ? (size_t) qHash(*pS.pString) : 0u;
+ }
+};
+}
+
+Q_DECLARE_METATYPE(tQStringPtrWrapper)
+
+struct QOptionalColor
+{
+ bool isSet = false;
+ QColor color;
+ bool operator== ( const QOptionalColor& rhs ) const;
+};
+typedef QVector QOptionalColorVec;
+
+#endif // BASE_DEFINITIONS_HPP
diff --git a/dltmessageanalyzerplugin/src/common/CMakeLists.txt b/dltmessageanalyzerplugin/src/common/CMakeLists.txt
index 15583ab3..6aed044d 100644
--- a/dltmessageanalyzerplugin/src/common/CMakeLists.txt
+++ b/dltmessageanalyzerplugin/src/common/CMakeLists.txt
@@ -1,6 +1,8 @@
add_library(DMA_common STATIC
+ BaseDefinitions.cpp
CTreeItem.cpp
Definitions.cpp
+ PlotDefinitions.cpp
CBGColorAnimation.cpp
CRegexDirectoryMonitor.cpp
CTableMemoryJumper.cpp
diff --git a/dltmessageanalyzerplugin/src/common/Definitions.cpp b/dltmessageanalyzerplugin/src/common/Definitions.cpp
index 95130162..2e6a3452 100644
--- a/dltmessageanalyzerplugin/src/common/Definitions.cpp
+++ b/dltmessageanalyzerplugin/src/common/Definitions.cpp
@@ -9,6 +9,7 @@
#include