def encode(self,generalManager,indicatorDigit,objectClass,filter_value,serialNumber=0):
"""
encodes an GID-96.
"""
#Reload fields
self._loadFields()
#General Manager
generalManagerField = self.getField("GeneralManager")
generalManagerField.setBitLength(28)
generalManagerField.setDigitLength(28/4)
generalManagerField.setOffset(8)
self.setFieldValue("GeneralManager",int(generalManager))
#ObjectClass
objectClassField = self.getField("ObjectClass")
objectClassField.setBitLength(24)
objectClassField.setDigitLength(24/8)
objectClassField.setOffset(36)
self.setFieldValue("ObjectClass",int(objectClass))
#SerialNumber
serialNumberField = self.getField("SerialNumber")
serialNumberField.setBitLength(36)
serialNumberField.setDigitLength(36/4)
self.setFieldValue("SerialNumber",int(serialNumber))
#Set the PackString Format
self._packStringFormat = 'uint:8, uint:28, uint:24, uint:36'
#Pack the bitstring
bsp= bitstring.pack(self._packStringFormat,
int(self.getFieldValue("Header")),
int(self.getFieldValue("GeneralManager")),
int(self.getFieldValue("ObjectClass")),
int(self.getFieldValue("SerialNumber")))
#Set the _bits for the GID-96
self._bits = bsp.unpack("bin")[0][2:]
return self
评论列表
文章目录