Design Tools And Laboratory Engineering (2026) ============================================== .. toctree:: :hidden: exam .. topic:: See also * Github Project: https://github.com/jfasch/DTLE-2026.git * Moodle: https://moodle.fh-joanneum.at/course/view.php?id=13728§ion=2 * :doc:`Entry Exam ` .. topic:: Course Material * :doc:`/trainings/material/soup/linux/basics/shell/index` * `Linux VSCode Tutorial (Youtube) `__ * :doc:`CMake Course Material ` * :doc:`C++ Course Material ` * :doc:`More C++ Course Material ` Get And Initialize Project (``SRCDIR``) --------------------------------------- In your home directory (``pwd`` to find out where yo are, ``cd ~`` if that is not your home), clone the project from upstream. .. code-block:: console $ git clone https://github.com/jfasch/DTLE-2026.git This has created a directory, .. code-block:: console $ ls -l ... drwxr-xr-x. 1 student student 236 Oct 1 15:17 DTLE-2026 ... ``cd`` into that directory, .. code-block:: console $ cd DTLE-2026/ Initialize the project's submodules (we use ``googletest`` for testing), .. code-block:: console $ git submodule update --init --recursive Build Project (``BUILDDIR``) ---------------------------- Create a dedicated build directory, best as a subdirectory of your home directory, and change into it. .. code-block:: console $ mkdir ~/DTLE-2026-build $ cd ~/DTLE-2026-build Run ``cmake`` to generate a build tree from the information that it finds in the source directory's ``CMakeLists.txt``. .. code-block:: console $ cmake ~/DTLE-2026 Run ``make`` to actually build the project. .. code-block:: console $ make Test Project (``BUILDDIR``) --------------------------- In the build directory, run the firmware. When all is well, the run looks like this: .. code-block:: console $ ./firmware/DTLE-2026-firmware --*------ -----*--- --------* --*------ -----*--- --------* --*------ ... If the output looks different (it will), then run the tests and see if they pass (they won't). A test run that passes look like this: .. code-block:: console $ ./tests/DTLE-2026-tests [==========] Running 3 tests from 3 test suites. [----------] Global test environment set-up. [----------] 1 test from led_tests [ RUN ] led_tests.basic [ OK ] led_tests.basic (0 ms) [----------] 1 test from led_tests (0 ms total) [----------] 1 test from sensor_tests [ RUN ] sensor_tests.basic [ OK ] sensor_tests.basic (0 ms) [----------] 1 test from sensor_tests (0 ms total) [----------] 1 test from controller_tests [ RUN ] controller_tests.basic [ OK ] controller_tests.basic (0 ms) [----------] 1 test from controller_tests (0 ms total) [----------] Global test environment tear-down [==========] 3 tests from 3 test suites ran. (0 ms total) [ PASSED ] 3 tests. Fix Project (``SRCDIR``, ``BUILDDIR``) -------------------------------------- Look at the test output, and identify the failure. Fix the bug [#bug-in-lib]_ until the tests run, and the firmware has the desired output. Submit Fix (``SRCDIR``) ----------------------- We now create a compressed archive, ``submission.tar.gz``, *of the source directory only*, and submit that to moodle. From the parent directory of ``SRCDIR`` (your home directory if you followed the instructions), .. code-block:: console $ cd ~ # ensure that you are at home $ tar --exclude .git -zcf submission.tar.gz DTLE-2026 Submit the file to the `submission folder in Moodle `__. .. rubric:: Footnotes .. [#bug-in-lib] None of the files in ``tests/`` is buggy, so nothing must be modified there. The main program is not buggy too (spoiler), so the bug must be somewhere in the middle.