diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-06-05 10:53:52 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-06-05 10:53:52 +0200 |
commit | 00ee3d0ea0cda615ba58705d08380a116193743d (patch) | |
tree | 6148fc3e64aa5a59fce5c90dce4f012be26ba5e1 | |
parent | 15be4f4af2f935412305f9e2af0d6a142b2a2093 (diff) |
gsm0808: Be able to parse a ciphering mode complete with layer3 contents
-rw-r--r-- | BSSMAP.st | 28 | ||||
-rw-r--r-- | Tests.st | 6 |
2 files changed, 34 insertions, 0 deletions
@@ -797,3 +797,31 @@ GSM0808IE subclass: GSM0808Classmark3IE [ aMsg putByteArray: cm. ] ] + +GSM0808IE subclass: GSM0808Layer3MessageContents [ + | layer3Message | + <category: 'OsmoGSM'> + + GSM0808Layer3MessageContents class >> elementId [^32] + GSM0808Layer3MessageContents class >> initWith: aByteArray [ + ^self new + layer3Message: aByteArray; + yourself + ] + + GSM0808Layer3MessageContents class >> parseFrom: aStream [ + | size | + size := aStream next. + ^self initWith: (aStream next: size) + ] + + layer3Message: aByteArray [ + layer3Message := aByteArray + ] + + writeOnDirect: aMsg [ + aMsg + putByte: layer3Message size; + putByteArray: layer3Message. + ] +] @@ -595,6 +595,12 @@ TestCase subclass: TestMessages [ msg := MSGParser parse: inp. self assert: msg toMessage asByteArray = inp. + "Ciphering mode complete..." + inp := #[16r06 16r01 16r01 16r5B 16r00 16r01 16r14 16r00 16r12 16r55 16r20 16r0D 16r06 16r32 16r17 16r09 16r33 16r15 16r49 16r00 16r93 16r89 16r31 16r62 16rF4 16r2C 16r02]. + msg := MSGParser parse: inp. + self assert: msg toMessage asByteArray = inp. + + "Assignment Command" inp := #(6 0 0 72 0 1 11 0 9 1 11 3 1 10 17 1 0 20 ) asByteArray. msg := MSGParser parse: inp. |