def receive_message(self, msg):
        """Receive a messages sent to this device."""
        _LOGGER.debug('Starting Device.receive_message')
        if hasattr(msg, 'isack') and msg.isack:
            _LOGGER.debug('Got Message ACK')
            if self._sent_msg_wait_for_directACK.get('callback') is not None:
                _LOGGER.debug('Look for direct ACK')
                asyncio.ensure_future(self._wait_for_direct_ACK(),
                                      loop=self._plm.loop)
            else:
                _LOGGER.debug('DA queue: %s',
                              self._sent_msg_wait_for_directACK)
                _LOGGER.debug('Message ACK with no callback')
        if (hasattr(msg, 'flags') and
                hasattr(msg.flags, 'isDirectACK') and
                msg.flags.isDirectACK):
            _LOGGER.debug('Got Direct ACK message')
            if self._send_msg_lock.locked():
                self._directACK_received_queue.put_nowait(msg)
            else:
                _LOGGER.debug('But Direct ACK not expected')
        if not self._is_duplicate(msg):
            callbacks = self._message_callbacks.get_callbacks_from_message(msg)
            for callback in callbacks:
                _LOGGER.debug('Scheduling msg callback: %s', callback)
                self._plm.loop.call_soon(callback, msg)
        else:
            _LOGGER.debug('msg is duplicate')
            _LOGGER.debug(msg)
        self._last_communication_received = datetime.datetime.now()
        _LOGGER.debug('Ending Device.receive_message')
def receive_message ( self , msg ) : _LOGGER . debug ( 'Starting Device.receive_message' ) if hasattr ( msg , 'isack' ) and msg . isack : _LOGGER . debug ( 'Got Message ACK' ) if self . _sent_msg_wait_for_directACK . get ( 'callback' ) is not None : _LOGGER . debug ( 'Look for direct ACK' ) asyncio . ensure_future ( self . _wait_for_direct_ACK ( ) , loop = self . _plm . loop ) else : _LOGGER . debug ( 'DA queue: %s' , self . _sent_msg_wait_for_directACK ) _LOGGER . debug ( 'Message ACK with no callback' ) if ( hasattr ( msg , 'flags' ) and hasattr ( msg . flags , 'isDirectACK' ) and msg . flags . isDirectACK ) : _LOGGER . debug ( 'Got Direct ACK message' ) if self . _send_msg_lock . locked ( ) : self . _directACK_received_queue . put_nowait ( msg ) else : _LOGGER . debug ( 'But Direct ACK not expected' ) if not self . _is_duplicate ( msg ) : callbacks = self . _message_callbacks . get_callbacks_from_message ( msg ) for callback in callbacks : _LOGGER . debug ( 'Scheduling msg callback: %s' , callback ) self . _plm . loop . call_soon ( callback , msg ) else : _LOGGER . debug ( 'msg is duplicate' ) _LOGGER . debug ( msg ) self . _last_communication_received = datetime . datetime . now ( ) _LOGGER . debug ( 'Ending Device.receive_message' )
Receive a messages sent to this device.