From d130ebaa5e9c121c1c08acdd9784dfa9b117975d Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 24 Aug 2012 15:31:27 +0200 Subject: [PATCH] gsm48: Decode the Request Reference IE --- GSM48.st | 23 +++++++++++++++++++++++ Tests.st | 4 ++++ 2 files changed, 27 insertions(+) diff --git a/GSM48.st b/GSM48.st index 031b1e1..d6102ea 100644 --- a/GSM48.st +++ b/GSM48.st @@ -318,6 +318,29 @@ GSM48SimpleData subclass: GSM48RequestReference [ + + ra [ + + ^ data at: 1 + ] + + t1 [ + + ^ (data at: 2) bitShift: - 3 + ] + + t2 [ + + ^ (data at: 3) bitAnd: 2r00011111 + ] + + t3 [ + | high low | + + high := (data at: 2) bitAnd: 2r111. + low := (data at: 3) bitShift: -5. + ^ low bitOr: (high bitShift: 3) + ] ] GSM48DataHolder subclass: GSM48IARestOctets [ diff --git a/Tests.st b/Tests.st index 27c0f6f..d8f161a 100644 --- a/Tests.st +++ b/Tests.st @@ -298,6 +298,10 @@ TestCase subclass: GSM48Test [ 16r2B 16r2B 16r2B 16r2B) asByteArray. dec := GSM48MSG decode: inp readStream. self assert: dec type = GSM48RRImmediateAssignCommand messageType. + self assert: dec requestReference ra = 16r1A. + self assert: dec requestReference t1 = 1. + self assert: dec requestReference t2 = 15. + self assert: dec requestReference t3 = 17. self assert: dec toMessage asByteArray = inp. ]