#import "@preview/diatypst:0.9.0": *

#set text(font: "TeX Gyre Adventor")

#show: slides.with(
  title: "SITREP Busanzeiger",
  subtitle: "Aktueller Stand und Zukunftsausblick",
  date: "25.01.2026",
  authors: ("Christian & Pascal"),
  // Optional (for more see docs at https://mdwm.org/diatypst/)
  ratio: 16/9,
  layout: "medium",
  title-color: blue.darken(30%),
  toc: true,
)

= Recap

== Erstkontakt mit den Stadtwerken (Februar 2023)
#figure(
    grid(
        columns: 2,
        gutter: 2mm,
        image("stadtwerke1.PNG", width: auto),
        image("stadtwerke2.PNG", width: auto),
    )
)
== Anlieferung der Anzeiger (Oktober 2023)
#figure(
    grid(
        columns: 2,
        gutter: 2mm,
        image("36cbc47d30c88e94.png", width: auto),
        image("7c3f89ceae88b388.jpg", width: auto),
    )
)
== Reverse Engineering Versuche
#figure(
    grid(
        columns: 2,
        gutter: 2mm,
        image("06229735a9d36e8c.jpg", width: auto),
        image("e993d285f6279cdd.jpg", width: auto),
    )
)

== Durchbruch in Entropia (April 2025)
#align(center)[
  #image("entropia.jpg", width: auto)
]


== Erster Einsatz auf der GPN 2025
#grid(
    columns: 2,
    gutter: 15mm,
    "\n- ESP32\n- Embedded Rust\n- Daten aus Pretalx",
    image("0c914abfddc86330.png", width: auto),
)



== Weitere Einsätze: TDF4 & Cyborx
#figure(
    grid(
        columns: 2,
        gutter: 2mm,
        image("ae85ca78a01cae0d.png", width: auto),
        image("a05077ee7e192d99.jpg", width: auto),
    )
)
== Weiterentwicklung {vor/für} de{m/n} 39c3
#grid(
    columns: 2,
    gutter: 15mm,
    "\n- weiterhin ESP32\n- weiterhin embedded Rust\n- Rewrite der Anzeigelogik\n- Neues Datenformat (Bitmap basiert)\n- Binary Blob wird von Server geladen",
    image("signal-2026-01-23-233504_002.jpeg", width: auto),
)

= Entwicklung Hardware & Firmware
== Datenformat für Busanzeiger
Das Datenformat ist ein Binaerformat, das sequenziell abgelaufen wird. Alle
indivduellen Eintraege sind auf 1 Byte ausgerichtet, notfalls wird mit 0-Bits
aufgefuellt.

Alle Koordinaten fangen links oben bei (0, 0) an.

Eine Bitmap ist ein mapping eines binaeren 2D-Bildes auf eine Byte-Sequenz.
Um auf das Pixel (x, y) zuzugreifen muss man erst den Pixel-Index n bestimmen
ueber

n = y \* width + x

Ein Bitmap der Breite `width` und Hoehe `height` benoetigt

 N = (breite \* hoehe + 7) / 8

Bytes an Speicher.

$ & nabla integral_x^4 laplace x = 1 + 2 + EE phi Phi phi.alt 1/(1/4) sum_a^n \ 
& 1+2 $ 

== Custom PCB
     
        
   
#align(center)[
  #image("signal-2026-01-25-180621.png", width: auto)
]

#align(center)[
  #image("signal-2026-01-25-180701.png", width: auto)
]

= Entwicklung Webinterface
== Busanzeiger Paint

#grid(
    columns: 2,
    gutter: 15mm,
    "\n- Zeichnen mit verschiedenen Brushsizes\n- Rudimentäres Textrendering\n- Radieren\n- Importieren von Bildern / GIFs\n- Erstellung von Animationen\n- Erstellung von Binary Blob in JS oder PHP",
    image("paint_start.PNG", width: auto),
)
== Logo import
#align(center)[
  #image("paint_logo.PNG")
]

== Ausblick
- System zur Verwaltung
  - Zeitpläne
  - Bestehende Slides Bearbeiten
  - Mehreren Displays Slides zuweisen
- Idee: Zeichnen von Bildern auf dem TDF5
 - Bild / eine Animation erstellen und absenden übers Webinterface
 - Einreichungen werden moderiert
 - Anstößige Inhalte werden entfernt, andernfalls wird es für eine gewisse Zeit angezeigt
