Method to send a message expecting to receive an ACK.

            :param msg_type: The type of the message to send, a subclass of aiolifx.Message
            :type msg_type: class
            :param payload: value to use when instantiating msg_type
            :type payload: dict
            :param callb: A callback that will be executed when the ACK is received in datagram_received
            :type callb: callable
            :param timeout_secs: Number of seconds to wait for an ack
            :type timeout_secs: int
            :param max_attempts: .
            :type max_attempts: int
            :returns: True
            :rtype: bool

def req_with_ack(self, msg_type, payload, callb = None, timeout_secs=None, max_attempts=None):
        """Method to send a message expecting to receive an ACK.

            :param msg_type: The type of the message to send, a subclass of aiolifx.Message
            :type msg_type: class
            :param payload: value to use when instantiating msg_type
            :type payload: dict
            :param callb: A callback that will be executed when the ACK is received in datagram_received
            :type callb: callable
            :param timeout_secs: Number of seconds to wait for an ack
            :type timeout_secs: int
            :param max_attempts: .
            :type max_attempts: int
            :returns: True
            :rtype: bool
        """
        msg = msg_type(self.mac_addr, self.source_id, seq_num=self.seq_next(), payload=payload, ack_requested=True, response_requested=False)
        self.message[msg.seq_num]=[Acknowledgement,None,callb]
        xx=self.loop.create_task(self.try_sending(msg,timeout_secs, max_attempts))
        return True