Пример #1
0
        public async Task <byte> RegReadAsync(UInt16 address)
        {
            const int TIMEOUT_MS = 6000;

            var cmd = _bglib.BLECommandSystemRegRead(address);

            await _bglib.SendCommandAsync(cmd).ConfigureAwait(false);

            using (var cts = new CancellationTokenSource(TIMEOUT_MS)) {
                bool didTimeout = false;
                try { await _cmdRespWaitHandle.WaitAsync(cts.Token).ConfigureAwait(false); }
                catch (OperationCanceledException) { didTimeout = true; }
                if (didTimeout)
                {
                    throw new TimeoutException();
                }
            }

            byte value = ((RegReadEventArgs)_lastResponseArgs).value;

            return(value);
        }