SS2023

Block 1: Linux, and Working With Remote/Embedded Devices

VO

KU

#Units

Topics

2023-02-27

3

2023-03-07

3

2023-03-10

3

2023-03-17

3

2023-03-31

3

Block 2: C on Linux: Local and Cross Development

VO

KU

#Units

Topics

2023-04-17

3

Lab Exam

Toolchain Intro (Local) (from Toolchain, And Cross Development)

2023-04-17

3

Toolchain Intro (CMake) (from Toolchain, And Cross Development)

2023-04-21

3

Systems Programming Basics: File I/O

Homework (until next time - 2023-05-08)

2023-05-11

3

Homework Recap

Talk about solutions from last time’s (2023-04-21) homework

Work Environment

  • Github project

  • SSH login on the Pi: ssh -p 2020 firstname.lastname@jfasch.bounceme.net

Cross Development

Cross Toolchain Setup

Homework Recap: Cross

2023-05-12

3

Finish Raspi Cross Toolchain Setup

Exercise Time

Homework

  • Please complete the exercise until next time (2023-05-22)

  • Please send me your Github account name (create one if you don’t already have one)

Block 3: C++

VO

KU

#Units

Topics

2023-05-22

3

The Spirit Of C (Why C++?)

(livehacked: arrays.cpp)

Unit Testing (Quick Intro)

(livehacked: unittesting - look into CMakeLists.txt)

OO Basics

(livehacked: point.cpp)

2023-06-01

3

Exercise

2023-06-02

3

Exercise, cont’d

2023-06-05

3

Discussion: Future Directions

  • PLC state machine (Salloker)

  • Possible OO implementation (TDD?)

../../../../../_images/doormgr-fsm.png

C++ Standard Library

2023-06-07

3

Exercises

Note: see point.cpp for a sample class implementation.

2023-06-12

3

Lab Exam

Attention

Please do not build inside the source directory! The build tree must not be part of the uploaded archive

If you do, this will severely influence the exam grading!

2023-06-15

3

  • Lab Exam recap

  • Work Environment

    Mr.Felber to show how vscode could solve problems. Discuss, e.g.

    • “Open Folder”.

      • What does that do, as opposed to opening single files?

      • ⟶ understanding your project by trying to comprehend CMakeLists.txt

      • ${workspaceFolder}

    • “Build” button.

2023-06-15

3

2023-06-19

3

Exercises

  • Recap std::vector

  • Exercise: AveragingSensor_nopoly (Non-Polymorphic)

    • Pull from our Github project

    • Implement AveragingSensor_nopoly in students/firstname.lastname/lib/

    • In the toplevel toolcase/ directory, you’ll find an implementation of MockSensor_nopoly

    • You will use that class in your AveragingSensor_nopoly. This means that the library in your lib/ directory depends on the library in the toplevel toolcase/ directory.

      Figure out how to specify that dependency to the CMake build system!

      Hint: the CMake TARGET_LINK_LIBRARIES() function is used to specify dependencies. As an example, see your students/firstname.lastname/bin/CMakeLists.txt file where a dependency is specified for an executable that is built. You can do this for inter-library dependencies likewise.

2023-06-23

3

Lab Exam

Attention

Please do not build inside the source directory! The build tree must not be part of the uploaded archive

If you do, this will severely influence the exam grading!

Finish: Written Exam