2025-06-04 (3 VO): More C++, Project Kickoff

C++: References, auto, and Structured Binding

Group Project: Potential Tasks

Talk about …

  • Error handling: ASSERT_THROW() (see here)

  • Requirements

    • Burglar detection

    • Close-request while open

    • Close-request while closed

    • Close-request while opening

    • Open-request while closing

    • Safety: pressure sensor

  • Hardware

    • GPIO (libgpiod)

    • PWM? (motor)

    • PushButton GPIO

    • LightBarrier GPIO

    • Edge events (need previous state), debouncing.

  • SPS-like logic

    • Timespec wrapper, wegen libgpiod gpiod_line_event_wait. Oo Operator Arithmetik.

    • Externalize event detection into toplevel Door::check().

      Im Main bzw. Door check. -> wait on ios, and Dispatch Events to State machine. Timespec now reinreichen, Time Arithmetik ganz einfach mit unit Tests und Overflow condition mit assert. Halt schwer zu testen - exceptions ganz kalt hin was ist, mit errno

  • Integrationstest, nachdem die Interfaces definiert sind. Mocks als erste Implementation, so wie wir’s jetzt haben.

    Damit kommt man ziemlich weit, weil der immer rennt. Spätestens durch mich, das sowieso, mit den mock Tests die wir haben.

  • Door state machine: convert to State design pattern

Teams

  • SPS Dreamteam

    1

    • Feistritzer

    • Dandler

    • Winter

    • Tragner

  • Event Detector

    1

    • Doan

    • Amrhein

    • Wettl

    • Winkler

  • Motor mit 2 LEDs

    2

    • Seiner

    • Hofstaetter

    • Polivka

    • Kristl

  • PushButton GPIO

    2

    • Sinnhofer

    • Hasenhuettl

    • Mlinar

    • Wirtl

  • LightBarrier GPIO

    2

    • Fink

    • Teichtmeister

    • Supper

    • Alrashid

  • Pressure Sensor

    1

    • Traussnigg

    • Bichl

    • Dzidzic

    • Froihofer