Fix EGSM900 downlink frequency: 935 MHz not 925 MHz

The EGSM900 band table had start=925e6 but ARFCNs 0-124 use downlink
frequencies starting at 935 MHz (DL = 935 + 0.2*ARFCN). The 925 MHz
value is the E-GSM extension band (ARFCNs 975-1023).

This caused grgsm_livemon to tune 10 MHz too low — ARFCN 22 tuned to
929.4 MHz instead of 939.4 MHz, receiving no GSM frames and producing
zero GSMTAP packets for tshark to capture.

Also adds EGSM900_EXT band (ARFCNs 975-1023, DL 925.2-934.8 MHz)
and diagnostic logging in the monitor thread to track raw tshark
line counts vs parsed packets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-02-08 19:50:04 +00:00
parent 2ea66d7c0f
commit b8780db849
2 changed files with 34 additions and 5 deletions
+18 -3
View File
@@ -187,14 +187,29 @@ class TestArfcnToFrequency:
def test_egsm900_arfcn(self):
"""Test ARFCN in EGSM900 band."""
# EGSM900: ARFCN 0-124, 925-960 MHz
# EGSM900: ARFCN 0-124, DL = 935 + 0.2*ARFCN MHz
arfcn = 0
freq = arfcn_to_frequency(arfcn)
assert freq == 925000000 # 925 MHz
assert freq == 935000000 # 935.0 MHz
arfcn = 22
freq = arfcn_to_frequency(arfcn)
assert freq == 939400000 # 939.4 MHz
arfcn = 124
freq = arfcn_to_frequency(arfcn)
assert freq == 949800000 # 949.8 MHz
assert freq == 959800000 # 959.8 MHz
def test_egsm900_ext_arfcn(self):
"""Test ARFCN in EGSM900 extension band."""
# EGSM900_EXT: ARFCN 975-1023, DL = 925.2 + 0.2*(ARFCN-975) MHz
arfcn = 975
freq = arfcn_to_frequency(arfcn)
assert freq == 925200000 # 925.2 MHz
arfcn = 1023
freq = arfcn_to_frequency(arfcn)
assert freq == 934800000 # 934.8 MHz
def test_dcs1800_arfcn(self):
"""Test ARFCN in DCS1800 band."""