Files
Pit-Log-App/README.md
T

3.0 KiB

Pit Log

Pit Log is an offline-first Android app for hobby stock and thunder car asphalt ovals. It keeps race nights, tire pressures, tire heat, and the car's setup on the phone. Two phones can share a car through the sync server.

Pressures are PSI. Tire heat is °F, read inside, middle, then outside.

On the phone

The app opens on the list of cars. Tap a car to see its nights. Add one from that list, or paste a token from another phone.

The gear icon opens Car. A new install already has the server address filled in:

http://sync.sleepingliongames.com:27017

Sync on its own sends a save right away and checks about every 30 seconds while the app is open. It stays quiet while the app is closed. Sync now sends every car on the phone.

Each car has its own 8-digit token, shown on the Car screen. Share token sends those digits to another phone. On the other phone, paste it under Add a car from a token. That phone then syncs that car. A different car gets a different token.

Remove from this phone takes the car off that phone only. The other phone and the server keep it.

Check for updates on the Car screen looks at the latest release on this git. When a newer one is posted, the app downloads it and Android asks you to install it.

The book icon opens the setup guide. Car setup on the home screen is the original setup for the selected car, plus a log of later changes. A race night keeps its own chassis sheet.

Sync server

The server is one small Python program, sync/pitlog_sync.py. It listens on the Pelican allocation port and stores each car token in its own database file. GET /health returns {"ok":true}.

Phones use plain HTTP. The address above is the live server.

Pelican

Import this egg into a nest on the panel:

https://git.ny.daprogs.com/RallyBlock/Pit-Log-App/raw/branch/main/sync/egg-pitlog.yaml

Create a server from Pit Log sync. Use the Python 3.13 image, one port, and leave Token blank. The startup command is:

/usr/local/bin/python /home/container/pitlog_sync.py

Start the server. The console prints Pit Log sync listening and the port. Phones use http:// plus the allocation address and that port.

A reinstall downloads pitlog_sync.py again from this repo. If the panel wipes server files, the phones still have their logs and send them on the next sync.

Build

The Android package is com.racingapp.pitlog. It needs an Android SDK and JDK 17 or newer. Put the SDK location in local.properties:

sdk.dir=C\:\\Users\\you\\AppData\\Local\\Android\\Sdk

That file stays off git. From the project root:

gradlew.bat assembleDebug

Build output is written to D:\RacingAPP-build so it stays out of a synced project folder. The debug APK is:

D:\RacingAPP-build\app\outputs\apk\debug\app-debug.apk

APK files are gitignored.

Layout

  • app/ is the Android app.
  • sync/pitlog_sync.py is the sync server.
  • sync/egg-pitlog.yaml is the Pelican egg.
  • preview/ holds screen pictures used while looking at the UI.