def testConvert7bitToOctet(self): octets = bit7alphabet.convert7BitToOctet('hallo123') result = '' for octet in octets: result += "%X" % octet self.assertEqual('E8309BFD8EC966', result) octets = bit7alphabet.convert7BitToOctet('hallo1234') result = '' for octet in octets: result += "%X" % octet self.assertEqual('E8309BFD8EC96634', result)
def __createMultiPartPDU7Bit(self): charactersPerPart = self.__characters7BitPart charactersLeft = self.__msgLength parts = self.getNumMessages() pduMessages = [] for i in range(0, parts): pduMsg = [] finalPart = charactersLeft <= charactersPerPart startIndex = i * charactersPerPart if finalPart: endIndex = startIndex + charactersLeft else: endIndex = startIndex + charactersPerPart udh = self.__createUDHHeader(i+1, parts) #prepend 7 @ (0x00 in 7bit) characters to the message to have correcrt 7-bit padding after udh data = bit7alphabet.convert7BitToOctet('@@@@@@@' + self.__message[startIndex:endIndex]) #overwrite the prepended zeros with udh header for index in range(0, len(udh)): data[index] = udh[index] pduMsg.append(self.__createPDUHeader(i + 1)) pduMsg.append(self.__byteToString((endIndex - startIndex) + 7)) #dataLength in septets pduMsg.append(self.__bytesToString(data)) pduMessages.append(''.join(pduMsg)) charactersLeft -= charactersPerPart return pduMessages
def __createMultiPartPDU7Bit(self): charactersPerPart = self.__characters7BitPart charactersLeft = self.__msgLength parts = self.getNumMessages() pduMessages = [] for i in range(0, parts): pduMsg = [] finalPart = charactersLeft <= charactersPerPart startIndex = i * charactersPerPart if finalPart: endIndex = startIndex + charactersLeft else: endIndex = startIndex + charactersPerPart udh = self.__createUDHHeader(i + 1, parts) #prepend 7 @ (0x00 in 7bit) characters to the message to have correcrt 7-bit padding after udh data = bit7alphabet.convert7BitToOctet( '@@@@@@@' + self.__message[startIndex:endIndex]) #overwrite the prepended zeros with udh header for index in range(0, len(udh)): data[index] = udh[index] pduMsg.append(self.__createPDUHeader(i + 1)) pduMsg.append(self.__byteToString((endIndex - startIndex) + 7)) #dataLength in septets pduMsg.append(self.__bytesToString(data)) pduMessages.append(''.join(pduMsg)) charactersLeft -= charactersPerPart return pduMessages
def __createSinglePartPDU(self): pduMsg = [] pduMsg.append(self.__createPDUHeader()) if self.__is7Bit: msg7Bit = bit7alphabet.convert7BitToOctet(self.__message) pduMsg.append(self.__byteToString(self.__msgLength)) pduMsg.append(self.__bytesToString(msg7Bit)) else: pduMsg.append(self.__byteToString(self.__msgLength * 2)) pduMsg.append(self.__unicodeCharsToString(self.__message)) return ''.join(pduMsg)