55c166a7a7e3f6fa810164200b5c67a8f943e17a
JMK RB Live Event
RC timing app med sponsor-eventflöde (delade bilar/transpondrar mellan olika heat/finaler), AMMC WebSocket och lokal SQLite-lagring på Windows.
Vad som ingår
- Event-lägen:
Race (driver transponders)Track Event (shared cars)
- UI-separering:
Event= sponsor-event med delade bilar/transpondrarRace Setup= riktiga race med personlig transponder per förare
Race Setupinnehåller nu även:- välj exakt vilka förare som är med i racet
- practice-ranking
- kval-ranking med
poängellerbästa resultat - inbyggd guide för hur man skapar race steg för steg
- beskrivningar direkt i alla fält under
Raceformat - sessionstyp
Free Practiceför löpande varvtider utan seedning - auto-generering av kvalheat från practice-ranking eller klasslista
- reseeding av kommande kvalheat från aktuell ranking
- auto-generering av
A/B/C...finaler från ranking - sparad manuell grid per session via dragbar grid-editor
- auto-reseed hoppar över heat där manuell grid har låsts tills du återställer den
- tydlig
Lås/Lås upp gridi grid-editorn per session - final-ranking över flera leg med räknade finalheat
- valbar
bump-upmellan finaler - reserverade bump-platser i högre finaler
- visuell finalmatris med reserverade bump-platser
- dragbar grid-editor för positionsstart
- utskrift/export av heatsheets per kval/final
- overlay-vy för extern leaderboard-skärm
- flera overlay-lägen: leaderboard, speaker och results
- speaker-overlay med eventmarkörer och separata speaker-cues
- live speaker-panel i
Timingför att slå av/på cues under pågående session - speaker-cues och klubbinfo/PDF-header styrs från
Settings - logo-upload för overlay från
Settings - branding per event/race med egen logo, tagline, footer och PDF-tema i
Hantera - extra speaker-cues för
session start,new best lapochtop 3 change - valbart PDF-tema:
classic,minimal,motorsport - utskrift av startlistor och resultat med vald branding
- servergenererad PDF-export för startlistor, heatsheets och resultat med inbäddad logo
- genererade kval/finaler ärver tid och starttyp från raceformatet
- finish-ljud som siren i stället för browser-röst
- Sessioner:
practice,qualification,heat,final - Sponsor-verktyg:
- Skapa rundor automatiskt (
qualification,heat,final) - Auto-assign förare -> bil per session
- Skapa rundor automatiskt (
- Live timing från AMMC WebSocket (
msg: "PASSING") - Hanterad AMMC från webbgränssnittet:
- backend kan starta/stoppa lokal
ammc-ambpå Windows, Linux och macOS - läser bundlade binärer från
AMMC/windows64,AMMC/linux_x86-64,AMMC/apple_m
- backend kan starta/stoppa lokal
- Redigering i UI:
- Klasser, eventnamn/datum, förare och bilar kan redigeras direkt
- Live race-kontroll:
- Nedräkning under pågående session
- Auto-finish vid tidslut med status
Race is finished - Leaderboard-sortering: varv först, därefter närmast måltid för sessionen (t.ex. 5 min = 600s)
- Browserljud för passing (
blippeller tala förarnamn) och målgång - Sessioninställningar för
Mass start,Position start,Staggered Timingvisar grid/startordning för aktivPosition start-session- leaderboard visar både
gap till ledaren,gap till bilen framförocheget deltamot förra varvet - Practice/Kval kan seedas på bästa
2eller3varv i sessionsinställningar
- Persistens:
- Frontend state i browser (
localStorage) - Samma state + passeringar sparas i lokal SQLite via Node-backend
- Frontend state i browser (
- Inbyggd
Guide-meny i appen med steg-för-steg för:- Sponsor-event (10 personer / 4 bilar)
- Vanligt race
- AMMC + npm setup på Windows och Linux
- Språkval i UI:
SV/EN
Windows installation
Kör i PowerShell i projektmappen.
- Installera Node.js LTS (18+).
- Installera dependencies:
npm install - Starta servern i bakgrunden:
npm start - Öppna:
http://localhost:8081- eller från annan dator:
http://<server-ip>:8081
Vanliga kommandon:
npm start
npm stop
npm restart
npm run status
npm run start:fg
npm startstartarlive_eventi bakgrundennpm stopstoppar processen viadata/server.pidnpm restartstartar om backendnpm run statusvisar om backend körnpm run start:fgkör i foreground för felsökning
Windows scripts (bakgrundsstart)
Det finns färdiga .bat-filer i mappen windows/:
windows\\start_ammc.batstartar AMMC i bakgrundenwindows\\start_backend.batstartarnpm starti bakgrunden (logg:logs\\backend.log)windows\\start_all.batstartar både AMMC + backend och öppnar webbsidanwindows\\stop_all.batstoppar backend på port8081ochammc-amb.exe
SQLite-filen skapas automatiskt här:
data\\rc_timing.sqlite
Koppla mot AMMC
Det finns nu två sätt:
A. Hanterad AMMC i webbgränssnittet
Viktigt:
- AMMC körs på samma host där
npm start/node server.jskörs. - Om du öppnar sidan från en annan laptop startas ingen AMMC där.
- Fältet
AMMC binäriSettingsär en sökväg på backend-hosten, inte på klienten som surfar in.
- Lägg AMMC-binärerna i projektmappen
AMMC/(redan gjort i denna repo). - Öppna
Settings. - Aktivera
Hanterad AMMC / Managed AMMC. - Sätt
Decoder IP / host, kontrollera port9000, spara. - Klicka
Starta AMMC / Start AMMC. - Klicka
Använd serverns WS-url / Use server WS URLså sätts klienten till t.ex.ws://<server-ip>:9000.
Standardbinärer:
- Linux-host:
AMMC/linux_x86-64/ammc-amb - Windows-host:
AMMC/windows64/ammc-amb.exe - macOS-host:
AMMC/apple_m/ammc-amb
B. Manuell start
Starta AMMC med WebSocket (exempel):
ammc-amb.exe -w 9000 192.168.1.11
I appen:
Settings- Sätt
WebSocket URLtill t.ex.ws://127.0.0.1:9000 - Sätt
Backend URLtillhttp://127.0.0.1:8081 - Klicka
Test Backend - Gå till
Timingoch klickaConnect Decoder
Om du kör Linux-brandvägg (UFW), öppna porten:
sudo ufw allow 8081/tcp
Auto reload vid uppdatering
- Servern bevakar
index.html,src/app.jsochsrc/styles.css. - När du uppdaterar filer i
live_eventoch sparar, laddar klienten om sidan automatiskt. - Om backendkoden ändras, kör
npm restart.
Verifiera att SQLite sparar
Hämta senaste passeringar via API:
http://localhost:8081/api/passings
Hämta sparad app-state:
http://localhost:8081/api/state
Viktig regel för sponsor-event
- I samma pågående session måste varje aktiv bil ha unikt transponder-ID.
- Samma transponder-ID kan återanvändas i nästa session (Heat 1 -> Heat 2 -> Heat 3 -> Final 1 ...).
Referens AMMC JSON
Officiell quick-start:
Exempelmeddelande:
{
"msg": "PASSING",
"passing_number": 1,
"transponder": 232323,
"rtc_time": "2022-10-11T22:57:36.099+02:00",
"strength": 0.0,
"resend": false,
"tran_code": "ID:232323",
"loop_id": "55"
}
Description
Languages
JavaScript
90.4%
CSS
8.9%
HTML
0.4%
Batchfile
0.2%
C
0.1%