diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-12-25 10:51:34 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-12-25 10:51:34 +0100 |
commit | 97e0ffa6a86eda433faf79e9e29705ac54f27d0f (patch) | |
tree | 791437c5d40933ef34943a068266cd2e1ce7cee2 | |
parent | f653a23da50f2a2a7a7f7c89cc9dcdc5aac9cee8 (diff) |
gsm: Provide decoding for Handover Reference and ARFCN...
-rw-r--r-- | GSM48.st | 30 | ||||
-rw-r--r-- | Tests.st | 4 |
2 files changed, 34 insertions, 0 deletions
@@ -334,6 +334,31 @@ GSM48SimpleData subclass: GSM48ChannelDescription2 [ <gsmName: 'channelDescription2'> <gsmValueLength: 3> + + channelType [ + <category: 'accessing'> + ^ data first bitShift: -3. + ] + + timeSlot [ + ^ data first bitAnd: 2r111 + ] + + isH1 [ + ^ (data second bitAt: 5) = 1 + ] + + isH0 [ + ^ (data second bitAt: 5) = 0 + ] + + arfcn [ + | low | + self isH0 ifFalse: [^self error: 'ARFCN requires H=0']. + + low := data second bitAnd: 2r11. + ^ (low bitShift: 8) bitOr: data third. + ] ] GSM48SimpleData subclass: GSM48ChannelMode [ @@ -426,6 +451,11 @@ GSM48SimpleData subclass: GSM48HandoverReference [ <comment: 'I represent a 10.5.2.15 handover reference'> <gsmName: 'handoverReference'> <gsmValueLength: 1> + + value [ + <category: 'accessing'> + ^ data first + ] ] GSM48DataHolder subclass: GSM48MultislotAllocation [ @@ -440,6 +440,10 @@ TestCase subclass: GSM48Test [ self assert: dec cellDescription bcc = 7. self assert: dec cellDescription ncc = 7. self assert: dec cellDescription bcch = 809. + self assert: dec handoverReference value = 0. + self assert: dec channelDescription2 channelType = 1. + self assert: dec channelDescription2 timeSlot = 3. + self assert: dec channelDescription2 arfcn = 809. ] ] |