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 C++ >= 11:

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)