Adds the modjam package: a MeshCore-backed test station service for Pi (IDLE + RUNNING states, cuesheet-driven), a control station REPL for the Mac, and a UDP simulator that swaps in for the radio when SIMULATOR=true (drops cross-config packets and a configurable fraction of test-payload datagrams to mimic real radio loss). docker-compose runs three sim stations + control on a bridge net. TSV log format matches the reference traces. Pytest suite covers protocol codec, cuesheet builder, TSV logger, config loader, and UDP radio packet routing/loss; .forgejo/workflows runs it on push to main and on PRs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
services:
|
|
station-a:
|
|
build: { context: ., dockerfile: docker/station.Dockerfile }
|
|
environment:
|
|
SIMULATOR: "true"
|
|
PEERS: "station-a,station-b,station-c,control"
|
|
MODJAM_CONFIG: "/etc/modjam/config.json"
|
|
SIM_PACKET_LOSS: "${SIM_PACKET_LOSS:-0.15}"
|
|
volumes:
|
|
- ./sim/station-a.json:/etc/modjam/config.json:ro
|
|
- ./sim/logs:/var/log/modjam
|
|
networks: [modjam]
|
|
|
|
station-b:
|
|
build: { context: ., dockerfile: docker/station.Dockerfile }
|
|
environment:
|
|
SIMULATOR: "true"
|
|
PEERS: "station-a,station-b,station-c,control"
|
|
MODJAM_CONFIG: "/etc/modjam/config.json"
|
|
SIM_PACKET_LOSS: "${SIM_PACKET_LOSS:-0.15}"
|
|
volumes:
|
|
- ./sim/station-b.json:/etc/modjam/config.json:ro
|
|
- ./sim/logs:/var/log/modjam
|
|
networks: [modjam]
|
|
|
|
station-c:
|
|
build: { context: ., dockerfile: docker/station.Dockerfile }
|
|
environment:
|
|
SIMULATOR: "true"
|
|
PEERS: "station-a,station-b,station-c,control"
|
|
MODJAM_CONFIG: "/etc/modjam/config.json"
|
|
SIM_PACKET_LOSS: "${SIM_PACKET_LOSS:-0.15}"
|
|
volumes:
|
|
- ./sim/station-c.json:/etc/modjam/config.json:ro
|
|
- ./sim/logs:/var/log/modjam
|
|
networks: [modjam]
|
|
|
|
control:
|
|
build: { context: ., dockerfile: docker/control.Dockerfile }
|
|
environment:
|
|
SIMULATOR: "true"
|
|
PEERS: "station-a,station-b,station-c,control"
|
|
MODJAM_CONFIG: "/etc/modjam/config.json"
|
|
SIM_PACKET_LOSS: "${SIM_PACKET_LOSS:-0.15}"
|
|
volumes:
|
|
- ./sim/control.json:/etc/modjam/config.json:ro
|
|
- ./sim/logs:/var/log/modjam
|
|
stdin_open: true
|
|
tty: true
|
|
networks: [modjam]
|
|
|
|
networks:
|
|
modjam:
|
|
driver: bridge
|