Commit Graph
73 Commits
Author SHA1 Message Date
misadeks d645f74c4f implemented prototype neighbor cell broadcast 2026-02-24 16:25:54 +01:00
misadeks 71d299390a changed network cell broadcast in example config 2026-02-22 23:42:32 +01:00
misadeks 624797d848 implemented network time sending in D-NWRK-BROADCAST 2026-02-22 13:22:16 +01:00
misadeks 29a5910c59 implemented TL-UNITDATA sending 2026-02-22 13:21:49 +01:00
misadeks 0a7b7c9943 edited example config.toml 2026-02-21 19:20:40 +01:00
misadeks d5237f1bdf added tracking for registered groups and for detachment/graceful exit 2026-02-21 19:17:01 +01:00
misadeks 63cff18716 removed groups to affiliate to from config 2026-02-21 19:16:01 +01:00
misadeks 9f87d67b0a comment cleanup 2026-02-21 17:59:55 +01:00
misadeks 999df01876 merge with main 2026-02-21 17:38:17 +01:00
misadeks 33bfd3e4bc Merge branch 'brew-wip' into main
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	crates/tetra-entities/src/brew/entity.rs
#	crates/tetra-entities/src/brew/worker.rs
#	crates/tetra-entities/src/cmce/subentities/cc_bs.rs
#	crates/tetra-entities/src/mm/mm_bs.rs
#	crates/tetra-saps/src/control/mod.rs
#	example_config/config.toml
2026-02-21 17:34:17 +01:00
misadeks a8a29d35c6 merge with main 2026-02-21 17:31:29 +01:00
misadeks c9234b2ce5 merge with main 2026-02-21 17:17:59 +01:00
Wouter Bokslag a982a0a357 First version of an official logo! 2026-02-21 14:56:54 +01:00
Elliott Cooper 5acd728dd9 phy: tolerate +/-1 sample RX timestamp jitter (#18) 2026-02-21 14:19:14 +01:00
proxiboi69 a1bb35527e Fix network call hangtime noise; rename LocalCall* to floor-control terminology (#17)
- Send FloorReleased/FloorGranted to UMAC for network calls so hangtime switches to signalling mode (no noise) and resumes on speaker change
- Rename LocalCallStart/LocalCallTxStopped/LocalCallEnd to FloorGranted/FloorReleased/CallEnded (origin-agnostic floor control)
2026-02-21 14:14:35 +01:00
Midnight Blue 8a8ee37bde Merge pull request #15 from proxiboi69/main
Fix timeslot leak: add missing return after speaker-change handling i…
2026-02-21 13:11:43 +01:00
Elliott Cooper ca97b70648 Feature: Adaptive JitterBuffer for Brew Originated Calls (#16)
* brew: replay adaptive jitter buffer and bump v0.4.3
2026-02-21 12:16:44 +01:00
proxiboi69 9b9affdac6 Fix timeslot leak: add missing return after speaker-change handling in rx_network_call_start 2026-02-21 09:19:11 +02:00
Midnight Blue 2853908a6b Merge pull request #8 from ManoDaSilva/main
Update Readme to point to the documentation repository.
2026-02-20 21:56:24 +01:00
Midnight Blue c5773fda8f Merge pull request #12 from russel053/main
improved hangtime handling; trailing sound is resolved
2026-02-20 21:54:38 +01:00
神楽坂宇軒 dddec27c0e trailing sound is completely resolved 2026-02-21 04:34:46 +08:00
misadeks 2736866d12 wip brew 2026-02-20 18:19:42 +01:00
mihajlo 17ed04d605 rustfmt run on code 2026-02-20 11:33:01 +01:00
Wouter Bokslag 78397cde8d Updated example config 2026-02-20 11:16:46 +01:00
Wouter Bokslag 593849c66f Small fix to allow building outside of git-cloned environments 2026-02-20 10:22:57 +01:00
Wouter Bokslag f006096c0a Added gates surrounding SAP message creation for Brew
Now only sends SAP messages to Brew entity if Brew entity is
enabled in the config. This prevents spam of undeliverable messages.
Also changed Brew username to int type, since it is always an ID
2026-02-20 09:47:23 +01:00
Wouter Bokslag 72aff09b5d Slightly reduce logging spam 2026-02-19 21:21:59 +01:00
Wouter Bokslag 71caafae96 Standardized code formatting conventions and linting
Added a rustfmt.toml to define code formatting conventions for the project.
Applied said format to entire codebase.
2026-02-19 17:19:44 +01:00
Wouter Bokslag 42bd3fe5eb Refactors in Brew config
- Brew config fields updated:
- Enabled field now removed.
- Internally, map config file to intermediary struct, then to StackConfig to be coherent with other config fields.
- Remove brew user agent field, now derive that from version number + git commit hash: BlueStation/0.x.x/aabbccdd
- Some small tweaks and improvements
2026-02-19 12:30:01 +01:00
Wouter Bokslag 068093a701 bugfix in downlink fragmenter, improved bitbuffer sanity checking 2026-02-17 23:30:58 +01:00
proxiboi69 9a27f5d9be Centralize group call management in CMCE
- Move all group call lifecycle (circuit allocation, D-SETUP/D-CONNECT, hangtime) from Brew to CMCE
- Add NetworkCallStart/Ready/End messages for communication between Brew and CMCE
- Unify ActiveCall tracking for both local and network-initiated calls
- Add LocalCallTxStopped for immediate PTT release notification to Brew
- Fix D-SETUP spam: change late entry interval from 3 timeslots to 20 multiframes (5s)
- Fix FACCH stealing: add chan_alloc with target timeslot for proper delivery
- Handle duplicate U-TX CEASED messages to prevent hangtime timer reset
2026-02-17 18:58:40 +01:00
mihajlo 3df4cd8123 Working group calls with Brew audio forwarding
- Local group calls now functional with audio passing to Brew/TetraPack
- Add centralized timeslot allocator to prevent Brew/CMCE collision
- Fix Brew audio: support multiple ACELP formats (36/35/274 bytes)
- Per-timeslot UL tracking in LMAC for concurrent calls
- Voice loopback and Brew forwarding in UMAC rx_tmd_prim
- Notify Brew of speaker changes during hangtime (U-TX-DEMAND)
- CMCE circuit allocation uses centralized timeslot manager
2026-02-17 18:58:32 +01:00
proxiboi69 95f2cd61f6 Brew integration and local group calls
- Brew RX/TX: talkgroup subscription, DL voice routing, UL forwarding to TetraPack
- Local group calls: ETSI call setup, floor control, hangtime, late entry
- UL voice: TCH/S decode with continuous Viterbi, ACELP reorder, DL loopback
- Fix MAC fragmenter crash on header exceeding remaining slot capacity
- Fix MLE handle routing for individual call setup responses
- Fix Direction::Both in UMAC circuit manager
- Align circuit expiry with T5m call timeout

- Add DEAFFILIATE → DEREGISTER teardown on Brew worker disconnect
- Implement Drop for BrewEntity to trigger graceful shutdown
- Add Ctrl+C signal handler (ctrlc crate) so main loop exits cleanly
- Extract graceful_teardown() in worker, handle channel disconnect fallback
- Add build_subscriber_deaffiliate/deregister to protocol builders

- Pass target TS via chan_alloc in D-TX CEASED / D-TX GRANTED
- UMAC stealing path uses specified TS instead of always picking first active circuit
- Fixes missing PTT release signaling on TS3+ with multiple concurrent group calls
2026-02-17 18:51:32 +01:00
Manoel d6cf664656 Update Readme to point to the documentation repository. 2026-02-15 13:14:43 +01:00
mihajlo 9a51dd0e45 radios now dictate group affiliation and it is not static 2026-02-14 20:01:03 +01:00
mihajlo db850793fb small changes 2026-02-13 23:50:42 +01:00
mihajlo 2c501df55d missing timeslot_alloc 2026-02-13 22:32:02 +01:00
mihajlo 2181dfeea0 formatting 2026-02-13 21:44:39 +01:00
mihajlo 32410e6f53 natanielius tetrapack connection with calls implemented to TetraPack and local as well 2026-02-13 21:11:17 +01:00
Wouter Bokslag 11cc45fcef First draft of networked TETRA entity including working tests 2026-02-06 14:47:00 +01:00
Wouter Bokslag 1b377fcee7 Work-in-progress stuff regarding channel allocations and voice calls 2026-02-06 14:01:21 +01:00
Wouter Bokslag 6987447cca Dev work regarding downlink fragmentation 2026-01-17 17:07:28 +01:00
Wouter Bokslag c9c20a9abe Massive restructuring and refactor
Although functional changes are limited, I've massively refactored and restructured the codebase into several separate crates.
- tetra-core features functionality and data that are used throughout the stack
- tetra-saps contains definitions for all SAP message types
- tetra-config contains everything that has to do with toml-based config file parsing and conversion to the internally-used datastructures
- tetra-pdus features entity-related PDU definitions, including field struct types and enums
- tetra-entities features implementations for TETRA entities, split between BS and MS use cases. It also holds subcomponents like schedulers and decoding tools.

A separate bins folder is made, which may hold any current and future binary targets we want to compile. Right now we have:
- tetra-bluestation-bs, which compiles the core base station binary
- pdu-tool, which is a crude, buggy, ad hoc tool to parse certain pdu types for stack debugging purposes
2026-01-17 16:58:09 +01:00
Wouter Bokslag ad4402352b Major improvements regarding MAC fragmentation
- Upper mac now maintains which MS started uplink fragmentation
- Upper mac adds fragments to SSI-bound defrag buffer
- Scheduler now allows easy access to which SSI an uplink slot was granted
- Scheduler has improved schedule printing features for debugging
- More work towards functional downlink fragmentation
2026-01-14 22:52:26 +01:00
Wouter Bokslag f7a529bbec Development snapshot
Merging back extensive development work. No functional changes
for now.
2026-01-11 18:23:37 +01:00
Wouter Bokslag ab1581750a Merge branch 'testing' 2026-01-11 16:19:20 +01:00
Wouter Bokslag 16bcf61fd8 Disabled energy savings feature as it does not work yet 2026-01-11 15:55:17 +01:00
Wouter Bokslag 492cd2c07f Merge branch 'main' of github.com:MidnightBlueLabs/tetra-bluestation into testing 2026-01-11 14:33:58 +01:00
Wouter Bokslag 4c14dd800f Merge branch 'testing' of github.com:MidnightBlueLabs/tetra-bluestation into testing 2026-01-11 14:30:24 +01:00
Wouter Bokslag 24fbb88bff Cleanup of previous moto fixes. Optimizations in scheduler 2026-01-11 14:07:32 +01:00