From c16aa9301b3866d38966674d29026415a0c76e39 Mon Sep 17 00:00:00 2001 From: p1-bmu Date: Wed, 17 Mar 2021 15:28:26 +0100 Subject: [PATCH] mobile: add encode / decode for the APN IE --- pycrate_mobile/TS24008_IE.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pycrate_mobile/TS24008_IE.py b/pycrate_mobile/TS24008_IE.py index 352281f..5fa66f0 100644 --- a/pycrate_mobile/TS24008_IE.py +++ b/pycrate_mobile/TS24008_IE.py @@ -2678,6 +2678,7 @@ class _APNItem(Envelope): Uint8('Len'), Buf('Value') ) + def __init__(self, *args, **kwargs): Envelope.__init__(self, *args, **kwargs) self[0].set_valauto(self[1].get_len) @@ -2686,6 +2687,19 @@ class _APNItem(Envelope): class APN(Sequence): _GEN = _APNItem('APNItem') + + def set_val(self, val): + if isinstance(val, str_types): + self.encode(val) + else: + Sequence.set_val(self, val) + + def encode(self, val): + apn_items = val.split('.') + Sequence.set_val(self, [{'Value': apn_item} for apn_item in apn_items]) + + def decode(self, val): + return '.'.join([apn_item[1] for apn_item in self.get_val()]) #------------------------------------------------------------------------------#