gsm: Provide decoding for Handover Reference and ARFCN...
This commit is contained in:
parent
f653a23da5
commit
97e0ffa6a8
30
GSM48.st
30
GSM48.st
|
@ -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 [
|
||||
|
|
4
Tests.st
4
Tests.st
|
@ -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.
|
||||
]
|
||||
]
|
||||
|
||||
|
|
Reference in New Issue