# Changelog — Baanbrein

## v0.11.0 — 2026-06-20
- **Leer-modus**: rijd een loc rond en Baanbrein ontdekt automatisch de bezetmelders en bouwt
  daaruit blokken + rijwegen (topologie leren). In de Baan-tab. Werkt in de simulator en is
  klaar voor de s88/LDT-terugmelding van de echte baan.

## v0.10.5 — 2026-06-20
- **Grote banen**: raster tot 60×40, plus zoomknoppen (− / passend / +) in het Schema, zodat je
  ook een grote baan in één keer kunt overzien of juist gedetailleerd kunt tekenen.

## v0.10.4 — 2026-06-20
- **Nettere wisselkaartjes**: naam boven, duidelijke stand-pil eronder (↑ rechtdoor / ↱ afbuigend),
  geen gepropte tekst meer.

## v0.10.3 — 2026-06-20
- **Centrale wisselen zonder herstart**: mode/IP/poort wijzigen wordt nu live toegepast.
- **Downloadbestanden met versienummer** (bv. baanbrein-0.10.3.zip); de site-links wijzen er
  automatisch naar (PHP leest version.json). Stabiele namen blijven ook bestaan.

## v0.10.2 — 2026-06-20
- **Cloud-code: genereer-knop + live activeren** (geen herstart). Minimaal 6 tekens afgedwongen
  (te korte codes zoals 12345 werden geweigerd door de relay).

## v0.10.1 — 2026-06-20
- **Cloud-code in de browser**: stel de relay-koppelcode nu in via Beheer → Verbinding
  (geen config.json bewerken). Leeg = alleen lokaal.

## v0.10.0 — 2026-06-20
- **Webversie via de cloud (relay/agent)**: bedien je baan van overal via p33k.nl/baanbrein/app.
  Het lokale agentje verbindt uitgaand met een koppelcode (relayCode in config); geen poorten
  openzetten. UI altijd up-to-date. Rijden/wissels/rijwegen/automatisch werken via de relay;
  beheer/configuratie blijft lokaal.

## v0.9.9 — 2026-06-20
- **Breder op desktop**: lay-out van 720 naar 1080px; roster/blokken/wissels benutten de ruimte.
  De rij-cabine blijft netjes gecentreerd (niet uitgerekt).

## v0.9.8 — 2026-06-20
- **Centrale instellen in de browser**: in de Beheer-tab kies je nu je centrale + IP/poort en
  sla je op — geen config.json meer bewerken. (Na opslaan even Baanbrein herstarten.)

## v0.9.7 — 2026-06-20
- **Verbinding opgelost voor de standalone**: WebSocket werkte niet onder Bun. Vervangen door
  SSE (Server-Sent Events) + POST — gewone HTTP, werkt identiek onder Node én de standalone.

## v0.9.6 — 2026-06-20
- **"Niet gevonden"-bug opgelost**: de standalone vond zijn public/data-map niet op Windows.
  Paden zoeken nu robuust naast het programma. Lost ook de geen-verbinding op.

## v0.9.5 — 2026-06-20
- **Versie-bug opgelost**: standalone toonde 0.0.0 (las package.json niet) en bleef daardoor
  "update beschikbaar" tonen. Versie nu hard ingebakken — klopt overal.

## v0.9.4 — 2026-06-20
- **Browser opent automatisch** bij het starten (dubbelklik → app + browser). Uit te zetten
  met BB_NO_OPEN=1 (bv. Raspberry Pi als service).

## v0.9.3 — 2026-06-20
- **Versie-chip in de topbar**: altijd zichtbaar naast de naam; wordt een knipperende
  "⬆️ update"-knop zodra er een nieuwere versie is (klik = naar de download).

## v0.9.2 — 2026-06-20
- **Update-bug opgelost**: de service worker was cache-first en bleef de oude versie tonen.
  Nu netwerk-eerst — nieuwe versies komen meteen binnen (cache alleen nog als offline-terugval).

## v0.9.1 — 2026-06-20
- **Versie + update-knop in de app**: onderaan staat nu je versie, met een knop "Controleer
  op updates" die meteen toont of er een nieuwere versie is (+ downloadlink).

## v0.9 — 2026-06-20
- **Live spoorplan** in de Baan-tab: je getekende baan met live bezetmelding + wisselstanden,
  tik een wissel om te schakelen.
- **Tractie (meerdere loc's koppelen)**: bestuur 2+ loc's als één trein (per lid richting
  instelbaar voor kop-staart). Te beheren in de Beheer-tab.
- **Loc-foto's**: echte plaatjes per loc op de kaart en in de cabine.
- **Licht/donker-thema** met knop (onthouden + auto-detectie).
- **Telefoon-extra's**: scherm blijft aan tijdens rijden (wake lock), trillen bij noodstop,
  toetsenbord-bediening op de pc (pijltjes = snelheid/richting, spatie = stop, Esc = noodstop).

## v0.8.1 — 2026-06-20
- **In-app uitleg "De baan koppelen"** (❓-knop): toont je huidige centrale + live verbindingsstatus
  en de juiste stappen (netwerk: IP invullen · serieel: kabel + serialport + poort), in NL/EN/DE.

## v0.8 — 2026-06-20
- **Automatisch rijden**: ritten (loc + reeks rijwegen) rijden blok-naar-blok — reserveren →
  rijden → aankomst (sensor) → wachten → volgende, met lus. Bloksturing voorkomt botsingen;
  een wachtende trein vertrekt zodra zijn blok vrij is. Werkt in de simulator én klaar voor
  echte s88-terugmelding. Ritten te beheren in de Beheer-tab, starten/stoppen in de Baan-tab.

## v0.7 — 2026-06-20
- **In-app beheer**: loc's, functies, wissels, blokken én rijwegen toevoegen/bewerken zonder JSON.
- **Rijwegen + bloksturing**: routes zetten wissels in één tik en reserveren blokken;
  botsingpreventie weigert een route als een blok bezet/gereserveerd is.
- **QR-koppelen telefoon**: 📱-knop toont een QR-code + adres, met iPhone/Safari- en
  Android-instructies (incl. "Zet op beginscherm"). QR-generator gevendord + geverifieerd.

## v0.5 — 2026-06-20
- **Standalone binaries** (Bun): Windows, macOS (Apple Silicon + Intel), Linux, Raspberry Pi —
  geen Node.js meer nodig. Naast de Node-versie (voor seriële centrales).
- **Meer centrales**: Märklin CS2/CS3 (CAN/UDP), XpressNet (Lenz/multiMaus), LocoNet
  (Uhlenbrock/Digikeijs/LoDi/Tams) — protocol-gebaseerd, dekt veel merken.
- **Update-melding**: app checkt p33k.nl/baanbrein/version.json en toont een downloadlink
  bij een nieuwere versie. Niets wordt automatisch overschreven.
- **Per-OS installatie** op de site + dubbelklik-starters + `data/config.json` (geen env-vars).
- **Licentiesysteem** (offline, Ed25519): nu gratis/open, later eenmalig of jaarlijks afdwingbaar.

## v0.4 — 2026-06-20
- **Baanschema-editor**: teken sporen/wissels/blokken op een raster, koppel aan nummers,
  live bezetmelding + wisselstand, opslaan (data/layout.json).
- Centrale-adapters: Z21 (UDP), DR5000 (Z21-emulatie), ECoS (TCP).

## v0.3 — 2026-06-20
- **P50X bring-up tool** (`tools/p50x-test.js`): test losse telegrammen tegen de Twin Center,
  toont verstuurde bytes + antwoorden. Gebruikt het echte commando-pad van de adapter.
- **HARDWARE.md**: stap-voor-stap bring-up checklist voor de eerste hardware-koppeling.
- **s88-terugmelding**: XEvtSen pollen + module-bytes decoderen naar bezet/vrij
  (contact → sensor-id). Framing nog op apparaat te verifiëren; ruwe hex blijft gelogd.

## v0.2 — 2026-06-19
- **Twin Center adapter (P50X)**: echte telegrammen — XPwrOn/Off, XLok (snelheid+richting+
  F0–F4), XFunc/XFunc2 (F5–F12), XTrnt (wissels), XHalt (noodstop), XSensOff/XEvtSen.
- **Baan-weergave** in de PWA: tab "Baan" met bezetmelding (blokken) + wisselstanden.
- Simulator genereert live bezetmelding (trein loopt door de blokken).
- Roster uitgebreid met blokken + wissel-adressen.
- **Publieke showcase** op p33k.nl/baanbrein: documentatie + interactieve browser-demo.

## v0.1 — 2026-06-19
- Eerste werkende fundament: Node-server (0 dependencies) + WebSocket-brug + moderne PWA.
- Simulator-modus + DCC-EX (TCP) adapter.
- Handmatig rijden: throttle, richting, functies, wissels, railspanning, noodstop.
- Realtime synchroon over meerdere apparaten. Installeerbaar als PWA.
