WS2023/24

2023-10-05 (6 VO)

OO: Recap

Plan 💪

  • Polymorphize switches and sensors ⟶ interfaces

  • Use interfaces in LED display and hysteresis

    Show example of a display that outputs sensor values to stdout (rather than writing the output inline, inside the measurement loop)

  • Project: Data Logger

    • Define sink

    • Define source configuration

  • Lifetime (e.g. AveragingSensor::add()) ⟶ pointer classes

  • … see what time brings …

OO: Polymorphism

From Inheritance And Object Oriented Design:

From New Language Features:

Git Collaboration (via Github, but not necessarily): Forks And Pull Request

See Working with Git In Our FH-ECE21 Project, “Forks And Pull Requests”

Tasks, First Round

../../../../../_images/teams-2023-10-05.jpg

2023-11-03 (6 VO)

Organizational

  • Course page modifications (chapters instead of table)

  • Grading scheme

OO: Design?

Project

Hardware Overview

Tasks

See WS2023/24: Group Project - Tasks

2023-11-09 (3 VO)

Project

  • Caring about hacking students

2023-11-10 (3 VO)

Project

  • Caring about hacking students

  • Team meeting

../../../../../_images/2023-11-10-uml.jpg

2023-11-17 (3 VO)

OO, And Software Development At Large

  • OO Design Principles

    See SysFS GPIO Switch and (DONE) Boiling Pot (The Beginning) for why.

    • Single responsibility ⟶ Hysteresis does not do sensoring and switching itself; it uses an interface

    • Open/closed ⟶ Hysteresis is not modified when a new Sensor implementation is added

    • Liskow substitution ⟶ Hysteresis should be possible to use any Sensor. Easily violated!!

    • Interface segregation ⟶ Sensor does not have a name in it. Data logger would need one, but adds it itself (SensorConfig is a nameSensor mapping)

    • Dependency Inversion ⟶ Hysteresis does not depend on, say, W1Sensor, but rather on Sensor

Project

Updating A Fork From Upstream

2023-11-20 (6 VO)

Container Templates (std::map)

Project

New Tasks: MQTT And CSV Sink Implementations

Datalogger Pull Request

Boiling Pot, Switches

SysFS GPIO Switch

2023-12-07 (6 VO)

Project

Structure

  • firmware/: what’s supposed to be deployed: data-logger and boiling-pot

  • demos/: demo and test programs

  • toolcase/: library, structure into subdirectories

    • base/

    • data-logger/

    • boiling-pot/

  • tests/

Show dependency graph

Renames

  • LEDDisplay -> PWMController

2023-12-14 (6 VO)

Project

Datalogger

Boiling Pot

Peripherals

2024-01-08 (6 VO)

Project

2024-01-11 (6 VO)

Project

BIG FAT SYSFS-GPIO NOTICE: NO SAFETY

2024-02-02 (Exam)

Relevant Topics

A Sample Exam

WS2023/2024: Exam 2024-02-02 (Sample)