Example #1
0
    def _decode_dispatch(self, p_pyhouse_obj, p_controller_obj):
        """Decode a message that was ACKed / NAked.
        see IDM pages 238-241

        @return: a flag that is True for ACK and False for NAK/Invalid response.
        """
        l_message = p_controller_obj._Message
        l_ret = False
        l_cmd = p_controller_obj._Message[1]
        # LOG.debug('  Dispatch: {:#02x}'.format(l_cmd))
        if l_cmd == 0:
            LOG.warning("Found a '0' record ->{}.".format(FormatBytes(l_message)))
            return l_ret
        elif l_cmd == 0x50: l_ret = self._decode_0x50(p_controller_obj)
        elif l_cmd == 0x51: l_ret = self._decode_0x51(p_controller_obj)
        elif l_cmd == 0x52: l_ret = self._decode_0x52_record(p_controller_obj)
        elif l_cmd == 0x53: linkDecode.decode_0x53(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x54: linkDecode.decode_0x54(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x55: linkDecode.decode_0x55(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x56: linkDecode.decode_0x56(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x57: linkDecode.decode_0x57(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x58: linkDecode.decode_0x58(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x60: l_ret = self._decode_0x60_record(p_controller_obj)
        elif l_cmd == 0x61: l_ret = self._decode_0x61_record(p_controller_obj)
        elif l_cmd == 0x62: l_ret = self._decode_0x62_record(p_controller_obj)
        elif l_cmd == 0x64: linkDecode.decode_0x64(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x65: linkDecode.decode_0x65(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x69: linkDecode.decode_0x69(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x6A: linkDecode.decode_0x6A(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x6B: l_ret = self._decode_0x6B_record(p_controller_obj)
        elif l_cmd == 0x6C: linkDecode.decode_0x6C(p_pyhouse_obj, p_controller_obj)
        elif l_cmd == 0x6F: l_ret = self._decode_0x6F_record(p_controller_obj)
        elif l_cmd == 0x73: l_ret = self._decode_0x73_record(p_controller_obj)
        else:
            LOG.error("Unknown message {}, Cmd:{}".format(FormatBytes(p_controller_obj._Message), l_cmd))
            # self.check_for_more_decoding(p_controller_obj, l_ret)
        self.check_for_more_decoding(p_controller_obj, l_ret)
        return l_ret