From 05d0fe470dc17be66181b2c6dac1f560739841b9 Mon Sep 17 00:00:00 2001 From: Michael Kovalev <134699174+michaelk036@users.noreply.github.com> Date: Tue, 25 Feb 2025 22:48:39 -0500 Subject: [PATCH 1/8] grammar --- docs/command-logging.md | 10 +++++----- docs/index.md | 2 +- docs/subsystem-logging.md | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/command-logging.md b/docs/command-logging.md index e75e5fc..755ea8c 100644 --- a/docs/command-logging.md +++ b/docs/command-logging.md @@ -19,7 +19,7 @@ Right now, command compositions do not work. Each command must be declared in a file. In other words, you can not call `.andThen` or `.withTimeout`. !!! important - Commands can not be reused. They can be scheduled multiple times, but they can not have multiple parents. + Commands can not be reused. They can be scheduled multiple times, but they can not have multiple parent commands. ## How Command Logging works @@ -70,11 +70,11 @@ classDiagram ### Let's unpack this `LoggableCommand` inherits all of WPILib's `Command` functionality. However it differs by keeping track of it parent. -In many cases, a command will be logged in the root and will have have a parent, if the command is stored in a CommandGroup, then it will know who its parent is. This is important so when we log the commands they can form a tree like structure in the log file. As a result, when looking at the logs in AdvantageScope, Commands are logged in the same hierarchy that they were declared in the code. +In many cases, a command will be logged in the root and will have have a parent command, if the command is stored in a CommandGroup, then it will know who its parent is. This is important so when we log the commands they can form a tree like structure in the log file. As a result, when looking at the logs in AdvantageScope, Commands are logged in the same hierarchy that they were declared in the code. #### The Hijacking of `toString()` -We need someway to turn the hierarchy of commands into a path. Moreover, we need to use a method that already of exists in command (you will see why later). Sadly, there are not a lot of options as we need to `Override` a method that is not used for internal shenanigans by WPILib. Luckily, all object have a `toString()` method and it appeared WPILib did not use it for any processing! +We need some way to turn the hierarchy of commands into a path. Moreover, we need to use a method that already of exists in command (you will see why later). Sadly, there are not a lot of options as we need to `Override` a method that is not used for internal shenanigans by WPILib. Luckily, all object have a `toString()` method and it appeared WPILib did not use it for any processing! #### Let's examine our Overrode `toString()` method @@ -90,14 +90,14 @@ We need someway to turn the hierarchy of commands into a path. Moreover, we need } ``` -First we get the Parent's path (using `toString()`) and the remove the "/inst" suffix. The results in a path that contains the parent log path minus that actual instance addition of the parent. From this we then append the name of this command along with "/inst" (which is why we had to remove it earlier because the parent did the same thing). +First we get the Parent's path (using `toString()`) and the remove the "/inst" suffix. The results in a path that contains the parent log path minus that actual instance addition of the parent. From this we then adding on the name of this command along with "/inst" (which is why we had to remove it earlier because the parent did the same thing). Because this block of code is in all the commands we use, we get a massive tree of path names that can be logged. This is great and all but who actually logs the commands? ### Welcome to the `CommandLoggger` -The `CommandLogger` works by subscribing to some of the events of WPILib's `CommandSchedualer`: +The `CommandLogger` works by subscribing to some of the events of WPILib's `CommandScheduler`: 1. `onCommandInitalize(Consumer action)` 2. `onCommandFinish(Consumer action)` diff --git a/docs/index.md b/docs/index.md index 4a66f60..2269ee5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ # Redshift 4048 Documentation -This is the homepage for Redshift's documentation. +This is the homepage for FRC Team 4048's documentation. diff --git a/docs/subsystem-logging.md b/docs/subsystem-logging.md index 8003e23..e5fe6f9 100644 --- a/docs/subsystem-logging.md +++ b/docs/subsystem-logging.md @@ -25,7 +25,8 @@ The RealIO must have an `InputProvider` that matches the corresponding `Input` t `PidMotorInputs` :material-arrow-right: `PidMotorInputProvider` Then, in the `updateInputs(T inputs)`, you need to write `inputs.process(inputProvider)` -Here is an bare bones example: + +Here is a bare-bones example: ```java public interface FooIO extends LoggableIO { @@ -51,7 +52,7 @@ public class RealFooIO implements FooIO { ### Subsystem implementation !!! note - each IO collection should be in charge of at most one piece of hardware. However you may have multiple IO collection per Subsystem + each IO collection should be in charge of at most one piece of hardware. However you may have multiple IO collections per Subsystem In the Subsystem, IO interfaces and inputs are stored through a `LoggableSystem`. The `LoggableSystem` provides a consistent way of accessing both the IO interface's methods, and the Inputs. From 996f8417f2397e94964536b36e42ca83f1f2d950 Mon Sep 17 00:00:00 2001 From: Michael Kovalev <134699174+michaelk036@users.noreply.github.com> Date: Tue, 25 Feb 2025 23:20:50 -0500 Subject: [PATCH 2/8] resources --- docs/resources.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 docs/resources.md diff --git a/docs/resources.md b/docs/resources.md new file mode 100644 index 0000000..9571c22 --- /dev/null +++ b/docs/resources.md @@ -0,0 +1,47 @@ +# FRC Specific Resources + +This is a guide of resources for FRC programming, and some other useful stuff. + +## WPIlib + +Installing WPIlib - https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html +WPIlib Documentation - https://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html + +WPIlib downloads (almost) everything you would need for FRC programming in WPIlib are included +- Advantage Scope(and AdvantageKit), which allows you to log, simulate and replay robot competitions, and actively monitor data during testing. +- VS Code, which includes a suite of WPIlib tools like `Build Robot Code`, `Deploy Robot Code` and `Simulate Robot Code` being the most widely used. +!!! note + VS Code (Microsoft Visual Studio Code) is the supported IDE for FRC - you can use something else but it will make your work more difficult. Also if you're doing any personal coding projects in VS Code it is recommended to download VS Code from https://code.visualstudio.com/, because extensions you might install can mess with WPIlib, +- Elastic, software used for creating a dashboard that is used by the Drive-Team in competition. +- Also, WPIlib downloads C++, Python and Java compilers onto your device - we use Java, but you can see these in VS Code as downloaded extensions. +!!! warning + Git is not downloaded with WPIlib, but you will need it, download it here https://git-scm.com/downloads, or through terminal, more on Git Later. + +## Pathplanner + +Installing Pathplanner - https://github.com/mjansen4857/pathplanner/releases +Pathplanner Documentation - https://pathplanner.dev/home.html + +- Pathplanner is a tool for creating Paths and Autos for Autonomous Sequences. + +## Git and Github + +Installing Git - https://git-scm.com/downloads + +- Git is used to get code you wrote locally on your computer to somewhere it's hosted, in our case Github (There are alternatives like Gitlab or Self-Hosting) +- You can use the UI in VS Code or, the command line +- Git works like a tree where branches are created off of main (the trunk of the tree) + +`git pull` - pulls from the current version (the version on Github) of the branch you are on. +`git push` - pushes your changes to your branch making them viewable on github. + +### Github + +- Github is what we use to host our code +- Creating a branch means that you have access to code written in main (or master), and you can pull from main to get updated to the current version +- A PR or Pull Request, is a request to get your changes merged into main (or master) + + + + + From 590685e13703c18498e302005a55d78def56b9da Mon Sep 17 00:00:00 2001 From: Michael Kovalev <134699174+michaelk036@users.noreply.github.com> Date: Wed, 26 Feb 2025 09:55:49 -0500 Subject: [PATCH 3/8] more resources --- docs/resources.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/resources.md b/docs/resources.md index 9571c22..e551df5 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -3,12 +3,14 @@ This is a guide of resources for FRC programming, and some other useful stuff. ## WPIlib +WPIlib downloads (almost) everything you would need for FRC programming in WPIlib are included Installing WPIlib - https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html + WPIlib Documentation - https://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html -WPIlib downloads (almost) everything you would need for FRC programming in WPIlib are included -- Advantage Scope(and AdvantageKit), which allows you to log, simulate and replay robot competitions, and actively monitor data during testing. +Included in WPIlib are: +- Advantage Scope(and AdvantageKit), which allows you to log, simulate and replay robot matches, and actively monitor data and it's position on the field during testing. - VS Code, which includes a suite of WPIlib tools like `Build Robot Code`, `Deploy Robot Code` and `Simulate Robot Code` being the most widely used. !!! note VS Code (Microsoft Visual Studio Code) is the supported IDE for FRC - you can use something else but it will make your work more difficult. Also if you're doing any personal coding projects in VS Code it is recommended to download VS Code from https://code.visualstudio.com/, because extensions you might install can mess with WPIlib, @@ -16,6 +18,8 @@ WPIlib downloads (almost) everything you would need for FRC programming in WPIli - Also, WPIlib downloads C++, Python and Java compilers onto your device - we use Java, but you can see these in VS Code as downloaded extensions. !!! warning Git is not downloaded with WPIlib, but you will need it, download it here https://git-scm.com/downloads, or through terminal, more on Git Later. +!!! note + Game Tools specifically FRC Driver Station (and Shuffleboard, which in our case is now replaced by Elastic) are not included in WPIlib, you can download them from https://www.ni.com/en/support/downloads/drivers/download.frc-game-tools.html#553883, but they only run on x86 Windows, not Arm Windows, Mac or Linux. ## Pathplanner @@ -33,6 +37,7 @@ Installing Git - https://git-scm.com/downloads - Git works like a tree where branches are created off of main (the trunk of the tree) `git pull` - pulls from the current version (the version on Github) of the branch you are on. + `git push` - pushes your changes to your branch making them viewable on github. ### Github From e4b49454ac9c9637fe483f4a12217972776d2ae6 Mon Sep 17 00:00:00 2001 From: Michael Kovalev <134699174+michaelk036@users.noreply.github.com> Date: Wed, 26 Feb 2025 18:40:29 -0500 Subject: [PATCH 4/8] added resources --- docs/resources.md | 60 ++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/docs/resources.md b/docs/resources.md index e551df5..ea81fc4 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -1,50 +1,42 @@ # FRC Specific Resources - -This is a guide of resources for FRC programming, and some other useful stuff. +This is a guide of resources for FRC programming, and some other helpful stuff you might need. ## WPIlib -WPIlib downloads (almost) everything you would need for FRC programming in WPIlib are included - -Installing WPIlib - https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html - -WPIlib Documentation - https://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html +An all in one package of tools and libraries used for FRC programming, developed by WPI. +- Installing WPIlib -> https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html +- WPIlib Documentation -> https://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html -Included in WPIlib are: -- Advantage Scope(and AdvantageKit), which allows you to log, simulate and replay robot matches, and actively monitor data and it's position on the field during testing. -- VS Code, which includes a suite of WPIlib tools like `Build Robot Code`, `Deploy Robot Code` and `Simulate Robot Code` being the most widely used. -!!! note - VS Code (Microsoft Visual Studio Code) is the supported IDE for FRC - you can use something else but it will make your work more difficult. Also if you're doing any personal coding projects in VS Code it is recommended to download VS Code from https://code.visualstudio.com/, because extensions you might install can mess with WPIlib, -- Elastic, software used for creating a dashboard that is used by the Drive-Team in competition. -- Also, WPIlib downloads C++, Python and Java compilers onto your device - we use Java, but you can see these in VS Code as downloaded extensions. -!!! warning - Git is not downloaded with WPIlib, but you will need it, download it here https://git-scm.com/downloads, or through terminal, more on Git Later. -!!! note - Game Tools specifically FRC Driver Station (and Shuffleboard, which in our case is now replaced by Elastic) are not included in WPIlib, you can download them from https://www.ni.com/en/support/downloads/drivers/download.frc-game-tools.html#553883, but they only run on x86 Windows, not Arm Windows, Mac or Linux. - -## Pathplanner +### Included in WPIlib -Installing Pathplanner - https://github.com/mjansen4857/pathplanner/releases -Pathplanner Documentation - https://pathplanner.dev/home.html -- Pathplanner is a tool for creating Paths and Autos for Autonomous Sequences. +#### AdvantageScope + AdvantageKit +AdvantageScope (Developed by FRC Team 6328), which can be used to log real time data of the robot during testing. + - AdvantageScope Documentation -> https://docs.advantagescope.org/ +- Advantage Kit (Also Developed by FRC Team 6328), is a code library used for logging and replaying matches. + - Advantage Kit Documentation -> https://docs.advantagekit.org/ -## Git and Github -Installing Git - https://git-scm.com/downloads +#### VS Code (Visual Studio Code) +- The FRC supported IDE, with WPIlib Integrations, allowing for native `Build Robot Code`, `Simulate Robot Code`, `Deploy Robot Code`, and other FRC and WPIlib specific things. -- Git is used to get code you wrote locally on your computer to somewhere it's hosted, in our case Github (There are alternatives like Gitlab or Self-Hosting) -- You can use the UI in VS Code or, the command line -- Git works like a tree where branches are created off of main (the trunk of the tree) +#### Elastic and Shuffleboard +- Elastic (Made by FRC Team 353) and Shuffleboard are both customizable tools for inputting and displaying information during a match or for testing purposes on a dashboard + - Elastic Documentation -> https://frc-elastic.gitbook.io/docs + - Shuffleboard Documentation -> https://docs.wpilib.org/en/stable/docs/software/dashboards/shuffleboard/index.html -`git pull` - pulls from the current version (the version on Github) of the branch you are on. +## Not Included in WPIlib +- Git, they easiest way to share locally written code to other people, in our case we use Github and every task get's assigned to a branch, which is later turned into a PR (Pull Request), which may be merged into Main. + - Git Download -> https://git-scm.com/downloads + - Git Documentation -> https://git-scm.com/doc -`git push` - pushes your changes to your branch making them viewable on github. +!!! warning + You must download Git from https://git-scm.com/downloads or the terminal it is not included in WPIlib -### Github +### Additional Tools -- Github is what we use to host our code -- Creating a branch means that you have access to code written in main (or master), and you can pull from main to get updated to the current version -- A PR or Pull Request, is a request to get your changes merged into main (or master) +- Pathplanner (Developed by FRC Team 3015), allows you to map out Autonomous Routines and Paths with a UI. + - Pathplanner Download -> https://github.com/mjansen4857/pathplanner -> click Releases + - Pathplanner Documentation -> https://pathplanner.dev/home.html From 6634a35d0d765c6eef9f58bd09b786abe868bb73 Mon Sep 17 00:00:00 2001 From: Michael Kovalev <134699174+michaelk036@users.noreply.github.com> Date: Wed, 26 Feb 2025 18:50:22 -0500 Subject: [PATCH 5/8] more --- docs/resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/resources.md b/docs/resources.md index ea81fc4..ee32997 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -20,7 +20,7 @@ AdvantageScope (Developed by FRC Team 6328), which can be used to log real time - The FRC supported IDE, with WPIlib Integrations, allowing for native `Build Robot Code`, `Simulate Robot Code`, `Deploy Robot Code`, and other FRC and WPIlib specific things. #### Elastic and Shuffleboard -- Elastic (Made by FRC Team 353) and Shuffleboard are both customizable tools for inputting and displaying information during a match or for testing purposes on a dashboard +- Elastic (Made by FRC Team 353) and Shuffleboard are both customizable tools for inputting and displaying information during a match or for testing purposes on a dashboard. - Elastic Documentation -> https://frc-elastic.gitbook.io/docs - Shuffleboard Documentation -> https://docs.wpilib.org/en/stable/docs/software/dashboards/shuffleboard/index.html From 5db00aa157c941e05c3099b9b7a46bae9d9f60a1 Mon Sep 17 00:00:00 2001 From: codetoad Date: Wed, 26 Feb 2025 23:13:32 -0500 Subject: [PATCH 6/8] made linux use markdown --- docs/resources.md | 46 ++++++++++++++++++++++------------------------ mkdocs.yml | 1 + 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/docs/resources.md b/docs/resources.md index ee32997..1c1673d 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -1,44 +1,42 @@ # FRC Specific Resources + This is a guide of resources for FRC programming, and some other helpful stuff you might need. -## WPIlib +## WPILib + An all in one package of tools and libraries used for FRC programming, developed by WPI. -- Installing WPIlib -> https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html -- WPIlib Documentation -> https://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html -### Included in WPIlib +- [Installing WPILib](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html) +- [WPILib Documentation](https://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html) +### Included in WPILib #### AdvantageScope + AdvantageKit + AdvantageScope (Developed by FRC Team 6328), which can be used to log real time data of the robot during testing. - - AdvantageScope Documentation -> https://docs.advantagescope.org/ -- Advantage Kit (Also Developed by FRC Team 6328), is a code library used for logging and replaying matches. - - Advantage Kit Documentation -> https://docs.advantagekit.org/ + - [AdvantageScope Documentation](https://docs.advantagescope.org/) +- Advantage Kit (Also Developed by FRC Team 6328), is a code library used for logging and replaying matches. + - [Advantage Kit Documentation](https://docs.advantagekit.org/) #### VS Code (Visual Studio Code) -- The FRC supported IDE, with WPIlib Integrations, allowing for native `Build Robot Code`, `Simulate Robot Code`, `Deploy Robot Code`, and other FRC and WPIlib specific things. + +- The FRC supported IDE, with WPILib Integrations, allowing for native `Build Robot Code`, `Simulate Robot Code`, `Deploy Robot Code`, and other FRC and WPILib specific things. #### Elastic and Shuffleboard + - Elastic (Made by FRC Team 353) and Shuffleboard are both customizable tools for inputting and displaying information during a match or for testing purposes on a dashboard. - - Elastic Documentation -> https://frc-elastic.gitbook.io/docs - - Shuffleboard Documentation -> https://docs.wpilib.org/en/stable/docs/software/dashboards/shuffleboard/index.html + - [Elastic Documentation]() + - [Shuffleboard Documentation]() -## Not Included in WPIlib -- Git, they easiest way to share locally written code to other people, in our case we use Github and every task get's assigned to a branch, which is later turned into a PR (Pull Request), which may be merged into Main. - - Git Download -> https://git-scm.com/downloads - - Git Documentation -> https://git-scm.com/doc +## Not Included in WPILib -!!! warning - You must download Git from https://git-scm.com/downloads or the terminal it is not included in WPIlib +- Git, they easiest way to share locally written code to other people, in our case we use GitHub and every task get's assigned to a branch, which is later turned into a PR (Pull Request), which may be merged into Main. + - [Git Download]() + - [Git Documentation]() ### Additional Tools -- Pathplanner (Developed by FRC Team 3015), allows you to map out Autonomous Routines and Paths with a UI. - - Pathplanner Download -> https://github.com/mjansen4857/pathplanner -> click Releases - - Pathplanner Documentation -> https://pathplanner.dev/home.html - - - - - +- PathPlanner (Developed by FRC Team 3015), allows you to map out Autonomous Routines and Paths with a UI. + - PathPlanner Download -> -> click Releases + - PathPlanner Documentation -> diff --git a/mkdocs.yml b/mkdocs.yml index 64ecac6..b1c7dbe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -51,6 +51,7 @@ nav: - index.md - Command Logging: command-logging.md - Subsystem Logging: subsystem-logging.md + - Resources: resources.md extra_css: - stylesheets/extra.css extra: From e25f0a36bac4be3129d632e36d709dd74725df1b Mon Sep 17 00:00:00 2001 From: codetoad Date: Wed, 26 Feb 2025 23:34:27 -0500 Subject: [PATCH 7/8] fixed indentation and made all links work --- .markdownlint.json | 7 +++++++ docs/resources.md | 16 ++++++++-------- mkdocs.yml | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 .markdownlint.json diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..3a75e94 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,7 @@ +{ + "default": true, + "MD007": { + "indent": 4 + }, + "MD013": false +} diff --git a/docs/resources.md b/docs/resources.md index 1c1673d..d68690c 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -13,11 +13,11 @@ An all in one package of tools and libraries used for FRC programming, developed #### AdvantageScope + AdvantageKit -AdvantageScope (Developed by FRC Team 6328), which can be used to log real time data of the robot during testing. +- AdvantageScope (Developed by FRC Team 6328), which can be used to log real time data of the robot during testing. - [AdvantageScope Documentation](https://docs.advantagescope.org/) - Advantage Kit (Also Developed by FRC Team 6328), is a code library used for logging and replaying matches. - - [Advantage Kit Documentation](https://docs.advantagekit.org/) + - [Advantage Kit Documentation](https://docs.advantagekit.org/) #### VS Code (Visual Studio Code) @@ -26,17 +26,17 @@ AdvantageScope (Developed by FRC Team 6328), which can be used to log real time #### Elastic and Shuffleboard - Elastic (Made by FRC Team 353) and Shuffleboard are both customizable tools for inputting and displaying information during a match or for testing purposes on a dashboard. - - [Elastic Documentation]() - - [Shuffleboard Documentation]() + - [Elastic Documentation]() + - [Shuffleboard Documentation]() ## Not Included in WPILib - Git, they easiest way to share locally written code to other people, in our case we use GitHub and every task get's assigned to a branch, which is later turned into a PR (Pull Request), which may be merged into Main. - - [Git Download]() - - [Git Documentation]() + - [Git Download]() + - [Git Documentation]() ### Additional Tools - PathPlanner (Developed by FRC Team 3015), allows you to map out Autonomous Routines and Paths with a UI. - - PathPlanner Download -> -> click Releases - - PathPlanner Documentation -> + - [PathPlanner Download]() -> click Releases + - [PathPlanner Documentation]() diff --git a/mkdocs.yml b/mkdocs.yml index b1c7dbe..9d09886 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,6 +27,7 @@ theme: name: Switch to light mode markdown_extensions: + - markdown.extensions.extra - pymdownx.highlight: anchor_linenums: true - pymdownx.inlinehilite From 27a836b1f537234b8a5a42eb61a36d2488aeb329 Mon Sep 17 00:00:00 2001 From: Michael Kovalev <134699174+michaelk036@users.noreply.github.com> Date: Thu, 27 Feb 2025 08:13:28 -0500 Subject: [PATCH 8/8] put append back --- docs/command-logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/command-logging.md b/docs/command-logging.md index 755ea8c..e432e35 100644 --- a/docs/command-logging.md +++ b/docs/command-logging.md @@ -90,7 +90,7 @@ We need some way to turn the hierarchy of commands into a path. Moreover, we nee } ``` -First we get the Parent's path (using `toString()`) and the remove the "/inst" suffix. The results in a path that contains the parent log path minus that actual instance addition of the parent. From this we then adding on the name of this command along with "/inst" (which is why we had to remove it earlier because the parent did the same thing). +First we get the Parent's path (using `toString()`) and the remove the "/inst" suffix. The results in a path that contains the parent log path minus that actual instance addition of the parent. From this we then append the name of this command along with "/inst" (which is why we had to remove it earlier because the parent did the same thing). Because this block of code is in all the commands we use, we get a massive tree of path names that can be logged. This is great and all but who actually logs the commands?