/// <summary>
        /// Write message to the ublox reciver.
        /// </summary>
        /// <param name="message"></param>
        public bool WriteMessage(IMessageBase message)
        {
            byte[] messageArray = message.ToArray();

            WriteReceiver(messageArray);

            if (message.IsAcknowledged)
            {
                int acknowledgeKey = new { Class = 0x05, Id = 0x01, MessageClass = messageArray[2], MessageId = messageArray[3] }.GetHashCode();

                var stopwatch = new Stopwatch();
                stopwatch.Start();

                do
                {
                    if (Acknowlagements.ContainsKey(acknowledgeKey))
                    {
                        Acknowlagements.Remove(acknowledgeKey);
                        return(true);
                    }
                    else
                    {
                        Task.Delay(10).Wait();
                    }
                } while (stopwatch.Elapsed < TimeSpan.FromSeconds(AcknowledgementTimeOut));
            }

            return(false);
        }