/// <summary>
        /// Writes floats to holding registers
        /// </summary>
        /// <param name="offset">The first register offset</param>
        /// <param name="values">The values to write</param>
        /// <returns>Awaitable task</returns>
        public async Task WriteRegistersAsync(int offset, float[] values, byte unit = 0x01)
        {
            if (tcpClient == null)
            {
                throw new Exception("Object not intialized");
            }

            var request = new ModbusRequest16(offset, values, unit);
            var buffer  = request.ToNetworkBuffer();

            using (var cancellationTokenSource = new CancellationTokenSource(socketTimeout))
            {
                using (cancellationTokenSource.Token.Register(() => transportStream.Close()))
                {
                    await transportStream.WriteAsync(buffer, 0, buffer.Length, cancellationTokenSource.Token);
                }
            }
            var response = await ReadResponseAsync <ModbusReply16>();
        }
        /// <summary>
        /// Writes words to holding registers
        /// </summary>
        /// <param name="offset">The first register offset</param>
        /// <param name="values">The values to write</param>
        /// <returns>Awaitable task</returns>
        public void WriteRegisters(int offset, short[] values, byte unit = 0x01)
        {
            if (tcpClient == null)
            {
                throw new Exception("Object not intialized");
            }

            var request = new ModbusRequest16(unit);

            request.WordCount      = (short)(values.Length * 2);
            request.RegisterValues = values.ToNetworkBytes();

            var buffer = request.ToNetworkBuffer();

            using (var cancellationTokenSource = new CancellationTokenSource(socketTimeout))
            {
                using (cancellationTokenSource.Token.Register(() => transportStream.Close()))
                {
                    transportStream.Write(buffer, 0, buffer.Length);
                }
            }

            ReadResponse <ModbusReply16>();
        }