You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
3.3 KiB

#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