예제 #1
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[9].set_dicauto(self._set_subtype_dic)
예제 #2
0
파일: TS24007.py 프로젝트: pypros/pycrate
 def __init__(self, *args, **kw):
     if 'val' in kw:
         val = kw['val']
         del kw['val']
     else:
         val = None
     if 'sec' in kw:
         # used within the NAS LTE EMM stack of corenet
         sec = kw['sec']
         del kw['sec']
     else:
         sec = None
     Envelope.__init__(self, *args, **kw)
     self._sec = sec
     # build a list of (tag length, tag value) for the optional part
     # configure IE set by **kw as non-transparent and set their value
     self._opts, self._rest = [], None
     if val is None:
         # go faster by just looking for optional IE
         for ie in self._content:
             if isinstance(ie,
                           (Type1TV, Type2, Type3TV, Type4TLV, Type6TLVE)):
                 # optional IE
                 T = ie[0]
                 self._opts.append((T.get_bl(), T(), ie))
             elif isinstance(ie, RestOctets):
                 # rest octets
                 self._rest = ie
     else:
         for ie in self._content:
             '''
             if isinstance(ie, (Type1V, Type1TV)):
                 rawtype = integer_types
             else:
                 rawtype = bytes_types
             '''
             if isinstance(
                     ie,
                 (Type1V, Type3V, Type4LV, Type6LVE)) and ie._name in val:
                 # setting value for non-optional IE
                 ie.set_val({'V': val[ie._name]})
                 '''
                 if isinstance(val[ie._name], rawtype):
                     # setting raw value
                     ie['V'].set_val(val[ie._name])
                 else:
                     # setting embedded IE structure
                     ie.set_IE(val=val[ie._name])
                 '''
             elif isinstance(ie, (Type1TV, Type3TV, Type4TLV, Type6TLVE)):
                 # optional IE
                 T = ie[0]
                 self._opts.append((T.get_bl(), T(), ie))
                 if ie._name in val:
                     ie._trans = False
                     ie.set_val({'V': val[ie._name]})
                     '''
                     if isinstance(val[ie._name], rawtype):
                         # setting raw value
                         ie['V'].set_val(val[ie._name])
                     else:
                         # setting embedded IE structure
                         ie.set_IE(val=val[ie._name])
                     '''
             elif isinstance(ie, Type2):
                 # optional Tag-only IE
                 self._opts.append((8, ie[0](), ie))
                 if ie._name in val:
                     ie._trans = False
             elif isinstance(ie, RestOctets):
                 self._rest = ie
             elif ie._name in val:
                 ie.set_val(val[ie._name])
예제 #3
0
파일: IP.py 프로젝트: mitshell/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[2].set_valauto(lambda: checksum(
         pack('>BB', self[0](), self[1]()) + b'\0\0' + self[3].to_bytes()))
예제 #4
0
파일: IP.py 프로젝트: mitshell/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     if 'val' not in kwargs or 'len' not in kwargs['val']:
         self[2].set_valauto(lambda: self._len_val())
     self[3].set_valauto(lambda: self.checksum())
예제 #5
0
파일: IP.py 프로젝트: mitshell/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[1].set_transauto(lambda: True if self[0]() in (0, 1) else False)
     self[1].set_valauto(lambda: 2 + self[2].get_len())
     self[2].set_transauto(lambda: True if self[0]() in (0, 1) else False)
     self[2].set_blauto(lambda: max(0, (self[1]() - 2) << 3))
예제 #6
0
파일: IP.py 프로젝트: mitshell/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[1].set_blauto(lambda: self._pad_bl())
예제 #7
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     if 'val' not in kwargs or 'off' not in kwargs['val']:
         self[4].set_valauto(self._set_off_val)
     self[16].set_valauto(self.checksum)
     self[18].set_blauto(self._set_opt_bl)
예제 #8
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[6].set_transauto(lambda: False if self[3].get_val() else True)
     self[7].set_transauto(lambda: False if self[2].get_val() else True)
     self[8].set_transauto(lambda: False if self[1].get_val() else True)
     self[9].set_transauto(lambda: False if self[1].get_val() else True)
예제 #9
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[1].set_blauto(self._set_pad_bl)
예제 #10
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[2].set_valauto(self.checksum)
예제 #11
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[1].set_transauto(self._set_trans)
     self[1].set_valauto(self._set_len_val)
     self[2].set_transauto(self._set_trans)
     self[2].set_blauto(self._set_val_bl)
예제 #12
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[3].get_valauto(self._set_type_val)
예제 #13
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[4].set_valauto(lambda: self[3].get_val() +
                         (self[0].get_val() << 8))
예제 #14
0
파일: TS24007.py 프로젝트: kerhuon/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[5].set_valauto(self._set_ti)
예제 #15
0
파일: MPLS.py 프로젝트: unrloay2/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[2].set_valauto(lambda: self._s_set())
예제 #16
0
파일: TS23038.py 프로젝트: m00zi/pycrate
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[1].set_dicauto(self._set_cs_dic)
     self[2].set_dicauto(self._set_cla_dic)
예제 #17
0
 def __init__(self, *args, **kwargs):
     Envelope.__init__(self, *args, **kwargs)
     self[2].set_transauto(lambda: True if self[1].get_val() else False)