From 4c3f5d80f255756e5ee69e3a5e0774d389a64658 Mon Sep 17 00:00:00 2001 From: vovatrykoz <88552890+vovatrykoz@users.noreply.github.com> Date: Fri, 15 Nov 2024 08:45:33 +0100 Subject: [PATCH 1/3] Create README.md --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..bc3d619 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# Introduction + +This framework implements the mathematical framework presented in "A Compositional Framework for End-to-End Path Delay Calculation of Automotive Systems under Different Path Semantics" by Feiertag et al. + +# Structure + +The code is split into the include folder containing all the headers and the source folder containing the code that implements the functions defined in the headers. There are several components in there + +### io/ +The include/io/ and source/io/ subfolders contain implementation and definitions for code that is responsible for taking in user input and logging the analysis results. Right now, two ways for reading and writing are supported: console-based and text-based. +Text based option supports a file that is formated as follows: + +START +,,, +... +,,, +END + +See example files + +### Analysis.h and Analysis.cpp + +Contains definitions and functions that can be used to perform an end-to-end analysis on a set of timed paths. They allow performing the analysis according to different semantics and they essentially implement equations 10-17 in the paper + +### MathFrameowk.h and MathFrameowk.cpp + +Contains boolean predicates that determine reachability between task instances. They are essentially definitions of equations 3-8 in the paper + +### TimedPath.h and TimedPath.cpp + +Represent a task chain and allows simple manipulations and calculations on it, for example end-to-end calculation for a specific path, first task instance activation time etc. + +### Task.h and Task.cpp + +Contain data structures used to represnt tasks and task instances + +## main.cpp + +Entry point of the program. Reads user input, performs the analysis, and logs the results. The analysis itself starts on line 57: + +![image](https://github.com/user-attachments/assets/a6c05188-35ce-47c2-aa04-a5926c65f381) + + +## tests/ + +Contains test for the implementation From ebbf163b5ec03d78830dd141b11c1fe76d36f15e Mon Sep 17 00:00:00 2001 From: vovatrykoz <88552890+vovatrykoz@users.noreply.github.com> Date: Fri, 15 Nov 2024 09:15:23 +0100 Subject: [PATCH 2/3] Update README.md --- README.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bc3d619..72ebca0 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,14 @@ The code is split into the include folder containing all the headers and the sou ### io/ The include/io/ and source/io/ subfolders contain implementation and definitions for code that is responsible for taking in user input and logging the analysis results. Right now, two ways for reading and writing are supported: console-based and text-based. Text based option supports a file that is formated as follows: - +``` START ,,, ... ,,, END - -See example files +``` +See example files as well ### Analysis.h and Analysis.cpp @@ -44,3 +44,18 @@ Entry point of the program. Reads user input, performs the analysis, and logs th ## tests/ Contains test for the implementation + +# Executable usage + +Default build process produced an executable called ```runner```
+```Usage: ./runner ``` + +Currently supported logger types: +- ```console``` +- ```text``` + +Currently supported reader types: +- ```console``` +- ```text``` + +If no arguments are provided, the program will default to ```console``` From 085b22bc468700afb0a586159cbd4fd1b624a228 Mon Sep 17 00:00:00 2001 From: vovatrykoz <88552890+vovatrykoz@users.noreply.github.com> Date: Fri, 15 Nov 2024 09:22:41 +0100 Subject: [PATCH 3/3] Update README.md --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index 72ebca0..6ea4e34 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,39 @@ END ``` See example files as well +For example, input contained in example2.txt will produce the following results: + +``` +Results + +Number of analyzed paths: 5 +Number of unreachable paths: 1 + +Unreachable paths: +E + +Number of reachable paths: 4 +Reachable paths: +A +B +C +D + +Last-to-Last semantics: + Path with maximum latency over all reachable paths: A + Maximum latency over all reachable paths: 40 + +Last-to-First semantics: + Path with maximum latency over all reachable paths: B + Maximum latency over all reachable paths: 10 + +First-to-Last semantics: + Maximum path delay: 80 + +First-to-First semantics: + Maximum path delay: 50 +``` + ### Analysis.h and Analysis.cpp Contains definitions and functions that can be used to perform an end-to-end analysis on a set of timed paths. They allow performing the analysis according to different semantics and they essentially implement equations 10-17 in the paper