Beispiel #1
0
    def decode(to_decode):
        """ takes a string and parses it to construct a message class """
        """ needs better methods for reinstantiating """
        # verify checksum
        rv = Message()
        decoded_list = to_decode.split(DELIMITERS[ROOT_DELIM_INDEX])

        rv.header = MessageHeader.decode(decoded_list[0])

        rv.payloads = [MessagePayload.decode(x, int(rv.header.message_type))
           for x in decoded_list[1].split(DELIMITERS[PAYLOAD_SEP_DELIM_INDEX])]


        checksum = str(crc32(decoded_list[1]))
        if checksum == decoded_list[2]:
            pass
        else:
            raise Exception("Bad Checksum") # should be more informative

        return rv